リリースノート
この OpenShift Pipelines リリースの新機能と変更点のハイライト
概要
第1章 Red Hat OpenShift Pipelines リリースノート
OpenShift Pipelines ライフサイクルとサポートされているプラットフォームの詳細は、OpenShift Operator ライフサイクル および Red Hat OpenShift Container Platform ライフサイクルポリシー を参照してください。
リリースノートには、新機能、非推奨機能、互換性を損なう変更、既知の問題に関する情報が記載されています。以下のリリースノートは、OpenShift Container Platform 上の最新の OpenShift Pipelines リリースに適用されます。
Red Hat OpenShift Pipelines は、以下を提供する Tekton プロジェクトをベースとするクラウドネイティブの CI/CD エクスペリエンスです。
- 標準の Kubernetes ネイティブパイプライン定義 (CRD)
- CI サーバー管理のオーバーヘッドのないサーバーレスのパイプライン。
- S2I、Buildah、JIB、Kaniko などの Kubernetes ツールを使用してイメージをビルドするための拡張性。
- Kubernetes ディストリビューションでの移植性。
- パイプラインと対話するための強力な CLI。
- OpenShift Container Platform Web コンソールの Developer パースペクティブと統合されたユーザーエクスペリエンス。
Red Hat OpenShift Pipelines の概要は、OpenShift Pipelines について を参照してください。
1.1. 互換性およびサポート表
現在、今回のリリースに含まれる機能には テクノロジープレビュー のものがあります。これらの実験的機能は、実稼働環境での使用を目的としていません。
以下の表では、機能は以下のステータスでマークされています。
TP | テクノロジープレビュー |
GA | 一般公開 (GA) |
Red Hat OpenShift Pipelines バージョン | コンポーネントのバージョン | OpenShift バージョン | サポートステータス | |||||||
---|---|---|---|---|---|---|---|---|---|---|
Operator | Pipelines | Triggers | CLI | Chains | Hub | Pipelines as Code | Results | Manual Approval Gate | ||
1.17 | 0.65.x | 0.30.x | 0.39.x | 0.23.x (GA) | 1.19.x (TP) | 0.29.x (GA) | 0.13.x (TP) | 0.4.x (TP) | 4.15、4.16、4.17、4.18 | GA |
1.16 | 0.62.x | 0.29.x | 0.38.x | 0.22.x (GA) | 1.18.x (TP) | 0.28.x (GA) | 0.12.x (TP) | 0.3.x (TP) | 4.15、4.16、4.17、4.18 | GA |
1.15 | 0.59.x | 0.27.x | 0.37.x | 0.20.x (GA) | 1.17.x (TP) | 0.27.x (GA) | 0.10.x (TP) | 0.2.x (TP) | 4.14、4.15、4.16 | GA |
1.14 | 0.56.x | 0.26.x | 0.35.x | 0.20.x (GA) | 1.16.x (TP) | 0.24.x (GA) | 0.9.x (TP) | 該当なし | 4.12, 4.13, 4.14, 4.15, 4.16 | GA |
質問やフィードバックは、製品チームに pipelines-interest@redhat.com 宛のメールを送信してください。
1.2. Red Hat OpenShift Pipelines 1.18 のリリースノート
この更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.17 が OpenShift Container Platform 4.15 以降のバージョンで利用できるようになります。
OpenShift Pipelines を使用するには、少なくとも以下の OpenShift Container Platform リリースを使用する必要があります。
- OpenShift Container Platform バージョン 4.15: 4.15.42 以降
- OpenShift Container Platform バージョン 4.16: 4.16.26 以降
- OpenShift Container Platform バージョン 4.17: 4.17.7 以降のバージョンの場合
1.2.1. 新機能
修正と安定性の向上に加えて、次のセクションでは Red Hat OpenShift Pipelines 1.17 の新機能を説明します。
1.2.1.1. Pipelines
このリリースでは、Git リゾルバーを使用して複数の Git プロバイダーを設定するか、同じ Git プロバイダーに複数の設定を
TektonConfig
カスタムリソース (CR) に追加できるようになりました。次に、configKey
パラメーターを使用して、さまざまなタスク実行およびパイプライン実行で使用する Git 設定を指定できます。複数の Git プロバイダー設定の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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" # ...
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
設定を使用する例Copy to Clipboard Copied! Toggle word wrap Toggle overflow apiVersion: tekton.dev/v1 kind: PipelineRun metadata: name: example spec: pipelineRef: resolver: git params: # ... - name: configKey value: 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 レベルで実行中のパイプライン実行を監視する例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: pipeline: # ... metrics.running-pipelinerun.level: namespace # ...
apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: pipeline: # ... metrics.running-pipelinerun.level: namespace # ...
-
この更新により、パイプライン実行またはタスク実行の後に、実行したユーザーの ID を示すラベルがリソースの YAML マニフェストに、含まれるようになりました。
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.2.1.2. Operator
この更新により、
--all
および--preserve-digests
などの追加の引数を指定してskopeo-copy
コマンドを実行できます。これらの引数は、以下の例のように、スペースで区切られた文字列として渡すことができます。コマンドの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow tkn task start skopeo-copy -p ARGS="--all --preserve-digests"
$ tkn task start skopeo-copy -p ARGS="--all --preserve-digests"
- この更新により、OpenShift Pipelines は、パイプラインまたはタスクに適用するセキュリティーコンテキスト制約 (SCC) の一時ボリューム設定を適用するようになりました。
1.2.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.2.1.4. Tekton Results
この更新により、Tekton Results を設定して、パイプラインとタスクの YAML マニフェストの特定のラベルとアノテーションを結果テーブルの
summary フィールド
の列に含めることができるようになりました。デフォルトでは、tekton.dev/
pipeline ラベルの値が使用されます。この変更を行うには、次の例に示すようにTektonResult
CR を変更します。TektonResult
CR での概要ラベルとアノテーションの設定例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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"
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.2.1.5. Tekton Chains
この更新により、
TektonConfig
カスタムリソース (CR) を設定して、ecdsa
タイプのx509
キーペアを生成し、Tekton Chains で使用してアーティファクトに署名できるようになりました。TektonConfig
カスタムリソース (CR) のgenerateSigningSecret
フィールドをtrue
に設定することで、キーペアを生成できます。ecdsa
キーペアの作成例Copy to Clipboard Copied! Toggle word wrap Toggle overflow apiVersion: operator.tekton.dev/v1 kind: TektonConfig metadata: name: config spec: # ... chain: disabled: false generateSigningSecret: true # ...
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 設定を行います。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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 # ...
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.2.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.2.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 マニフェストで後続のステップがスキップ済みとしてマークされないことがありました。この更新により、手順はスキップ済みとしてマークされます。
-
この更新の前は、検証に失敗したタスクが、パイプラインの実行に含まれていた場合、前のタスクが失敗した場合に実行される予定であった後続の
finally
タスクは実行されませんでした。この更新により、finally
タスクが実行されます。 -
この更新の前は、GitLab で Pipelines as Code を使用する場合、
.tekton
ディレクトリーに 20 を超えるファイルが含まれていると、一部のパイプラインの実行が開始に失敗しました。この更新により、パイプラインの実行が正しく開始されます。 - この更新の前は、BitBucket で Pipelines as Code を使用すると、BitBucket イベントの不正なペイロードによって Pipelines as Code コントローラーがクラッシュする可能性がありました。この更新により、コントローラーはクラッシュせず、ペイロードを処理する前に検証し、エラーを正しく報告するようになります。
- この更新の前は、Pipelines as Code を使用しているときに、パイプラインの実行が完了する前に削除すると、一時的な Git 認証シークレットが OpenShift Container Platform namespace に残っていました。この問題が原因で、シークレットのクォータに達する可能性があり、この場合、新しいパイプラインの実行を開始できませんでした。この更新により、Pipelines as Code は一時的なシークレットを適切に削除するようになりました。
-
この更新の前は、BitBucket で Pipelines as Code を使用する場合、パイプライン実行が
on-target-branch
に対して設定されていると、タグ関連のイベントが一致しませんでした (例:on-target-branch: [refs/tags/*])
。この問題は、タグに関連する Bitbucket Cloud イベントペイロードに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 はパイプライン実行またはタスク実行の一般的な
失敗
ステータスを記録して表示していました。この更新により、OpenShift Pipelines はFailed Validation
ステータスを記録します。 -
この更新の前は、
tkn bundle
コマンドを使用して大規模な Tekton バンドルのコンテンツを読み取ると、コマンドが失敗する可能性がありました。この更新により、tkn
コマンドラインユーティリティーは大きな Tekton バンドルを正しく処理するようになりました。 -
この更新の前は、
tkn
コマンドラインユーティリティーを使用して完了したパイプライン実行を表示すると、パイプラインで設定した条件によりスキップされたタスクはSucceeded (Completed)
として表示されていました。この更新により、completed と表示されなくなりました。
1.2.4. Red Hat OpenShift Pipelines General Availability 1.17.1 のリリースノート
この更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.17.1 が OpenShift Container Platform 4.15 以降のバージョンで利用できるようになります。
1.2.4.1. 修正された問題
-
この更新前は、通常のパラメーターと
matrix
パラメーターの両方を含むマトリックスタスクを定義すると、tekton-pipelines-controller
コンポーネントがクラッシュし、セグメンテーションエラーメッセージがログに記録されていました。タスクが削除されなかった場合、コンポーネントのクラッシュは継続し、パイプラインが実行されませんでした。この更新により、このような場合でもコントローラーはクラッシュしなくなります。 - この更新前は、Tekton Chains コントローラーが繰り返しクラッシュし、Tekton Chains コンポーネントが使用できなくなる場合がありました。今回の更新により、コントローラーがクラッシュしなくなりました。
この更新前は、
openshift-pipelines
namespace のbuildah
タスクでは、BUILD_EXTRA_ARGS
パラメーターでスペースを使用できませんでした。この更新により、buildah
タスクはBUILD_EXTRA_ARGS
パラメーターにスペースを渡すことができるようになりました。値にスペースが含まれる BUILD_EXTRA_ARGS パラメーターの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ... ...
# ... - name: BUILD_EXTRA_ARGS value: '--build-arg EXAMPLE="abc def"' # ...