1.3. Red Hat OpenShift Pipelines 一般提供 1.12 のリリースノート
今回の更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.12 が OpenShift Container Platform 4.12 以降のバージョンで利用できるようになりました。
1.3.1. 新機能
以下では、修正および安定性の面での改善点に加え、OpenShift Pipelines 1.12 の主な新機能について説明します。
Red Hat OpenShift Pipelines Operator 1.12 にアップグレードする前に、少なくとも OpenShift Container Platform 4.12.19 または 4.13.1 バージョンがクラスターにインストールされていることを確認してください。
1.3.1.1. Pipelines
- 今回の更新により、Web コンソールに Pipelines 実行とタスク実行の新しいゲージメトリクスが含まれます。このメトリクスは、namespace で定義されたリソースクォータポリシー、または基礎となるノードのリソース制約が理由で、基礎となる Pod が OpenShift Container Platform によってスロットルされているかどうかを示します。
-
今回の更新により、新しい
set-security-context
機能フラグがデフォルトでtrue
に設定され、制限された Pod セキュリティーアドミッションポリシーが割り当てられた namespace でタスク実行とパイプライン実行を可能にします。 -
今回の更新により、
enable-api-fields
フラグはデフォルトでbeta
に設定されます。コード内でbeta
としてマークされているすべての機能は、追加で変更を加えることなく使用できます。 -
今回の更新により、
results.tekton.dev/*
andchains.tekton.dev/*
の予約アノテーションは、パイプライン実行から作成されるタスク実行に渡されなくなります。 - 今回の更新の前は、CSI ボリュームと投影されたボリュームはデフォルトでは有効になっていませんでした。今回の更新により、設定フィールドを変更せずに、Pipelines で CSI ボリュームと投影ボリュームを使用できるようになります。
- 今回の更新により、分離ワークスペース機能がデフォルトで有効になります。この機能を使用すると、タスク実行全体でワークスペースを共有せずに、指定したステップおよびサイドカーとワークスペースを共有できます。
1.3.1.2. 演算子
- 今回の更新により、OpenShift Pipelines がパイプライン実行およびタスク実行用に作成する Pod のデフォルトの security context constraint (SCC) を設定できるようになりました。異なる namespace に対して個別に SCC を設定したり、任意の namespace に対して設定できる最大 (最も制限の少ない) SCC を設定したりすることもできます。
-
今回の更新により、TektonConfig 仕様の各コンポーネントの下に新しい
options:
の見出しが追加されました。この見出しの下のパラメーターを使用して、さまざまなコンポーネントの設定を制御できます。特に、platforms.openshift.pipelinesAsCode.options.configMaps.pac-config-logging.data
仕様のパラメーターを使用して、Pipelines as Code のコンポーネントのロギングレベルを設定できます。 -
今回の更新により、新しい
spec.pipeline.performance.replicas
パラメーターを使用して、OpenShift Pipelines コントローラー Pod 用に作成されるレプリカの数を設定できるようになりました。これまでに、デプロイメント内のレプリカ数を手動で設定している場合は、この設定を使用してレプリカ数を制御する必要があります。 -
今回の更新により、Operator を使用すると、保存された API バージョンが、OpenShift Pipelines のデプロイメント全体で同じバージョンに確保できるようになります。OpenShift Pipelines 1.12 に保存されている API バージョンは
v1
です。 -
今回の更新により、シークレットを使用して S3 バケットストレージを設定し、Tekton Results ログ情報を保存できるようになりました。S3 バケットストレージを設定する場合、
TektonResult
カスタムリソース (CR) の新しいSecret_name
仕様を使用して、S3 ストレージ認証情報を含むシークレットを提供する必要があります。
1.3.1.3. Tekton Results
Tekton Results はテクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
- 今回の更新により、外部 PostgreSQL サーバーにデータを保存するように Tekton Results を設定できるようになります。
-
今回の更新により、Google Cloud Storage (GCS) を使用して Tekton Results ログ情報を保存できるようになります。GCS ストレージ認証情報を使用してシークレットを指定し、
TektonResult
仕様のプロパティーでシークレット名、秘密鍵、バケット名を指定できます。認証に Workload Identity Federation を使用することもできます。 -
今回の更新により、OpenShift Pipelines で認証されたサービスアカウントはすべて
TektonResult
CR にアクセスできるようになります。 - 今回の更新により、Tekton Results には、admin、edit、および view のロールが割り当てられたサービスアカウントのクラスターロールの集約が含まれます。これらのサービスアカウントが Tekton Results API を使用して結果とレコードにアクセスするために、クラスターロールバインドは必要なくなりました。
-
この更新により、
TektonConfig
CR のprune-per-resource
ブール型フィールドを設定することで、各PipelineRun
またはTaskRun
リソースのプルーニングを設定できるようになりました。また、operator.tekton.dev/prune.prune-per-resource=true
アノテーションをネームスペースに追加することで、ネームスペース内の各PipelineRun
またはTaskRun
リソースのプルーニングを設定することもできます。 - 今回の更新により、OpenShift Container Platform クラスター全体のプロキシーに変更があった場合、Operator Lifecycle Manager (OLM) は Red Hat OpenShift Pipelines Operator を再作成します。
-
この更新により、
TektonConfig
CR でconfig.pruner.disabled
フィールドの値をtrue
に設定することで、プルーナー機能を無効にすることができます。
1.3.1.4. トリガー
-
今回の更新により、
Trigger
CR で readiness プローブと liveness プローブを設定できるようになりました。プローブの失敗しきい値を設定することもできます。デフォルト値は 3 です。 -
今回の更新により、OpenShift Pipelines トリガーで、Cloud Events リクエストに対するレスポンスを作成するときに
Type
とSubject
の値が追加されます。
1.3.1.5. CLI
-
今回の更新により、
tkn Pipeline logs
コマンドは、リゾルバーを使用して参照されるパイプラインまたはタスクのログを表示します。 -
今回の更新により、
tkn Bundle Push
コマンドを入力するときに--annotate
フラグを使用して追加のアノテーションを指定できるようになりました。
1.3.1.6. Pipelines as Code
- 今回の更新により、Pipelines as Code パイプラインの実行に、複数の Artifact Hub または Tekton Hub インスタンス、および同じハブインスタンス内の異なるカタログからフェッチされたリモートタスクを含めることができるようになりました。
-
今回の更新により、
TektonConfig
CR のplatforms.openshift.pipelinesAsCode.options.configMaps.pac-config-logging.data
仕様のパラメーターを使用して、Pipelines as Code コンポーネントのロギングレベルを設定できるようになりました。 -
今回の更新により、特定のアクションをチームのメンバーにのみ許可し、他のユーザーがアクションを要求した場合はそのアクションを拒否するポリシーを設定できるようになります。現在、
pull_request
アクションとok_to_test
アクションは、そのようなポリシーの設定をサポートしています。 -
今回の更新により、受信 Webhook で任意のパラメーターを JSON ペイロードとして渡すことができるようになりました。OpenShift Pipelines は、これらのパラメーターをパイプライン実行に渡します。セキュリティー層を追加するには、
Repository
CR で許可されたパラメーターを明示的に定義する必要があります。 - 今回の更新により、Pipelines as Code 内の多数のリモートアノテーションと大規模なパイプライン実行のマッチングが最適化されます。Pipelines as Code は、一致したパイプライン実行のリモートタスクのみをフェッチします。
今回の更新により、パイプライン実行テンプレートで
source_url
変数を使用して、プルリクエストやプッシュリクエストなどのイベントをトリガーするフォークしたリポジトリーに関する情報を取得します。使用例
apiVersion: tekton.dev/v1beta1 kind: PipelineRun # ... spec: params: - name: source_url value: "{{ source_url }}" pipelineSpec: params: - name: source_url # ...
-
今回の更新により、承認されたユーザーが、承認されていないユーザーからのプルリクエストに対してパイプライン実行をトリガーするために
ok-to-test
コメントを提供し、作成者がブランチにさらに変更を加えた場合、Pipelines as Code によってパイプラインがトリガーされます。承認されたユーザーが新しいok-to-test
コメントを提供するまでパイプラインのトリガーを無効にするには、TektonConfig
CR のPipelinesAsCode.settings.remember-ok-to-test
仕様を false に設定します。 - 今回の更新により、GitHub のステータス確認ページで、すべてのタスクのステータスを示すテーブルに各タスクの表示名が含まれるようになりました。
-
今回の更新により、GitLab で実行されるパイプラインで
tags push
イベントを設定できるようになりました。 -
今回の更新により、Pipelines の
target_url
とsource_url
フィールドを Code Common Expression Language (CEL) 式フィルタリングアノテーションとして使用して、特定のターゲットまたはソースのリクエストをフィルタリングできるようになりました。 -
今回の更新により、トークンを使用してリモート GitHub URL を取得するように設定する場合に、スラッシュを含むブランチ名を追加できるようになりました。この
https://github.com/organization/repository/blob/feature%2Fmainbranch/path/file
の URL 例のように、パイプラインをコードとして適切に解析するには、ブランチ名内のスラッシュを%2F
としてエンコードする必要があります。この URL の例では、ブランチ名はfeature/mainbranch
で、フェッチするファイルの名前は/path/file
です。 -
今回の更新により、
tkn pacsolve
コマンドで--v1beta1
フラグを使用できるようになりました。パイプライン実行がv1beta1
API バージョンスキーマで生成される場合は、このフラグを使用します。
1.3.2. 互換性を失わせる変更点
-
今回の更新により、
openshift-operators
namespace を OpenShift Pipelines をインストールするためのターゲット namespace として使用できなくなります。openshift-operators
名前空間をターゲット namespace として使用した場合は、Red Hat OpenShift Pipelines Operator バージョン 1.12 にアップグレードする前にターゲット namespace を変更してください。そうしないと、アップグレード後に、targetNamespace
設定を除くTektonConfig
CR の設定を変更できなくなります。 -
今回の更新により、新しい
spec.pipeline.performance.replicas
パラメーターは、パイプライン実行またはタスク実行の Pod ごとに作成されるレプリカの数を制御します。これまでにデプロイメントのレプリカ数を手動で設定した場合は、OpenShift Pipelines バージョン 1.12 にアップグレードした後に、このパラメーターを使用してレプリカ数を制御する必要があります。 今回の更新により、次のパラメーターは
TektonResult
CR でサポートされなくなりました。-
db_user
-
db_password
-
s3_bucket_name
-
s3_endpoint
-
s3_hostname_immutable
-
s3_region
-
s3_access_key_id
-
s3_secret_access_key
s3_multi_part_size
これらのパラメーターはシークレットを使用して指定する必要があります。OpenShift Pipelines バージョン 1.12 にアップグレードした後、
TektonResult
CR を削除して再作成し、これらのパラメーターを提供する必要があります。
-
-
今回の更新により、
tkn pac bootstrap
コマンドは--github-hostname
フラグをサポートします。--github-api-url
フラグは非推奨になりました。
1.3.3. 既知の問題
-
namespace に制限範囲が設定されているが、Pod の一時ストレージが制限範囲に設定されていない場合、Pod はエラーの段階になり、
Pod ephemeral local storage usage exceeds the total limit of containers 0
というメッセージが表示されることがあります。 -
TektonResult
CR の設定を変更する場合は、既存のTektonResult
CR を削除して、新しい CR を作成する必要があります。既存のTektonResult
CR を変更した場合、その変更は Tekton Results の既存のデプロイメントには適用されません。たとえば、接続を内部データベースサーバーから外部データベースサーバーに変更した場合、またはその逆に変更した場合、API は古いデータベースに接続されたままになります。
1.3.4. 修正された問題
- 今回の更新が行われる前は、Pipelines as Code はブランチベース名のみに基づいてパイプライン実行を行い、同じベース名にもかかわらず、異なるブランチ名でパイプライン実行を誤ってトリガーする可能性がありました。今回の更新により、Pipelines as Code はパイプライン実行のベース名と、正確なブランチ名の両方をチェックします。
- 今回の更新以前は、受信 Webhook イベントによって、他のイベント用に設定された複数のパイプライン実行がトリガーされる可能性がありました。今回の更新により、受信 Webhook イベントは、Webhook イベント用に設定されたパイプライン実行のみをトリガーします。
-
今回の更新により、パイプライン実行の
ownerRef
が削除された場合に備えて、パイプライン実行をクリーンアップするときにpac-gitauth
シークレットが明示的に削除されるようになりました。 -
今回の更新より前は、パイプライン実行内のタスクが理由を含むメッセージを表示して失敗すると、パイプライン実行全体が
PipelineValidationFailed
という理由で失敗していました。今回の更新により、パイプラインの実行が失敗し、失敗したタスクと同じ理由のメッセージが表示されます。 -
今回の更新前は、
disable-ha
フラグの値が Pipelines コントローラーに正しく渡されず、高可用性 (HA) 機能が有効になることはありませんでした。今回の更新により、TektonConfig
CR のdisable-ha
フラグの値をfalse
に設定することで HA 機能を有効化できます。 -
今回の更新が行われる前は、config map データに記載されているイメージをコピーしようとすると、
skopeo-copy
クラスタータスクに失敗していました。今回の更新により、skopeo-copy
クラスタータスクが適切に完了します。 -
今回の更新により、
tkn pac generated – language=java
コマンドによって自動的に生成されたパイプライン実行に、正しいアノテーションとパラメーター名が付けられるようになりました。 -
今回の更新が行われる前は、管理権限を持つユーザーのみが
tkn pac create repository
コマンドを正常に実行できました。今回の更新により、許可されたユーザーはすべてtkn pac create repository
コマンドを実行できるようになります。 -
今回の更新より前は、特定のパイプラインを指定する
/test <run-name>
および/retest <run-name>
ユーザーコメントによって、期待どおりにパイプラインの実行がトリガーされませんでした。今回の更新では、これらのコメントによりパイプライン実行が正常にトリガーされます。 -
今回の更新より前は、
Name
フィールドではなく、generateName
フィールドが含まれる.tekton
フォルダー内で複数のパイプライン実行があった場合、パイプライン実行は失敗していました。今回の更新でこの問題が修正されています。 - 今回の更新以前は、GitLab を使用する場合の Pipelines as Code では、ラベルの追加やステータスの設定など、マージリクエスト内の任意のイベントによってパイプラインの実行がトリガーされていました。今回の更新により、パイプラインの実行は、オープン、再オープン、またはプッシュイベントがある場合にのみトリガーされます。チェックのステータスを含むコメントがマージリクエストに投稿されるようになりました。
-
今回の更新より前は、パイプライン実行が承認を待機している間、GitHub および Gitea プルリクエストのチェックセクションにチェックのステータスが
skipped
と表示されることがありました。今回の更新により、正しいpending approval
のステータスが表示されるようになりました。 -
今回の更新以前は、バンドルリゾルバーはパイプラインを取得しようとするとタイプを
Task
に設定することがあり、取得エラーが発生することがありました。今回の更新により、リゾルバーは正しいタイプを使用してパイプラインを取得するようになりました。 - 今回の更新により、Tekton Results をクエリーする際の共通表現言語 (CEL) の NOT 演算子の処理で発生していたエラーが修正されました。
-
今回の更新により、レコードの
LIST
操作が要求され、指定された結果が-
であった場合に Tekton Results API で生成される404
エラー応答が修正されました。 -
今回の更新前は、
EventListener
オブジェクトで、status.address.url
フィールドは常にデフォルトのポートに設定されていました。今回の更新により、status.address.url
フィールドは、spec.resources.kubernetesresource.serviceport
パラメーターで指定されたポートと一致するように設定されます。 - 今回の更新前は、GitHub API がページネーションされたレスポンスを提供した場合に、Pipelines as Code はレスポンスの最初のページのみを使用していました。今回の更新により、ページネーションされたレスポンスがすべてが完全に処理されます。
- 今回の更新が行われる前は、KMS Hashicorp Vault のホストアドレスが正しく設定されていない場合、または Tekton Chains が KMS Hashicorp Vault に接続できない場合、Tekton Chains コントローラーがクラッシュしていました。今回の更新により、Tekton Chains は接続エラーをログに記録し、クラッシュしなくなります。
1.3.5. Red Hat OpenShift Pipelines 一般提供 1.12.1 のリリースノート
今回の更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.12.1 が OpenShift Container Platform 4.12 以降のバージョンで利用できるようになりました。
1.3.5.1. 修正された問題
-
この更新前は、カスタムコンソールに出力するようにカスタムコンソールドライバーを使用して Pipelines as Code を設定した場合、特定のケースで Pipelines as Code コントローラーがクラッシュしていました。変更をプルリクエストにプッシュした後、このプルリクエストの CI ステータスチェックが
waiting for status to be reported
になり、関連するパイプラインの実行が完了しない可能性があります。この更新により、Pipelines as Code コントローラーは正常に動作するようになりました。変更をプルリクエストにプッシュすると、関連するパイプラインの実行が正常に完了し、プルリクエストの CI ステータスチェックが更新されます。 -
Pipelines as Code を使用する場合、特定のユーザーを含まないアクセスポリシーを
Repository
カスタムリソース (CR) に作成し、そのユーザーを Git リポジトリーのOWNER
ファイルに追加すると、そのユーザーは Pipelines as Code CI プロセスに対する権利を持ちませんでした。たとえば、ユーザーが Git リポジトリーにプルリクエストを作成したとします。CI プロセスは、このプルリクエストに対して自動的には実行されません。この更新により、Repository
CR のアクセスポリシーには含まれていないが、OWNER
ファイルには含まれているユーザーが、リポジトリーの CI プロセスを実行できるようになりました。 - この更新により、HTTP/2.0 プロトコルは Webhook でサポートされなくなりました。Red Hat OpenShift Pipelines へのすべての Webhook 呼び出しでは、HTTP/1.1 プロトコルを使用する必要があります。
1.3.6. Red Hat OpenShift Pipelines 一般提供 1.12.2 のリリースノート
今回の更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.12.2 が OpenShift Container Platform 4.12 以降のバージョンで利用できるようになりました。
1.3.6.1. 修正された問題
-
この更新前は、
max-keep-runs
パラメーターを超えると、最新のパイプライン実行に対して生成された Git シークレットが削除されました。この更新により、Git シークレットは最新のパイプライン実行時に削除されなくなりました。 - この更新により、S2I クラスタータスクは一般提供のコンテナーイメージを使用します。