5.6. パイプライン実行に対して自動 cancellation-in-progress を指定するためのアノテーション
デフォルトでは、Pipelines as Code はパイプラインの実行を自動的にキャンセルしません。Pipelines as Code によって作成および開始されたすべてのパイプライン実行は、完了するまで実行されます。ただし、パイプラインの実行をトリガーするイベントは立て続けに発生する可能性があります。たとえば、プルリクエストによってパイプラインの実行がトリガーされ、その後ユーザーがプルリクエストのソースブランチに新しいコミットをプッシュすると、プッシュごとにパイプラインの実行の新しいコピーがトリガーされます。プッシュが複数回発生すると、複数のコピーが実行され、過剰なクラスターリソースが消費される可能性があります。
自動の cancellation-in-progress を有効にするようにパイプライン実行を設定できます。パイプライン実行の自動キャンセルを有効にすると、Pipelines as Code は次の状況でパイプライン実行をキャンセルします。
- Pipelines as Code は、同じプルリクエストまたは同じソースブランチに対して同じパイプライン実行のコピーを正常に開始しました。
- パイプライン実行をトリガーしたプルリクエストはマージされるか、終了されます。
sample-pipeline
パイプライン実行の作成時に、以下の例を使用して自動キャンセルを有効にできます。
パイプライン実行の自動 cancellation-in-progress は、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
-
Pipelines as Code は、このパイプライン実行の新しいコピーを正常に開始した 後 にパイプライン実行をキャンセルします。
pipelinesascode.tekton.dev/cancel-in-progress
設定では、パイプライン実行のコピーが必ず 1 つだけ同時に実行されるわけでは ありません。 -
すべてのデフォルトのパイプライン実行に対して
cancellation-in-progress
を有効にするには、enable-cancel-in-progress-on-pull-requests
およびenable-cancel-in-progress-on-push
設定を使用します。これらの設定は、Pipelines as Code を設定するために、TektonConfig
カスタムリソース (CR) のplatform.openshift.pipelinesAsCode.settings
仕様で使用できます。