1.5. Red Hat OpenShift Pipelines 一般提供 1.13 のリリースノート
今回の更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.13 が OpenShift Container Platform 4.12 以降のバージョンで利用できるようになりました。
1.5.1. 新機能
以下では、修正および安定性の面での改善点に加え、OpenShift Pipelines 1.13 の主な新機能を説明します。
Red Hat OpenShift Pipelines Operator 1.13 にアップグレードする前に、少なくとも OpenShift Container Platform 4.12.19 または 4.13.1 バージョンがクラスターにインストールされていることを確認してください。
1.5.1.1. Pipelines
- この更新前は、Source-to-Image (S2I) クラスタータスクでは、テクノロジープレビューにあったベース S2I コンテナーイメージが使用されていました。この更新により、S2I クラスタータスクは、リリースされ完全にサポートされるベース S2I コンテナーイメージを使用するようになりました。
-
この更新により、オプションで、タスク実行がキャンセルされたときに、OpenShift Pipelines がタスク実行の Pod を停止しますが、Pod は削除しないように設定を有効にすることができます。この設定を有効にするには、
TektonConfig
カスタムリソース (CR) で、pipeline.options.configMaps.feature-flags.data.keep-pod-on-cancel
仕様をtrue
に設定し、pipeline.enable-api-fields
仕様をalpha
に設定します。 -
この更新前は、タスクレベルでコンピューティングリソース制限を設定するには、アルファ機能を有効にする必要がありました。この更新により、
TaskRun
CR のcomputeResources
仕様を使用してタスクのリソース制限を設定できるようになりました。 -
この更新により、タスクを指定し、
displayName
パラメーターを使用するときに、表示名にパラメーター、結果、またはコンテキスト変数の値を含むパラメーターを使用できるようになりました (例:$(params.application)
、$(tasks.scan.results.report)
、$(context.pipeline.name)
)。 -
この更新により、ハブリゾルバーを使用してリモートパイプラインまたはタスクを指定するときに、
version
パラメーターで>=0.2.0,< 1.0.0
などの不等式制約を使用できるようになりました。 -
今回の更新により、タスクを指定するときに
when
式で Common Expression Language (CEL) 式を使用できるようになりました。この機能を使用するには、TektonConfig
CR でpipeline.options.configMaps.feature-flags.data.enable-cel-in-whenexpression
仕様をtrue
に設定する必要があります。 この更新により、
PipelineRun
CR 仕様でパイプラインを指定するときに、インラインタスクによって生成された結果を後続のインラインタスクで参照できるようになりました。使用例
apiVersion: tekton.dev/v1 kind: Task metadata: name: uid-task spec: results: - name: uid steps: - name: uid image: alpine command: ["/bin/sh", "-c"] args: - echo "1001" | tee $(results.uid.path) --- apiVersion: tekton.dev/v1 kind: PipelineRun metadata: name: uid-pipeline-run spec: pipelineSpec: tasks: - name: add-uid taskRef: name: uid-task - name: show-uid taskSpec: steps: - name: show-uid image: alpine command: ["/bin/sh", "-c"] args: - echo $(tasks.add-uid.results.uid)
-
この更新により、クラスターリゾルバーを設定するときに、
blocked-namespaces
パラメーターの値を*
に設定できるようになりました。この設定では、allowed-namespaces
パラメーターにリストされている namespace のみが許可され、他の namespace はすべてブロックされます。
1.5.1.2. Operator
この更新により、
disable-affinity-assistant
機能フラグは非推奨になり、将来のリリースでは削除される可能性があります。代わりに、TektonConfig
CR で、pipeline.options.configMaps.feature-flags.data.coschedule
仕様を次のいずれかの値に設定できます。-
workspaces
: ワークスペースが永続ボリューム要求を割り当てる場合、OpenShift Pipelines は、同じワークスペースを共有するすべてのタスクの実行を同じノードにスケジュールします。これはデフォルト設定です。 -
pipelineruns
: OpenShift Pipelines は、同じノードへのパイプライン実行内のすべてのタスクの実行をスケジュールします。 -
isolate-pipelinerun
: OpenShift Pipelines は、同じノードへのパイプライン実行内のすべてのタスク実行をスケジュールし、ノード上で同時に実行できるパイプライン実行は 1 つだけです。すべてのノードが他のパイプライン実行に使用されている場合は、この設定によりパイプラインの実行が遅れる可能性があります。 -
disabled
: OpenShift Pipelines は、ノードへのタスク実行の割り当てに関する特定のポリシーを適用しません。
-
1.5.1.3. トリガー
- この更新が行われる前は、コアインターセプターは起動時に常に TLS シークレットを作成していました。この更新により、TLS シークレットがクラスター上に存在しない場合、または既存のシークレット内の証明書の有効期限が切れた場合、コアインターセプターは TLS シークレットを作成します。
1.5.1.4. CLI
-
今回の更新により、
tkn bundle push
コマンドを使用すると、作成時刻が1970-01-01T00:00:00Z
(Unix エポック時間) に設定されたバンドルが作成されます。この変更により、同じソースから作成されたバンドルイメージが常に同一になることが保証されます。--ctime
パラメーターを使用して、RFC3339 形式で作成時間を設定できます。SOURCE_DATE_EPOCH
環境変数を使用して作成時刻を設定することもできます。
1.5.1.5. Pipelines as Code
この更新により、Pipelines as Code で高度なイベント一致 (pipelinesascode.tekton.dev/on-cel-expression) に CEL 式を使用するときに、
header
フィールドとbody
フィールドを使用して、Git リポジトリープロバイダー本体が渡す完全ペイロードにアクセスできます。この機能を使用すると、Git リポジトリーが送信する情報によってイベントをフィルターできます。重要イベント一致のための CEL 式でのペイロードのヘッダーと本文の使用は、テクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
-
この更新により、Pipelines as Code パイプラインの実行がプッシュイベントによってトリガーされたときに、対応するコミットコメントに対して
/test
、/test branch:<branchname>
、/retest
、/retest branch:<branchname>
、/cancel
、および/cancel branch:<branchname>
コマンドを使用して、パイプラインの実行を再実行またはキャンセルします。 この更新により、Pipelines as Code として使用するときに、リモートパイプラインでリモートタスクを使用できるようになります。したがって、複数のリポジトリー間で完全なリモートパイプラインを再利用できます。同じ名前のタスクを追加することで、リモートパイプラインからのタスクをオーバーライドできます。
重要リモートパイプラインでのリモートタスクの使用とタスクのオーバーライドは、テクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
- この更新により、Pipelines as Code として使用するときに、Git リポジトリープロバイダーでの CI パイプラインの実行に関する改善された情報を表示できるようになります。この情報には、namespace と関連するパイプラインの実行が含まれます。
1.5.2. 互換性を失わせる変更点
-
この更新前は、Pipelines as Code でポリシーグループを使用する場合、ポリシーグループの一部ではなく、明示的に許可されていないが (組織の所有権などを通じて) CI の実行が許可されているユーザーが、プルリクエストのようなイベントを作成、または
ok_to_test
などのコマンドを実行して、パイプライン実行を行える場合がありました。この更新により、ポリシーグループが設定されている場合は、必要なポリシーグループに追加されたユーザーのみがパイプライン実行を行えるようになり、所有者組織の一部であるがポリシーグループに設定されていないユーザーはパイプライン実行を行えなくなります。
1.5.3. 既知の問題
-
タスクの実行がキャンセルされたときに Pod を保持できるようにするには、
TektonConfig
CR でpipeline.options.configMaps.feature-flags.data.keep-pod-on-cancel
仕様をtrue
に設定するとともに、TektonConfig
CR のpipeline.enable-api-fields
仕様をalpha
に設定する必要があります。 - タスク実行がキャンセルされたとき、デフォルトのタイムアウトのため、またはパイプライン仕様でタイムプットを設定したためにタスク実行がキャンセルされたときに Pod の保持を有効にすると、OpenShift Pipelines は Pod を削除します。
1.5.4. 修正された問題
- この更新前は、パイプラインの実行で Git 認証に使用されるシークレットが、クリーンアップ中にクラスターから削除される可能性がありました。この更新により、シークレットは、それを使用するすべてのパイプライン実行が削除された場合にのみ削除されます。
- この更新前は、複数のシークレットが同じ接頭辞を共有し、git インターフェイスを使用してログに記録された場合、隠蔽プロセスが短いシークレットから開始され、長いシークレットの一部がログに表示されることがありました。今回の更新により、ログ内のシークレットを隠蔽する場合は、最も長いシークレットからプロセスが開始されるようになり、ログにはシークレットの一部が表示されなくなります。
-
この更新前は、パイプラインの
results
仕様を指定した場合、パイプラインの実行がタイプの不一致エラーで誤って失敗する可能性がありました。この更新により、パイプラインのresults
仕様を指定すると、パイプラインによって提供される結果が正しく処理されるようになりました。 - この更新より前は、Tekton Chains が KMS を使用して Hashicorp Vault として設定されていて、Vault への接続中に根本的なエラーが発生すると Pod がクラッシュし始めました。この問題は修正され、エラーが Tekton Chains コントローラーのログに記録されるようになりました。
-
この更新前は、Tekton Chains を使用するときに
storage.oci.repository
パラメーターを設定すると、Tekton Chains コントローラーログにエラーが報告されていました。この更新により、storage.oci.repository
パラメーターが正しく処理されるようになりました。 - この更新より前は、Tekton Chains が Hashicorp Vault KMS で設定されており、Vault への接続に問題があると、Tekton Chains コントローラー Pod がクラッシュする可能性がありました。この更新により、エラーが処理され、Tekton Chains コントローラーログに記録されます。
1.5.5. Red Hat OpenShift Pipelines 一般提供 1.13.1 のリリースノート
今回の更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.13.1 が OpenShift Container Platform 4.12 以降のバージョンで利用できるようになりました。
1.5.5.1. 修正された問題
-
この更新が行われる前は、タスクの実行が失敗し、
cannot stop the sidecar
というエラーメッセージが表示されることがありました。今回の更新により、この障害の原因となったコントローラー間の競合状態が修正されました。 -
この更新より前は、タスクの実行がキャンセルされたときに Pod を保持できるようにするには、
TektonConfig
CR でpipeline.options.configMaps.feature-flags.data.keep-pod-on-cancel
仕様をtrue
に設定するとともに、TektonConfig
CR のpipeline.enable-api-fields
仕様をalpha
に設定する必要がありました。今回の更新により、TektonConfig
CR でPipeline.options.configMaps.feature-flags.data.keep-pod-on-cancel
仕様をtrue
に設定すると、タスクの実行がキャンセルされたときに Pod を保持できるようになり、追加の設定は必要なくなりました。 -
今回の更新前は、タスクのサイドカーを定義した場合、OpenShift Pipelines では
Task
およびTaskRun
カスタムリソース (CR) の作成時に定義内のコンテナーイメージが検証されませんでした。ランタイム時に、サイドカーに無効なコンテナーイメージが含まれていたことが原因で、タスクの実行が失敗しました。今回の更新により、OpenShift Pipelines はTask
およびTaskRun
CR の作成時にサイドカー定義のコンテナーイメージを検証するようになりました。 - 今回の更新の前は、タスクがパラメーターを評価しているときに OpenShift Pipelines コントローラーがクラッシュすることがありました。今回の更新により、コントローラーがクラッシュしなくなりました。
- 今回の更新より前は、パイプライン実行の最後のタスクが失敗するかスキップされた場合に、OpenShift Pipelines はパイプライン実行の検証エラーを報告することがありました。今回の更新により、OpenShift Pipelines はパイプライン実行のステータスを正しく報告します。