1.2. Red Hat OpenShift Pipelines 1.18 のリリースノート
この更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.18 が OpenShift Container Platform 4.15 以降のバージョンで利用できるようになります。
1.2.1. 新機能 リンクのコピーリンクがクリップボードにコピーされました!
修正と安定性の向上に加えて、次のセクションでは Red Hat OpenShift Pipelines 1.18 の新機能を説明します。
1.2.1.1. Pipelines リンクのコピーリンクがクリップボードにコピーされました!
- このリリースでは、OpenShift Pipelines コントローラーのログメッセージが改善され、特に空の変数が存在する場合に読みやすさが向上しました。
このリリースでは、パイプラインリゾルバーの解決タイムアウト設定を指定して、パイプライン実行時の柔軟性と制御性を高めることができます。
パイプラインリゾルバーのタイムアウト設定の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2.1.2. Operator リンクのコピーリンクがクリップボードにコピーされました!
このリリースでは、OpenShift Pipeline がコミュニティータスクをサポートするようになりました。
次のコミュニティータスクは
openshift-pipelinesnamespace にデフォルトでインストールされます。-
argocd-task-sync-and-wait -
git-cli -
helm-upgrade-from-repo -
helm-upgrade-from-source -
jib-maven -
kubeconfig-creator -
pull-request -
trigger-jenkins-job
-
このリリースでは、OpenShift Pipelines は、
TektonConfigCR を介した新規コンテナーのデプロイメントをサポートします。TektonConfigCR を使用した新規kube-rbac-proxyコンテナーのデプロイ例Copy to Clipboard Copied! Toggle word wrap Toggle overflow このリリースでは、OpenShift Pipelines コントローラーの高可用性オプションが、既存のリーダー選出メカニズムの代わりとして
StatefulSet序数によって強化されています。これにより、Operator は、リーダー選出による迅速なリカバリー、またはStatefulSet序数による一貫したワークロード分散のいずれかを使用できるようになります。デフォルトオプションであるリーダー選出には、フェイルオーバー機能がありますが、アクセス集中が発生する可能性があります。対照的に、新しい
StatefulSet序数のアプローチでは、キーがレプリカ全体に均等に分散され、よりバランスの取れたワークロード分散が実現されます。TektonConfigカスタムリソースでstatefulset-ordinalsパラメーターをtrueに設定し、StatefulSet序数メソッドに切り替えることができます。StatefulSet序数機能を有効にする例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要StatefulSet序数を使用して高可用性を実現する機能は、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
1.2.1.3. トリガー リンクのコピーリンクがクリップボードにコピーされました!
このリリースでは、OpenShift Pipelines トリガーの
EventListenerオブジェクトにImagePullSecretsフィールドが追加され、非公開のレジストリーからのイメージのプルにリスナーが利用するシークレットを指定できます。ImagePullSecretsフィールドの使用例Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2.1.4. CLI リンクのコピーリンクがクリップボードにコピーされました!
このリリースでは、
opcコマンドラインユーティリティーに次のコンポーネントが追加されました。- Pipelines as Code バージョン 0.33.0
- CLI バージョン 0.40.0
- 結果バージョン 0.14.0
- 手動承認 Gate バージョン 0.5.0
1.2.1.5. Pipelines as Code リンクのコピーリンクがクリップボードにコピーされました!
このリリースでは、
on-path-changeおよびon-path-change-ignoreアノテーションを使用して、変更されたファイルに基づいてPipelineRunリソースをトリガーできるようになりました。これにより、複雑な CEL 式を記述する必要がなくなり、プロセスが簡素化されます。on-path-changeおよびon-path-change-ignoreアノテーションの使用例Copy to Clipboard Copied! Toggle word wrap Toggle overflow このリリースでは、
on-commentアノテーションを使用して、GitHub にプッシュされたコミットによってPipelineRunリソースをトリガーできるようになりました。この機能により、PipelineRunがトリガーされるタイミングをより細かく制御できるようになり、特定のコメントに基づいて照合させることができます。on-commentアノテーションによるトリガーを有効にするには、パイプライン実行を設定する必要があります。プッシュされたコミットを通じてパイプライン実行のトリガーを有効にする例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- この例では
/hello-worldコマンドを設定します。プッシュされたコミット (例:mainブランチ) でこのコマンドを使用すると、on-comment-prパイプラインの実行がトリガーされます。
このリリースでは、
tkn pac info globbing [-s | -d] “<pattern>”コマンドを使用して、サンプル入力データまたはコマンドが実行される作業ディレクトリーでパターンをテストできます。このコマンドは、PipelineRun定義でパターンが適切に機能しているかどうかをテストします。たとえば、次の
on-target-branchアノテーションをテストして、git イベントペイロードのmainブランチと一致することを確認できます。on-target-branchアノテーションの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの例
tkn pac info globbing -s "refs/heads/main" "refs/heads/*"
$ tkn pac info globbing -s "refs/heads/main" "refs/heads/*"Copy to Clipboard Copied! Toggle word wrap Toggle overflow このリリースでは、Pipelines as Code は HTML エンティティー
,を使用してアノテーション内のコンマをサポートします。これで、値に直接使用されるコンマと一緒に、コンマ区切りの値を使用できるようになりました。たとえば、
mainとbranchWith,commaの 2 つのブランチを一致させるには、次のようにアノテーションを指定します。コンマを使用したアノテーションの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このリリースでは、プルリクエストが終了またはマージされた後、
cancel-in-progress: trueアノテーションが指定された、関連するPipelineRunリソースがすべて自動的にキャンセルされます。この機能を有効にするには、PipelineRun定義でcancel-in-progressアノテーションを指定します。cancel-in-progressアノテーションの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要Pipelines as Code における cancellation-in-progress は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
このリリースでは、
cancel-in-progress: trueアノテーションが指定されたアクティブなPipelineRunリソースは、同じ名前の新しいPipelineRunリソースが Pipelines as Code によってトリガーされたときに自動的にキャンセルされます。現在、プルリクエストが生成されてPipelineRunがトリガーされ、同じプルリクエストに対して後に続くコミットにより、新しいPipelineRunがトリガーされると、過去の古いPipelineRunがキャンセルされ、リソースが節約されます。この機能を有効にするには、
PipelineRunリソースでpipelinesascode.tekton.dev/cancel-in-progressアノテーションをtrueに設定します。古いパイプライン実行のキャンセルを有効にする例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
この更新前は、Bitbucket Data Center の CEL 式で使用される
.pathChanged()関数は機能しませんでした。このリリースでは、この機能が実装されています。 このリリースでは、ラベルを使用してパイプラインの実行をプルリクエストと照合できます。パイプライン実行をラベルに一致させるには、
PipelineRunリソースにpipelinesascode.tekton.dev/on-labelアノテーションを設定します。プルリクエストまたはプッシュイベントにラベルを追加すると、パイプライン実行がすぐにトリガーされます。プッシュ要求またはプルイベントにまだラベルがあり、コミットで更新されると、パイプライン実行が再度トリガーされます。この機能は、GitHub、GitLab、および Gitea リポジトリープロバイダーでサポートされています。Bitbucket Cloud および Bitbucket Data Center ではサポートされていません。
1.2.1.6. Tekton Results リンクのコピーリンクがクリップボードにコピーされました!
- このリリースでは、Tekton Results は一般提供 (GA) 機能です。
-
このリリースでは、Operator は
TektonConfigCR を介してデフォルトで Tekton Results の設定をインストールして追加します。 - このリリースでは、Tekton Results API サーバーは OpenShift Pipelines コンソールプラグインのプロキシー環境変数を使用して、認証ヘッダーを Tekton Results API に送信します。
- このリリースでは、LokiStack から取得された Tekton Results のログ情報に、各ログエントリーのコンテナー名が含まれるようになりました。
1.2.1.7. Tekton Cache リンクのコピーリンクがクリップボードにコピーされました!
このリリースでは、OpenShift Pipelines に新しい tekton-caches ツール機能が含まれています。
Tekton Cache はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
tekton-caches ツールには、次の機能が含まれています。
ビルドプロセスが依存関係を保持するキャッシュディレクトリーを確保するには、
cache-uploadおよびcache-fetchステップアクションを使用して S3 バケット、Google Cloud Services (GCS) バケット、または OCI リポジトリーに保存します。cache-fetchおよびcache-uploadのステップアクションは、デフォルトでopenshift-pipelinesnamespace にインストールされます。
1.2.2. 互換性を損なう変更点 リンクのコピーリンクがクリップボードにコピーされました!
- このリリースでは、Tekton Results は、Tekton Results ウォッチャーによる永続ボリューム (PV)、S3 バケット、または GCS バケット内のストレージへのログの転送をサポートしなくなりました。
-
この更新前は、古いバージョンのタスクとステップアクションが
openshift-pipelinesnamespace にインストールされていました。この更新により、これらの古いバージョンは削除され、タスクとステップアクションの最新の 2 つのマイナーバージョンのみがインストールされます。たとえば、OpenShift Pipelines 1.18 では、インストールされたバージョン付きタスクとステップアクションは*-1-17-0と*-1-18-0です。
1.2.3. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
-
TektonConfigCR のresult:セクションでパラメーターを追加または変更しても、変更は自動的には適用されません。変更を適用するには、openshift-pipelinesnamespace 内の Results API サーバーのデプロイメントまたは Pod を再起動します。
1.2.4. 修正された問題 リンクのコピーリンクがクリップボードにコピーされました!
-
今回の更新以前は、通常のパラメーターと
matrixパラメーターの両方が含まれるタスクを定義した場合、tekton-pipelines-controllerコンポーネントがクラッシュし、セグメンテーションフォールトメッセージをログに記録していました。タスクが削除されなかった場合、コンポーネントのクラッシュは継続し、パイプラインが実行されませんでした。この更新により、このような場合でもコントローラーはクラッシュしなくなります。 -
この更新前は、ユーザーが OpenShift Container Platform Web コンソールを使用してリゾルバーベースの
PipelineRunリソースを再実行しようとすると、Invalid PipelineRun configuration, unable to start Pipeline.のエラーメッセージが表示されていました。この更新により、再実行でエラーが発生しなくなり、期待どおりに動作するようになりました。 -
この更新前は、
PipelineRunリソースが失敗すると、OpenShift Container Platform Web コンソールのPipelineRunリソースの Output タブに、利用可能な結果ではなくエラーメッセージが表示されていました。この更新により、Web コンソールに結果が正しく表示されるようになります。 -
この更新前は、
CONTEXTおよびDOCKERFILEパラメーターの値が異なるディレクトリーを参照している場合、openshift-pipelinesnamespace からのbuildahタスクは失敗していました。この更新により、問題が修正されました。 この更新前は、ステップアクションでパラメーターをデフォルト値として参照すると、そのステップアクションを参照する
TaskRunリソースが失敗していました。このリリースにより、この問題は修正されました。パラメーターを値として使用する例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
この更新前は、リポジトリーの外部を指すシンボリックリンクを含むリモート Git リポジトリーを参照する
PipelineRunリソースを作成すると、PipelineRunは失敗していました。このリリースでは、シンボリックリンクが無効な場合でもPipelineRunが失敗しなくなりました。 - この更新前は、メモリーと一時ストレージのリソース要求が定義された制限を超えることがありました。このリリースにより、この問題は修正されました。
- この更新前は、挿入されたサイドカーを使用するクラスターでパイプラインを実行しても、OpenShift Pipelines コントローラーに影響が及ばない場合がありました。これは、Kubernetes のマイナーバージョンチェックの不具合によって発生しました。この更新により、問題が修正されました。
- この更新前は、結果リストに無効な結果を伴う重複キーが含まれている場合に、重複が削除され、各キーの最後の結果に置き換えられていたため、結果リストの順序が変更される可能性がありました。このリリースでは、重複キーが削除されても結果の順序が保持され、各キーの最後の有効な結果が最終結果として保持されるようになります。
-
この更新前は、Pipelines as Code を使用する場合、相対パス (例:
https://example.servehttp.com/gitlab) でホストされている GitLab インスタンスは、マージリクエストのステータスを正しく更新できませんでした。最初のイベント更新は正常に機能しましたが、パイプライン実行をFinishedとしてマークするなど、後続の更新は GitLab に表示されず、ステータスはRunningの状態のままとなっていました。この更新により、ステータスの更新が正しく機能するようになりました。 -
この更新前は、Pipelines as Code を使用するときに、
[]値が空のPipelineRunリソースでonEventまたはonTargetBranchアノテーションを渡すと、PipelineRunリソースの一致処理ができませんでした。この更新により、値が空のアノテーションを渡すとエラーが返されます。 -
この更新前は、Pipelines as Code を使用する場合、URL なしまたは無効な URL を使用して
Repositoryカスタムリソース (CR) を作成できました。この更新では、有効な URL を指定した場合のみRepositoryCR を作成できるようになります。すべてのリポジトリーにデフォルト設定を渡すために、URL なしでopenshift-pipelinesnamespace にRepositoryCR を作成することもできます。 -
この更新前は、Pipelines as Code を使用しているときに、GitLab でフォークされたリポジトリーを通じてプルリクエストが発生すると、
PipelineRunリソースは正常に作成されていましたが、その最終ステータスは GitLab UI に報告されませんでした。この更新により、問題が修正されました。 - この更新前は、Pipelines as Code を使用する場合、GitLab はパイプライン実行のチェック名をパイプラインの単一エントリーとして表示していました。これにより、複数のパイプラインの実行が同時に実行され、そのうちの 1 つが失敗した場合に問題が発生しました。他のパイプラインの実行が成功した場合、失敗ステータスが上書きされ、パイプラインは成功したものとして表示されます。この更新により、パイプラインの実行ごとにすべてのチェック名が個別に表示されます。したがって、パイプラインの実行のいずれかが失敗した場合、パイプラインのステータスは失敗として正しく表示されます。
-
この更新前は、Pipelines as Code を使用するときに、
PipelineRunリソース定義で{{ trigger_comment }}変数を使用し、GitHub で複数行のコメントを送信すると、Pipelines as Code によってパイプライン実行の YAML 検証エラーが再通知される可能性がありました。この更新により、問題が修正されました。 -
この更新前は、Pipelines as Code を使用する場合、ブランチ名に他のコマンドとして解釈される可能性のある部分が含まれている
/test branch:<branch>コマンドは正しく機能しませんでした。たとえば、/test branch:a/testbranchコマンドではブランチ名に/testが含まれ、このコマンドは失敗します。この更新により、誤動作を防ぐために、コメント内の最初の/testのサブ文字列のみがコマンドとして扱われるようになりました。 -
この更新前は、Pipelines as Code を使用する場合、権限のないユーザーが GitHub にプッシュされたコミットに対して
/test、/retest、またはその他の GitOps コマンドを送信すると、ユーザーにトリガー権限がなかったとしてもPipelineRunリソースがトリガーされていました。この更新により、追加のユーザー認可チェックが追加され、適切な検証なしにPipelineRunリソースがトリガーされるのを防ぎます。 -
この更新前は、Pipelines as Code を使用する場合、権限のないユーザーがプルリクエストを発行し、リポジトリー管理者が
/ok-to-testコマンドを送信すると、プルリクエストイベントに一致するPipelineRunリソースがない場合でも、保留中のチェックが作成されていました。この更新により、一致するPipelineRunリソースがない場合、保留中のチェックは作成されなくなります。代わりに、一致するPipelineRunが存在しないことを示す中立的なチェックが作成されます。 今回の更新以前は、Bitbucket Data Center で Pipelines as Code を使用する場合、プッシュイベントユーザーは、
body.changesオブジェクトなどのPipelineRunリソースのイベントペイロードのすべてのフィールドを参照できませんでした。この更新でこの問題が修正されています。{{ body.changes }} 動的変数の使用例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
この更新前は、Pipelines as Code を使用している場合、
PipelineRunリソースのgenerateNameフィールドを使用してリソースをincomingWebhook に紐づけしようとしても、その紐づけは正しく機能しませんでした。この更新により、問題が修正されました。 -
この更新前は、Pipelines as Code を使用する場合、Bitbucket Data Center のプッシュイベントで
on-cel-expressionアノテーションが機能していませんでした。この更新により、問題が修正されました。
1.2.5. Red Hat OpenShift Pipelines 1.18.1 のリリースノート リンクのコピーリンクがクリップボードにコピーされました!
この更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.18.1 が OpenShift Container Platform 4.15 以降のバージョンで利用できるようになります。
1.2.6. 修正された問題 リンクのコピーリンクがクリップボードにコピーされました!
-
この更新前は、
TektonConfigカスタムリソース (CR) で Tekton Results の設定オプションを設定しても、それがTektonResultCR に伝播されず、Tekton Results コンポーネントに適用されませんでした。この更新により、TektonConfigCR の設定オプションがTektonResultCR に正しく伝播され、Tekton Results コンポーネントに適用されます。 -
この更新前は、プルリクエスト (PR) が原因で Pipelines as Code
が cancel-in-progressアノテーションなしでパイプライン実行を開始し、その PR が閉じられた場合、パイプライン実行は自動的にキャンセルされていました。この更新により、進行中のキャンセルアノテーションが明示的に指定されない限り、Pipelines as Code はパイプラインの実行をキャンセルしなくなります。 -
この更新前は、Pipelines as Code コントローラーが動作を停止し、
インデックス範囲外エラーが記録されることがありました。この更新により、この問題は解決され、Pipelines as Code コントローラーの動作が停止しなくなります。 -
この更新前は、
PipelineRunオブジェクトの Web コンソールに、アーカイブされたデータに基づいて、重複したTaskRunオブジェクトと誤ったステップ完了ステータスが表示されていました。この更新により、コンソールには現在のパイプライン実行に属するTaskRunオブジェクトのみが表示され、コンソールのステータスバーには現在のタスク実行のステータスが表示されます。 -
この更新前は、Pipelines as Code パイプライン実行で
cancel-in-progressアノテーションを使用し、このパイプライン実行にgenerateNameフィールドを指定した場合、パイプライン実行の別のコピーが開始されたときに Pipelines as Code はこのパイプライン実行をキャンセルできませんでした。この更新により、Pipelines as Code はパイプラインの実行を通常どおりキャンセルします。 -
この更新前は、
skopeoまたは同様のツールを使用して Red Hat OpenShift Pipelines Operator バンドルを検査すると、間違った名前serverless-operator が表示されていました。この更新により、問題は解決され、正しい名前openshift-pipelines-Operator-rhが表示されるようになりました。 -
この更新前は、Pipelines as Code を使用する場合、プルリクエストにラベルを追加すると、意図せずパイプラインの実行がトリガーされる可能性がありました。この更新により、プルリクエストにラベルを追加した後にのみ
PipelineRunリソースがトリガーされるようになりました。