1.13. Red Hat OpenShift Pipelines テクノロジープレビュー 1.2 のリリースノート
1.13.1. 新機能
Red Hat OpenShift Pipelines テクノロジープレビュー (TP) 1.2 が OpenShift Container Platform 4.6 で利用可能になりました。Red Hat OpenShift Pipelines TP 1.2 が以下をサポートするように更新されています。
- Tekton Pipelines 0.16.3
-
Tekton
tkn
CLI 0.13.1 - Tekton Triggers 0.8.1
- Tekton Catalog 0.16 をベースとするクラスタータスク
- OpenShift Container Platform 4.6 での IBM Power Systems
- OpenShift Container Platform 4.6 での IBM Z および LinuxONE
以下では、修正および安定性の面での改善点に加え、OpenShift Pipelines 1.2 の主な新機能について説明します。
1.13.1.1. Pipelines
Red Hat OpenShift Pipelines のリリースでは、非接続インストールのサポートが追加されました。
注記制限された環境でのインストールは現時点で、IBM Power Systems、IBM Z、および LinuxONE ではサポートされていません。
-
conditions
リソースの代わりにwhen
フィールドを使用して、特定の条件が満たされる場合にのみタスクを実行できるようになりました。WhenExpression
の主なコンポーネントはInput
、Operator
、およびValues
です。すべての When 式がTrue
に評価されると、タスクが実行されます。When 式のいずれかがFalse
に評価されると、タスクはスキップされます。 - ステップのステータスは、タスクの実行がキャンセルまたはタイムアウトすると更新されるようになりました。
-
git-init
が使用するベースイメージをビルドするために、Git Large File Storage (LFS) のサポートが利用できるようになりました。 -
taskSpec
フィールドを使用して、タスクがパイプラインに組み込まれる際に、ラベルやアノテーションなどのメタデータを指定できるようになりました。 -
クラウドイベントがパイプラインの実行でサポートされるようになりました。
backoff
を使用した再試行が、クラウドイベントパイプラインリソースによって送信されるクラウドイベントに対して有効になりました。 -
Task
リソースが宣言するものの、TaskRun
リソースが明示的に指定しないワークスペースのデフォルトのWorkspace
設定を設定できるようになりました。 -
サポートは、
PipelineRun
namespace およびTaskRun
namespace の namespace 変数の補間に利用できます。 -
TaskRun
オブジェクトの検証が追加され、TaskRun
リソースが Affinity Assistant に関連付けられる際に複数の永続ボリューム要求 (PVC) ワークスペースが使用されていないことを確認するようになりました。複数の永続ボリューム要求 (PVC) ワークスペースが使用されていると、タスクの実行はTaskRunValidationFailed
の状態で失敗します。デフォルトで、Affinity Assistant は Red Hat OpenShift Pipelines で無効にされているため、これを使用できるように有効にする必要があります。
1.13.1.2. Pipelines CLI
tkn task describe
、tkn taskrun describe
、tkn clustertask describe
、tkn pipeline describe
、およびtkn pipelinerun describe
コマンドが以下を実行するようになりました。-
Task
、TaskRun
、ClusterTask
、Pipeline
およびPipelineRun
リソースのいずれかが 1 つしかない場合、それぞれを自動的に選択します。 -
出力に
Task
、TaskRun
、ClusterTask
、Pipeline
およびPipelineRun
リソースの結果をそれぞれ表示します。 -
出力に
Task
、TaskRun
、ClusterTask
、Pipeline
およびPipelineRun
リソースで宣言されたワークスペースをそれぞれ表示します。
-
-
tkn clustertask start
コマンドに--prefix-name
オプションを指定して、タスク実行の名前に接頭辞を指定できるようになりました。 -
インタラクティブモードのサポートが
tkn clustertask start
コマンドに提供されるようになりました。 -
TaskRun
およびPipelineRun
オブジェクトのローカルまたはリモートファイル定義を使用して、パイプラインでサポートされるPodTemplate
プロパティーを指定できるようになりました。 -
--use-params-defaults
オプションをtkn clustertask start
コマンドに指定して、ClusterTask
設定に設定したデフォルト値を使用して、タスク実行を作成できるようになりました。 -
tkn pipeline start
コマンドの--use-param-defaults
フラグで、デフォルトの値が一部のパラメーターに指定されていない場合に対話モードをプロンプトで表示するようになりました。
1.13.1.3. トリガー
-
YAML 文字列を文字列のマップに解析するために、
parseYAML
という名前の Common Expression Language (CEL) 関数が追加されました。 - 式を評価する際や、評価環境を作成するためにフック本体を解析する際に、CEL 式の解析を行うエラーメッセージの詳細度が上がりました。
- ブール値とマップが CEL オーバーレイメカニズムで式の値として使用されている場合に、それらをマーシャリングするためのサポートが利用できるようになりました。
以下のフィールドが
EventListener
オブジェクトに追加されました。-
replicas
フィールドは、YAML ファイルのレプリカ数を指定して、イベントリスナーが複数の Pod を実行できるようにします。 -
NodeSelector
フィールドでは、EventListener
オブジェクトがイベントリスナー Pod を特定のノードにスケジュールできるようにします。
-
-
Webhook インターセプターは
EventListener-Request-URL
ヘッダーを解析し、イベントリスナーによって処理される元のリクエスト URL からパラメーターを抽出できるようになりました。 - イベントリスナーからのアノテーションがデプロイメント、サービス、およびその他の Pod に伝播できるようになりました。サービスまたはデプロイメントのカスタムアノテーションは上書きされるため、イベントリスナーアノテーションに追加して伝播できるようにする必要があります。
-
EventListener
仕様のレプリカの適切な検証が、ユーザーがspec.replicas
値をnegative
またはzero
として指定する場合に利用できるようになりました。 -
TriggerCRD
オブジェクトを、TriggerRef
フィールドを使用して参照としてEventListener
仕様内に指定し、TriggerCRD
オブジェクトを別個に作成してから、これをEventListener
仕様内でバインドできるようになりました。 -
TriggerCRD
オブジェクトの検証およびデフォルト値が利用可能になりした。
1.13.2. 非推奨の機能
-
$(params)
パラメーターはtriggertemplate
リソースから削除され、$(tt.params)
に置き換えられ、これによりresourcetemplate
とtriggertemplate
パラメーター間の混乱が生じなくなります。 -
オプションの
EventListenerTrigger
ベースの認証レベルのServiceAccount
参照がServiceAccountName
文字列へのオブジェクト参照から変更されました。これにより、ServiceAccount
参照がEventListenerTrigger
オブジェクトと同じ namespace に置かれるようになりました。 -
Conditions
カスタムリソース定義 (CRD) は非推奨となり、代わりにWhenExpressions
CRD が使用されます。 -
PipelineRun.Spec.ServiceAccountNames
オブジェクトは非推奨となり、PipelineRun.Spec.TaskRunSpec[].ServiceAccountName
オブジェクトによって置き換えられます。
1.13.3. 既知の問題
- Red Hat OpenShift Pipelines のリリースでは、非接続インストールのサポートが追加されました。ただし、クラスタータスクで使用される一部のイメージは、非接続クラスターで動作するようにミラーリングする必要があります。
-
openshift
namespace のパイプラインは、Red Hat OpenShift Pipelines Operator のアンインストール後に削除されません。oc delete pipelines -n openshift --all
コマンドを使用してパイプラインを削除します。 Red Hat OpenShift Pipelines Operator をアンインストールしても、イベントリスナーは削除されません。
回避策として、
EventListener
およびPod
CRD を削除するには、以下を実行します。EventListener
オブジェクトをforegroundDeletion
ファイナライザーで編集します。$ oc patch el/<eventlistener_name> -p '{"metadata":{"finalizers":["foregroundDeletion"]}}' --type=merge
以下に例を示します。
$ oc patch el/github-listener-interceptor -p '{"metadata":{"finalizers":["foregroundDeletion"]}}' --type=merge
EventListener
CRD を削除します。$ oc patch crd/eventlisteners.triggers.tekton.dev -p '{"metadata":{"finalizers":[]}}' --type=merge
IBM Power Systems (ppc64le) または IBM Z (s390x) クラスターでコマンド仕様なしにマルチアーキテクチャーコンテナーイメージタスクを実行すると、
TaskRun
リソースは以下のエラーを出して失敗します。Error executing command: fork/exec /bin/bash: exec format error
回避策として、アーキテクチャー固有のコンテナーイメージを使用するか、正しいアーキテクチャーを参照する sha256 ダイジェストを指定します。sha256 ダイジェストを取得するには、以下を実行します。
$ skopeo inspect --raw <image_name>| jq '.manifests[] | select(.platform.architecture == "<architecture>") | .digest'
1.13.4. 修正された問題
- CEL フィルター、Webhook バリデーターのオーバーレイ、およびインターセプターの式を確認するための簡単な構文検証が追加されました。
- Trigger は、基礎となるデプロイメントおよびサービスオブジェクトに設定されたアノテーションを上書きしなくなりました。
-
以前のバージョンでは、イベントリスナーはイベントの受け入れを停止しました。今回の修正により、この問題を解決するために
EventListener
シンクの 120 秒のアイドルタイムアウトが追加されました。 -
以前のバージョンでは、
Failed(Canceled)
状態でパイプラインの実行を取り消すと、成功のメッセージが表示されました。これは、代わりにエラーが表示されるように修正されました。 -
tkn eventlistener list
コマンドがリスト表示されたイベントリスナーのステータスを提供するようになり、利用可能なイベントリスナーを簡単に特定できるようになりました。 -
トリガーがインストールされていない場合や、リソースが見つからない場合に、
triggers list
およびtriggers describe
コマンドについて一貫性のあるエラーメッセージが表示されるようになりました。 -
以前のバージョンでは、多くのアイドル接続がクラウドイベントの配信時に増大しました。この問題を修正するために、
DisableKeepAlives: true
パラメーターがcloudeventclient
設定に追加されました。新規の接続がすべてのクラウドイベントに設定されます。 -
以前のバージョンでは、特定のタイプの認証情報が指定されていない場合であっても、
creds-init
コードが空のファイルをディスクに書き込みました。今回の修正により、creds-init
コードが変更され、正しくアノテーションが付けられたシークレットから実際にマウントされた認証情報のみのファイルを書き込むようになりました。