1.3. Red Hat OpenShift Pipelines General Availability 1.17 のリリースノート
この更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.17 が OpenShift Container Platform 4.15 以降のバージョンで利用できるようになります。
1.3.1. 新機能
修正と安定性の向上に加えて、次のセクションでは Red Hat OpenShift Pipelines 1.17 の新機能について説明します。
1.3.1.1. Pipelines
このリリースでは、Git リゾルバーを使用して複数の Git プロバイダーを設定するか、同じ Git プロバイダーに複数の設定を
TektonConfig
カスタムリソース (CR) に追加できるようになりました。次に、configKey
パラメーターを使用して、さまざまなタスク実行およびパイプライン実行で使用する Git 設定を指定できます。複数の Git プロバイダー設定の例
apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: # ... pipeline: git-resolver-config: # configuration 1 fetch-timeout: "1m" default-url: "https://github.com/tektoncd/catalog.git" default-revision: "main" scm-type: "github" server-url: "" api-token-secret-name: "" api-token-secret-key: "" api-token-secret-namespace: "default" default-org: "" # configuration 2 test1.fetch-timeout: "5m" test1.default-url: "" test1.default-revision: "stable" test1.scm-type: "github" test1.server-url: "api.internal-github.com" test1.api-token-secret-name: "test1-secret" test1.api-token-secret-key: "token" test1.api-token-secret-namespace: "test1" test1.default-org: "tektoncd" # configuration 3 test2.fetch-timeout: "10m" test2.default-url: "" test2.default-revision: "stable" test2.scm-type: "gitlab" test2.server-url: "api.internal-gitlab.com" test2.api-token-secret-name: "test2-secret" test2.api-token-secret-key: "pat" test2.api-token-secret-namespace: "test2" test2.default-org: "tektoncd-infra" # ...
パイプライン実行で
test1
設定を使用する例apiVersion: tekton.dev/v1 kind: PipelineRun metadata: name: example spec: pipelineRef: resolver: git params: # ... - name: configKey value: test1 # ...
この更新により、クラスターレベルに加えて、namespace、パイプライン、およびパイプライン実行レベルで実行中の
PipelineRun
リソースを監視できるようになりました。metrics.running-pipelinerun.level
パラメーター値をnamespace
、pipeline
、またはpipelinerun
に設定することで、TektonConfig
カスタムリソースを介してレベルを設定できます。デフォルト値は空で、クラスターレベルでモニタリングを設定します。namespace レベルで実行中のパイプライン実行を監視する例
apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: pipeline: # ... metrics.running-pipelinerun.level: namespace # ...
-
今回の更新により、パイプライン実行またはタスク実行の実行後に、リソースの YAML マニフェストには、実行したユーザーの ID を示すラベルが含まれるようになりました。
PipelineRun
リソースの場合には、ラベルはtekton.dev/PipelineRunUID
です。TaskRun
リソースの場合、ラベルはtekton.dev/TaskRunUID
です。 -
今回の更新では、
TektonConfig
CR でspec.pipeline.performance
仕様を使用して、threads-per-controller
、kube-api-qps
、kube-api-burst
などのパフォーマンスチューニング値を指定すると、OpenShift Pipelines はこれらの値をリゾルバーコントローラーおよび他のコントローラーに適用します。
1.3.1.2. Operator
この更新により、
--all
および--preserve-digests
などの追加の引数を指定してskopeo-copy
コマンドを実行できます。これらの引数は、以下の例のように、スペースで区切られた文字列として渡すことができます。コマンドの例
$ tkn task start skopeo-copy -p ARGS="--all --preserve-digests"
- 今回の更新により、OpenShift Pipelines は、パイプラインまたはタスクに適用するセキュリティーコンテキスト制約(SCC)の一時ボリューム設定を適用します。
1.3.1.3. Pipelines as Code
-
この更新により、
pipelines_as_code_running_pipelineruns_count
メトリクスが追加され、Pipelines as Code で実行中のPipelineRun
リソースの数が表示されるようになりました。メトリクスは、リポジトリーまたは namespace でフィルタリングできます。 -
この更新により、
pipelines_as_code_pipelinerun_duration_seconds_sum
メトリクスが追加され、Pipelines as Code のすべてのPipelineRun
リソースが取得した合計期間が秒単位で表示されます。メトリクスは、リポジトリー、namespace、PipelineRun
ステータス、およびPipelineRun
ステータス変更の理由でフィルタリングできます。
1.3.1.4. Tekton Results
今回の更新により、Tekton Results を設定して、パイプラインとタスクの YAML マニフェストからの特定のラベルとアノテーションを結果テーブルの
summary フィールド
列に含めることができます。デフォルトで、tekton.dev/pipeline
ラベルの値が使用されます。この変更を加えるには、次の例に示すようにTektonResult
CR を変更します。TektonResult
CR に要約ラベルとアノテーションを設定する例apiVersion: operator.tekton.dev/v1 kind: TektonResult metadata: name: result spec: options: deployments: tekton-results-watcher: spec: template: spec: containers: - name: watcher args: - "--summary_labels=org.tekton.sample_label,tekton.dev/pipeline" - "--summary_annotations=org.tekton.sample_annotation"
1.3.1.5. Tekton Chains
この更新により、
TektonConfig
カスタムリソース (CR) を設定して、ecdsa
タイプのx509
キーペアを生成し、Tekton Chains で使用してアーティファクトに署名できるようになりました。TektonConfig
カスタムリソース(CR)のgenerateSigningSecret
フィールドをtrue
に設定することで、キーペアを生成できます。ecdsa
キーペアの作成例apiVersion: operator.tekton.dev/v1 kind: TektonConfig metadata: name: config spec: # ... chain: disabled: false generateSigningSecret: true # ...
この更新前は、
TektonConfig
CR で Tekton Chains を設定しなかった場合、Operator はデフォルトの Chains 設定を渡してませんでした。この更新により、TektonConfig
CR で Tekton Chains を設定しない場合、Operator は次のデフォルトプロパティーを使用して Tekton Chains 設定を行います。apiVersion: operator.tekton.dev/v1 kind: TektonConfig metadata: name: config spec: # ... chain: artifacts.taskrun.format: in-toto artifacts.taskrun.storage: oci artifacts.oci.storage: oci artifacts.oci.format: simplesigning artifacts.pipelinerun.format: in-toto artifacts.pipelinerun.storage: oci # ...
-
この更新により、Tekton Chains は、任意の名前を指定できる指定されたファイルから
mongo-server-url
URL の抽出をサポートするようになりました。コンテナー内の有効なファイルパスを指すstorage.docdb.mongo-server-url-path
パラメーターを使用できるようになりました。
1.3.2. 互換性を失わせる変更点
この更新により、非推奨の
ClusterTask
リソースが Operator から削除されました。代わりに、クラスターリゾルバーを使用して、OpenShift Pipelines がopenshift-pipelines
namespace にインストールするタスクにアクセスできます。重要OpenShift Pipelines 1.17 にアップグレードする前に、
ClusterTask
リソースを使用するパイプラインを設定した場合は、openshift-pipelines
namespace のタスクを使用するようにそれらを編集する必要があります。そうしないと、アップグレード後にパイプラインが失敗します。openshift-pipelines
namespace でのタスクの使用についての詳細は、OpenShift Pipelines namespace で提供されるタスク を参照してください。この更新により、コミュニティークラスタータスクが Operator から削除されました。代わりに、Tekton カタログ (GitHub リソース) からダウンロードできます。コミュニティークラスタータスクは、今後のリリースでタスクとして追加される予定です。次のリストは、削除されたコミュニティークラスタータスクを示しています。
-
argocd-task-sync-and-wait
-
git-cli
-
helm-upgrade-from-repo
-
helm-upgrade-from-source
-
jib-maven
-
kubeconfig-creator
-
pull-request
-
trigger-jenkins-job
-
1.3.3. 修正された問題
- この更新により、プッシュイベントペイロードにコミットが含まれていない場合、Pipelines as Code コントローラーは GitLab プッシュイベントを処理しなくなりました。代わりに、コミットがアタッチされていないことをユーザーに警告するエラーメッセージが正しく表示されます。
- この更新により、Pipelines as Code コントローラーは GitLab タグの削除イベントを処理しなくなり、コントローラーがクラッシュしました。代わりに、タグイベントの削除がサポートされていないことをユーザーに警告するエラーメッセージが正しく表示されます。
-
この更新前は、
body.eventKey
フィールドなどの一部の標準変数、ヘッダー値、およびボディーフィールドは、Bitbucket サーバーのPipelineRun
リソースで解決されませんでした。この更新により、問題が修正されました。 -
この更新により、
skopeo-copy
タスクは、SOURCE_IMAGE_URL
パラメーターおよびDESTINATION_IMAGE_URL
パラメーターが空のままになっている場合に、url.txt
ファイルを使用した複数のイメージのコピーをサポートするようになりました。 -
この更新前は、空のリポジトリーで
tkn pac create repo
コマンドを実行すると、.
期間シンボルがテンプレート内のパイプライン実行の名前として生成されていました。この更新により、この問題は修正され、REPO_NAME.git
がパイプライン実行名として使用されるようになりました。 -
この更新により、パイプライン実行の失敗処理が修正され、
status.message
フィールドで検証の失敗を正確に報告し、タスクが検証に失敗した場合でも、finally
タスクを一貫してトリガーするようになりました。 - この更新の前は、メモリー不足のエラーが原因で Pod が失敗した場合、タスクの実行はすぐに失敗していました。代わりに、しばらく応答できず、失敗しました。今回の更新により、タスクの実行がすぐに失敗します。
-
この更新の前は、
CustomRun
リソースが結果として配列を返すパイプラインまたはタスクリソースを参照すると、結果のタイプの不一致がログに報告されていました。今回の更新により、配列の結果は正しく処理されます。 -
この更新の前は、タスクの実行が失敗した場合、タスクの一部のステップのステータスが
TaskRun
YAML マニフェストに正しく記録されなかった場合がありました。今回の更新により、ステータスが正しく記録されるようになりました。 - この更新前は、タスクのステップが失敗した場合、後続のステップはタスク実行またはパイプライン実行の YAML マニフェストで skipped としてマークされないことがありました。今回の更新により、ステップがスキップ済みとしてマークされるようになりました。c
-
この更新前は、パイプラインの実行に検証に失敗したタスクが含まれていた場合、前のタスクの失敗後に実行されることが予想される場合でも、後続の
finally
タスクは実行されませんでした。この更新により、finally
タスクが実行します。 -
この更新の前は、GitLab で Pipelines as Code を使用する場合、
.tekton
ディレクトリーに 20 を超えるファイルが含まれる場合、一部のパイプライン実行は起動できませんでした。今回の更新により、パイプラインの実行が正しく開始されるようになりました。 - この更新前は、BitBucket で Pipelines as Code を使用すると、BitBucket イベント内のペイロードが正しくないと、コードとしてのパイプラインコントローラーがクラッシュする可能性がありました。今回の更新により、コントローラーはクラッシュせず、処理前にペイロードを検証し、エラーを正しく報告するようになりました。
- この更新前は、コードとしてのパイプラインを使用する場合、完了前にパイプライン実行を削除すると、一時的な Git 認証シークレットは OpenShift Container Platform namespace に残りました。この問題により、シークレットのクォータに到達し、この場合、新規パイプラインの実行を開始できませんでした。今回の更新により、Pipelines as Code は一時的なシークレットを適切に削除します。
-
この更新前は、BitBucket で Pipelines as Code を使用する場合、パイプライン実行が on-target-branch 用に設定されている場合(例:
on-target-branch
: [refs/tags/*]refs/tags
接頭辞が含まれていないために発生しました。今回の更新により、Pipelines as Code はタグイベントを正しく一致させます。 - この更新前は、タスクの実行がキャンセルされると、Tekton Chains にタスクの指定を記録していませんでした。この更新により、Tekton Chains はタスクの仕様を記録します。
-
この更新前は、Tekton Chains では、タスクがタスクのすべてのステップを正しく実行した場合でも、タスクの仕様(
TaskRun.Status.steps
)の仕様に記録したステップが一致しませんでした。今回の更新により、タスクの仕様とタスク実行で実行される手順が正しく記録されるようになりました。 - この更新の前は、タイムアウトが原因でパイプラインの実行が終了すると、ログ出力に無効なエラーメッセージが含まれ、パイプライン実行のステータスが正しく報告されないことがありました。今回の更新により、このようなメッセージがログに表示されなくなり、ステータスは正しく報告されるようになりました。
- 今回の更新以前は、タスクの 1 つまたは複数のステップでマウントするワークスペースを指定した場合、OpenShift Pipelines はタスクのすべてのステップにワークスペースをマウントしていました。この更新により、ワークスペースは指定された手順にのみマウントされます。
- この更新前は、Pipelines as Code を使用する場合に、OpenShift Container Platform クラスターが非常にビジーな場合、同時実行キューが順不同で、Pipelines as Code が適切に回復されなかったため、一部のパイプライン実行が実行できませんでした。今回の更新により、Pipelines as Code は同時実行キューを適切に管理し、すべてのパイプライン実行を実行します。
-
今回の更新以前は、
TektonConfig
CR でデフォルトのコンテナーリソース要件を指定し、LimitRange
設定をパイプラインまたはタスクに適用する場合、デフォルトの要件により、LimitRange
設定が適用されないことがありました。今回の更新により、LimitRange
設定はデフォルトのコンテナーのリソース要件をオーバーライドします。 -
この更新の前は、検証エラーが原因でパイプライン実行またはタスク実行の実行が失敗した場合、OpenShift Pipelines はパイプライン実行またはタスク実行の一般的な
Failed
ステータスを記録し、表示していました。今回の更新により、OpenShift Pipelines はFailed Validation
ステータスを記録します。 -
今回の更新以前は、
tkn bundle
コマンドを使用して大規模な Tekton バンドルのコンテンツを読み取ると、コマンドが失敗する可能性がありました。今回の更新により、tkn
コマンドラインユーティリティーは大規模な Tekton バンドルを正しく処理するようになりました。 -
今回の更新以前は、
tkn
コマンドラインユーティリティーを使用して完了したパイプライン実行を表示すると、パイプラインで設定した条件が原因でスキップされたタスクがSucceeded (Completed)
と表示されていました。今回の更新により、それらは完了したものとして表示されなくなります。