1.2. Red Hat OpenShift Pipelines 1.20 のリリースノート
この更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.20 が OpenShift Container Platform 4.15 以降のバージョンで利用できるようになりました。
1.2.1. 新機能 リンクのコピーリンクがクリップボードにコピーされました!
修正と安定性の向上に加えて、次のセクションでは Red Hat OpenShift Pipelines 1.20 の新機能を説明します。
- FIPS 対応環境での実行のサポート
- Red Hat OpenShift Pipelines は、Federal Information Processing Standards (FIPS) モードで実行される環境向けに設計されています。OpenShift Container Platform FIPS サポートを有効にする方法の詳細は、OpenShift Container Platform の FIPS 暗号化のサポート を参照してください。
- コントローラーレプリカへの Pod アンチアフィニティールールの追加
-
OpenShift Pipelines は、Tekton Chains コントローラーを除くコントローラーのレプリカに
preferredDuringSchedulingIgnoredDuringExecution
Pod アンチアフィニティールールを追加して適用します。高可用性 (HA) セットアップでは、このルールはレプリカを同じノードにスケジュールするのではなく、異なるノードに分散し、回復力、負荷分散、および可用性を向上させます。追加の設定は必要ありません。
-
OpenShift Pipelines は、Tekton Chains コントローラーを除くコントローラーのレプリカに
- コンテナービルドのセキュリティー強化のための新しい buildah-ns タスク
-
OpenShift Pipelines は
buildah-ns
タスクを追加します。これにより、ユーザー namespace の分離によるコンテナービルドのセキュリティーが強化され、既存のbuildah
タスクとの互換性が維持されます。詳細は、「関連情報」を参照してください。
-
OpenShift Pipelines は
- デフォルトのデプロイメントでの readOnlyRootFilesystem の有効化
-
OpenShift Pipelines、Tekton Results、Tekton Chains、Manual Approval Gate デプロイメント内のコンテナーでは、
readOnlyRootFilesystem
設定がデフォルトで有効になっており、セキュリティーとコンプライアンスが向上しています。
-
OpenShift Pipelines、Tekton Results、Tekton Chains、Manual Approval Gate デプロイメント内のコンテナーでは、
- Web コンソールでのタスクのわかりやすい名前の表示
-
OpenShift Container Platform Web コンソールのタスクでは、技術的なタスク名の代わりに
displayName
プロパティーが使用されるようになり、読みやすさが向上し、Red Hat OpenShift Pipelines ユーザーインターフェイス内でタスクを検索しやすくなりました。
-
OpenShift Container Platform Web コンソールのタスクでは、技術的なタスク名の代わりに
- シングルノード OpenShift 上の OpenShift Pipelines
シングルノード OpenShift 上の OpenShift Pipelines を実行するためのテクニカルプレビューサポートが利用可能になりました。このサポートは、実稼働環境へのデプロイメントを目的としたものではありません。SNO 上の OpenShift Pipelines には、シングルノードクラスター固有の制約 (制限されたスケーラビリティー、冗長性なし、制約された同時実行性) 以外に追加の制限はありません。libvirt API 上のクラスターの場合、ハードウェアの最小要件は次のとおりです。
- 仮想 CPU 12 個
- 64 GB RAM
- 240 GB のディスク容量
シングルノード OpenShift 上の OpenShift Pipelines は、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
Operator
- RBAC と CA バンドル config map 作成の独立した制御
- この更新により、OpenShift Pipelines Operator がクラスター内にロールベースアクセス制御 (RBAC) リソースと信頼済み認証局 (CA) バンドル config map を作成するかどうかを個別に制御できるようになりました。この機能拡張により、環境に合わせて柔軟に対応できるようになり、リソースの重複を回避できます。デフォルトでは、既存の動作を維持するために両方のオプションが有効になっています。詳細は、「関連情報」を参照してください。
Pruner
- TektonConfig CR で設定可能なイベントベースのプルーナー
-
イベントベースの
tektonpruner
をTektonConfig
カスタムリソース (CR) で直接有効化および設定できます。この更新では、プルーナー固有の新しいメトリクスによる可観測性の機能拡張も追加されています。
-
イベントベースの
イベントベースのプルーナーはテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
Tekton Triggers
- Operator による Tekton Triggers のオプションのインストール
Operator を使用して OpenShift Pipelines をデプロイする場合、Tekton Triggers をインストールしないことを選択できます。この更新により、コンポーネントのインストールをより細かく制御でき、トリガーが個別に管理される環境がサポートされます。デフォルト値は
false
です。以下はインストールが無効になっているTektonCofig
CR の例です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Tekton Results
- tekton-results-watcher でライブコレクションを無効にする新しいフラグ
Tekton Results は、
TektonConfig
CRD で--disable_storing_incomplete_runs=true
フラグを設定することで、tekton-results-watcher
コントローラーが実行のライブコレクションを無効にするための新しいフラグをサポートします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow true
に設定すると、実行は完了するまで保存されないため、システムパフォーマンスが向上します。false
に設定すると、実行は作成時に保存され、変更が発生するたびに継続的にアップサートされます。これが現在のデフォルトの動作です。今後のリリースでは、true
設定がデフォルトになる予定です。
- すでに保存されている PipelineRuns の処理をスキップするための最適化
-
Tekton Results は、すでに保存されている
PipelineRuns
の処理をスキップし、パフォーマンスを向上させ、API サーバー呼び出しを削減します。この最適化は、全体的な効率性と応答性を向上させ、サーバー負荷の軽減とリソースの節約を目指します。
-
Tekton Results は、すでに保存されている
Pipelines as Code
- 受信 Webhook の JSON ボディーのサポート
Pipelines as Code は、URL クエリーパラメーターとの互換性を維持しながら、JSON POST ボディーで受信 Webhook パラメーターを渡すことをサポートします。
curl -H "Content-Type: application/json" -X POST \ "https://control.pac.url/incoming" -d '{"repository":"repo","branch":"main", \ "pipelinerun":"target-pipelinerun","secret":"very-secure-shared-secret"}'
$ curl -H "Content-Type: application/json" -X POST \ "https://control.pac.url/incoming" -d '{"repository":"repo","branch":"main", \ "pipelinerun":"target-pipelinerun","secret":"very-secure-shared-secret"}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 機密情報にリクエストボディーを使用すると、ログでの露出が減り、セキュリティーが向上します。詳細は、推奨される (POST JSON ボディー) メソッド を参照してください。
- GitHub API 呼び出しの詳細なロギング
- Pipelines as Code は、GitHub API 呼び出しの詳細なロギングをサポートし、API のインタラクション、期間、レート制限に関する分析情報を提供します。コントローラーのログレベルを 'debug' に設定すると、複雑な問題をより効率的にトラブルシューティングできます。この機能拡張では、GitHub 呼び出しを計測するためにコードをリファクタリングしており、プロバイダー内におけるすべての種類の GitHub API 呼び出しに影響します。詳細は、Debugging API interactions を参照してください。
- 新しい auto-configure-repo-repository-template オプション
-
Pipelines as Code に、
auto-configure-new-github-repo
機能設定の新しいオプションとしてauto-configure-repo-repository-template
設定が追加されました。これにより、リポジトリーの作成が単一の namespace に集約され、複数のリポジトリーを持つユーザーの管理が効率化されます。詳細は、「関連情報」を参照してください。
-
Pipelines as Code に、
- リモート Pipeline 定義における相対タスク参照のサポート
-
相対パスを使用して、リモート
Pipeline
定義内からタスクを参照できます。Pipelines as Code リゾルバーは、リモートPipelineSpec
定義の場所に基づいて、タスクの完全な URL を自動的にビルドします。この機能拡張により、パイプラインの構成と移植性が向上し、特にタグ付きのリリースやブランチを使用する場合に有効です。詳細は、Overriding tasks from a remote pipeline on a PipelineRun を参照してください。
-
相対パスを使用して、リモート
リモートパイプラインからのタスクのオーバーライドは、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
- プッシュイベント用の新しい動的 pull_request_number 変数
-
プッシュイベントをトリガーするプルリクエストは、新しい Pipelines as Code の動的
pull_request_number
変数に自動的に入力されるため、プッシュイベントに関連付けられた特定のプルリクエストを明確に参照でき、トレーサビリティーが向上します。詳細は、「関連情報」を参照してください。
-
プッシュイベントをトリガーするプルリクエストは、新しい Pipelines as Code の動的
1.2.2. 互換性を損なう変更点 リンクのコピーリンクがクリップボードにコピーされました!
-
Tekton Hub のパブリックインスタンス (
hub.tekton.dev
) は非推奨になり、今後のリリースで削除される予定です。詳細は、「関連情報」を参照してください。 -
Git リゾルバーは、
TEKTON_HUB_API
をパブリックハブに設定しなくなりました。セルフホストハブを指す場合は、環境変数を設定する必要があります。詳細は、Resolvers を参照してください。 OpenShift Pipelines は、
pipelinerun_count
やrunning_taskruns_count
などの非推奨のメトリクスを出力しなくなりました。pipelinerun_total
やrunning_pipelineruns
などの新しいメトリクスを使用してダッシュボードとアラートを更新する必要があります。Expand 非推奨 New pipelinerun_count
pipelinerun_total
running_pipelineruns_count
running_pipelineruns
running_pipelineruns_waiting_on_pipeline_resolution_count
running_pipelineruns_waiting_on_pipeline_resolution
running_pipelineruns_waiting_on_task_resolution_count
running_pipelineruns_waiting_on_task_resolution
taskrun_count
taskrun_total
running_taskruns_count
running_taskruns
running_taskruns_throttled_by_quota_count
running_taskruns_throttled_by_quota
running_taskruns_throttled_by_node_count
running_taskruns_throttled_by_node
Pipelines as Code
-
Pipelines as Code は、パイプラインとタスクの解決のため、非推奨になった Tekton Hub の使用から Artifact Hub の使用に自動的に移行します。アップグレード後、
0.2
などの短いバージョンピンを使用する一部のタスク参照が正しく解決されなくなります。タスクを正しく解決するには、これらのピンを0.2.0
などの完全なセマンティックバージョン形式に更新する必要があります。 1.20 にアップグレードした後も、
hub_catalog_name
変数の値はtekton
に設定されたままになります。その結果、システムは Artifact Hub 上の正しいカタログからgit-clone
タスクを取得しません。1.20 にアップグレードした後、次のコマンドを実行して、Pipelines as Code config map から変数を削除する必要があります。oc patch configmap pipelines-as-code -n openshift-pipelines --type=json -p='[{"op": "remove", "path": "/data/hub-catalog-name"}]'
$ oc patch configmap pipelines-as-code -n openshift-pipelines --type=json -p='[{"op": "remove", "path": "/data/hub-catalog-name"}]'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2.3. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
Pruner
-
Red Hat OpenShift Pipelines 1.19 から 1.20 にアップグレードすると、
tekton-pruner-default-spec
config map の値がデフォルト値でオーバーライドされます。緩和策として、アップグレード前にtekton-pruner-default-spec
config map のコピーを保持し、アップグレード後にそれをTektonConfig
フィールドに適用します。この問題はアップグレードパスにのみ影響し、新規インストールでは発生しません。
CLI
-
OpenShift namespace で
opc pr logs
を使用すると、管理者ユーザーと非管理者ユーザーの両方でFailed to list objects from openshift namespace
エラーが繰り返し発生して失敗する可能性があります。
Tekton Cache
-
IBM P 環境では、
cache-fetch
ステップがfailed to change ownership: operation not permitted
エラーで失敗する場合があります。これは通常、基盤となるストレージのファイルシステム権限制限が原因で発生します。
Tekton Chains
-
Pod アンチアフィニティールールは、
tekton-chains-controller
レプリカには適用されません。
Tekton Hub
-
Tekton Hub からダウンロードされた
git-clone
タスクには、バージョン0.10
ではなく0.9
が表示されます。これは、システムがセマンティックバージョン管理を使用するのではなく、バージョン文字列を辞書順に並べ替えるために発生します。
1.2.4. 修正された問題 リンクのコピーリンクがクリップボードにコピーされました!
Pipelines
-
この更新前は、OpenShift Pipelines コントローラーは、Helm を使用して
PipelineRuns
およびTaskRuns
をデプロイする際に、managed-by: tekton-pipelines
ラベルを適用していませんでした。さらに、コントローラーによって作成された Pod では、app.kubernetes.io/managed-by
ラベルがTaskRun
またはPipelineRun
によって設定された値によってオーバーライドされる可能性があります。この更新により、コントローラーは常に正しいラベルを適用し、Pod はデフォルトのapp.kubernetes.io/managed-by
値を使用します。 -
この更新前は、
PipelineRun
の実際のステータスがCanceled
であった場合でも、OpenShift Container Platform コンソールは、失敗したfinally
タスクを持つPipelineRun
オブジェクトに対して 'Cancelling' ステータスを表示し、混乱を引き起こしていました。この更新により、問題が修正されました。 -
この更新前は、Pipeline Console プラグインの問題により、
PipelineRun
イベントタブにイベントが表示されませんでした。その結果、イベントをリアルタイムで監視することができませんでした。この更新により、問題が修正されました。 - この更新前は、パイプラインビルダーは Artifact Hub から限られた数のタスクのみを取得していたため、一部のタスクが利用できませんでした。この結果、パイプラインの作成が不完全になりました。この更新により、インターフェイスは検索時に Artifact Hub からタスクの完全なリストを取得し、パイプラインビルダーで利用可能なすべてのタスクを表示します。
-
この更新前は、git クローン中に Konflux 固有の
fbc-fips-check-oci-ta
タスクを実行すると、一時的にリソースが使用できなくなり、git リゾルバーが停止して、ResolutionRequests
の解決が妨げられていました。その結果、ビルドが失敗し、cannot fork() for remote-https: Resource temporarily unavailable
というエラーメッセージが表示されました。この更新により、問題が修正されました。 この更新前は、
TaskRun
およびCustomRun
の作成が一時的な mutating-webhook のタイムアウトですぐに失敗し、ビジー状態のクラスターで不安定さが発生する可能性がありました。この更新により、システムは指数バックオフを適用します。これは、wait-exponential-backoff
config map で設定可能で、enable-wait-exponential-backoff
設定によって制御されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
この更新前は、コントローラーは固定のスレッド数を使用しており、同時実行性が制限されていました。この更新により、
THREADS_PER_CONTROLLER
環境変数を設定することでthreads-per-controller
をオーバーライドできるようになり、コントローラーの同時実行性をより細かく制御できるようになります。 -
この更新前は、
TaskRunSpec
CR のpodTemplate
フィールドはパラメーター置換をサポートしていなかったため、マトリックスとマルチアーキテクチャーパターンが制限されていました。この更新により、コントローラーはすべてのTaskRuns
およびTaskRunSpecs
のpodTemplate
フィールドのパラメーターを置き換えます。 -
この更新前は、
pipeline
v1beta1 のonError
ブロックは、変数をサポートしていませんでした。この更新により、コントローラーはonError
変数を解決し、エラー処理の柔軟性が向上します。 - この更新前は、git リゾルバーシェルアウトが環境変数を継承できない場合があり、環境駆動型の認証または設定が壊れていました。この更新により、リゾルバーは Pod 環境をすべての git サブプロセスに正しく渡すようになります。
-
この更新前は、git リゾルバーのデプロイメントにより、zombie git プロセスが実行されたままになり、リソースを消費する可能性がありました。この更新により、リゾルバーは
tini
ベースのイメージとエントリーポイントを使用して、サブプロセスをアクティブにクリーンアップします。 -
この更新前は、OpenShift Pipelines をアップグレードすると、仕様のドリフトにより、完了した
PipelineRuns
またはTaskRuns
でファイナライザーなどのメタデータを更新する際にエラーが発生する可能性がありました。この更新により、問題が修正されました。 - この更新前は、OpenShift git リゾルバーは信頼済みの CA config map をコンポーネントシステムの CA ストアにマウントしなかったため、証明書検証の問題が発生する可能性がありました。この更新により、config map が正しくマウントされ、git 操作がセキュアに実行されるようになります。
-
この更新前は、リポジトリーに
origin
リモートが存在しない場合、git-clone
タスクはNo such remote 'origin'
エラーメッセージで失敗していました。この更新により、タスクはリポジトリー設定にorigin
リモートを自動的に追加し、正しいセットアップと正常なクローン作成が確保されます。 - この更新前は、リソースクォータを超えると Pipelines as Code はすぐに失敗し、実行がキャンセルされ、ユーザーのワークフローが中断されていました。この更新により、リソースが利用可能になった場合にコントローラーが再試行して自動的に再実行されるため、不要なキャンセルが削減され、パイプラインの信頼性が向上します。
-
この更新前は、
buildah
タスクのBUILD_ARGS
パラメーターにデフォルト値[""]
が設定されている場合、パイプラインビルダー UI はパイプラインを保存できませんでした。タスクは正常に実行できたにもかかわらず、検証では配列内の空の文字列が誤って拒否されました。この更新により、問題が修正され、デフォルトのBUILD_ARGS
パラメーターを持つパイプラインが正しく保存されるようになりました。
Pipelines as Code
- この更新前は、Pipelines as Code の構造化ログに、トリガーとなった Webhook リクエストからの詳細なソースリポジトリー情報が含まれていませんでした。この更新により、Pipelines as Code のログに完全なソースリポジトリーの詳細が含まれるようになり、オペレーターはユーザーから報告された問題を特定しやすくなります。
-
この更新前は、Pipelines as Code
PipelineRun
内の無効な Common Expression Language (CEL) 式が警告なしで失敗していました。この更新により、Pipelines as Code はプルリクエストにエラーコメントを投稿し、トラブルシューティングが容易になります。 この更新前は、Pipelines as Code
PipelineRun
が GitHub Webhook 統合のすべてのプルリクエストにステータスコメントを投稿し、不要なノイズを発生させていました。この更新では、次の設定を行うことで、Repository
CR 内のステータスコメントを無効化できます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
この更新前は、
PipelineRun starting
コメントに OpenShift Container Platform コンソールへのリンクが含まれていなかったため、アクセスが不便でした。この更新により、コメントにはPipelineRun
への直接リンクが含まれるようになりました。 - この更新前は、Bitbucket プッシュイベント内の空のコミットが Pipelines as Code によって処理され、コントローラーがクラッシュしていました。この更新により、コントローラーはペイロード内の空のコミットを無視し、クラッシュを防止します。
-
この更新前は、Pipelines as Code は、外部コントローラーによって変更され、
started
とマークされたPipelineRun
オブジェクトに誤ってアノテーションを付けていました。この更新により、PipelineRun
はステータスの変更について適切なアノテーションを受け取るようになり、正確な追跡が可能になります。 -
この更新前は、権限のないユーザーがプルリクエスト (PR) を開き、ターゲットブランチに
.tekton
ディレクトリーが含まれていない場合、自動マージがブロックされていました。リポジトリー管理者が/ok-to-test
GitOps コメントを使用して CI 実行を承認した後でも、Pipelines as Code によって作成されたペンディング状態のチェックが無期限に残り続けていました。この更新により、承認後にチェックが正しく更新され、自動マージが期待どおりに実行されるようになります。
CLI
-
この更新前は、すでに削除された Pod から Pod ログを読み取る
opc
CLI によってパニックが発生し、アプリケーションがクラッシュする可能性がありました。この更新により、削除された Pod のシナリオが適切に処理され、ログの読み取り時におけるクラッシュの発生を防ぎます。 -
この更新前は、
opc
CLIPipelineRunPending
ステータスが間違った色で表示され、他のステータスと区別することが困難でした。この更新により、Pending ステータスの色が正しくなり、視覚的な明瞭性が向上しました。 -
この更新前は、
opc
CLI を使用してログを追跡するとデッドロックがトリガーされ、アプリケーションがハングする可能性がありました。この更新により、ログ追跡機能におけるデッドロックシナリオが修正され、信頼性の高いログストリーミングが確保されます。 -
この更新前は、さまざまなタスクやステップからの
opc
CLI ログ行を簡単に区別できず、デバッグが複雑になっていました。この更新により、ログ行にはデフォルトでログソース、タスク、およびステップ名を示す接頭辞が含まれるようになり、読みやすさとデバッグエクスペリエンスが向上します。 -
この更新前は、OPC Results で実行中の
PipelineRun
またはTaskRun
のログをクエリーすると、不明瞭なエラーメッセージが表示されていました。この更新により、実行中はログを取得できないことがメッセージに明確に示されるようになりました。
Tekton Triggers
-
この更新前は、複数のトリガーと拡張機能を持つ
TriggerGroup
を使用すると、データの競合とコントローラーパニックが発生していました。この更新により、コントローラーは複数のトリガーをエラーなく処理できるようになりました。
1.2.5. 非推奨の機能 リンクのコピーリンクがクリップボードにコピーされました!
-
Tekton Results 保持エージェントの
maxRetention
パラメーターは非推奨になりました。defaultRetention
を使用してください。 -
chain
コマンドは非推奨であり、今後のリリースでは削除される予定です。