1.4. Red Hat OpenShift Pipelines 一般提供 1.14 のリリースノート
今回の更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.14 が OpenShift Container Platform 4.12 以降のバージョンで利用できるようになりました。
1.4.1. 新機能
以下では、修正および安定性の面での改善点に加え、OpenShift Pipelines 1.14 の主な新機能を説明します。
1.4.1.1. Pipelines
-
今回の更新により、タスクまたはパイプラインのパラメーター、または前のタスクの結果を使用して、バインドのリソース名をワークスペースに指定できるようになりました (例:
name: $(params.name)-configmap)
。 -
今回の更新により、OpenShift Pipelines は、パイプライン内のビルドプロセスで Red Hat Enterprise Linux の既存のエンタイトルメントを使用できるようになります。組み込み
buildah
クラスタータスクでこれらのエンタイトルメントを使用できるようになりました。 -
今回の更新により、パイプライン実行またはタスク実行で
pipeline
サービスアカウントが使用される場合、パイプラインまたはタスクで CSI ボリュームタイプを使用できるようになります。 -
今回の更新により、
StepAction
カスタムリソース (CR) を使用して、再利用可能なスクリプトアクションを定義して任意数のタスクから呼び出すことができるようになりました。この機能を使用するには、TektonConfig
CR のpipeline.options.configMaps.feature-flags.data.enable-step-actions
仕様をtrue
に設定する必要があります。 - 今回の更新により、オブジェクトパラメーターと配列結果がデフォルトで有効になりました。これらを使用するためにフラグを設定する必要はありません。
この更新により、次の例に示すように、HTTP リゾルバーを使用して HTTP URL からパイプラインまたはタスクをフェッチできるようになりました。
タスクの使用例
apiVersion: tekton.dev/v1 kind: TaskRun metadata: name: remote-task-reference spec: taskRef: resolver: http params: - name: url value: https://raw.githubusercontent.com/tektoncd-catalog/git-clone/main/task/git-clone/git-clone.yaml
パイプラインの使用例
apiVersion: tekton.dev/v1beta1 kind: PipelineRun metadata: name: http-demo spec: pipelineRef: resolver: http params: - name: url value: https://raw.githubusercontent.com/tektoncd/catalog/main/pipeline/build-push-gke-deploy/0.1/build-push-gke-deploy.yaml
この更新により、次の例に示すように、enum 宣言を使用して、パイプラインまたはタスクのパラメーターに指定できる値を制限できるようになりました。この機能を使用するには、
TektonConfig
CR のpipeline.options.configMaps.feature-flags.data.enable-param-enum
仕様をtrue
に設定する必要があります。使用例
apiVersion: tekton.dev/v1 kind: Pipeline metadata: name: pipeline-param-enum spec: params: - name: message enum: ["v1", "v2"] default: "v1" # ...
この更新により、認証されたソースコントロール管理 (SCM) API で Git リゾルバーを使用するときに、設定したデフォルトのトークン、SCM タイプ、およびサーバー URL をオーバーライドできるようになりました。以下の例を参照してください。
使用例
apiVersion: tekton.dev/v1beta1 kind: TaskRun metadata: name: git-api-demo-tr spec: taskRef: resolver: git params: - name: org value: tektoncd - name: repo value: catalog - name: revision value: main - name: pathInRepo value: task/git-clone/0.6/git-clone.yaml # create the my-secret-token secret in the namespace where the # pipelinerun is created. The secret must contain a GitHub personal access # token in the token key of the secret. - name: token value: my-secret-token - name: tokenKey value: token - name: scmType value: github - name: serverURL value: https://ghe.mycompany.com
-
今回の更新により、タスクの実行時に OpenShift Pipelines が作成する Pod 内のコンテナーと init-container のデフォルトのリソース要件を定義できるようになりました。これらの要件を設定するには、
TektonConfig
CR のpipeline.options.configMaps.config-defaults.default-container-resource-requirements
仕様を使用します。すべてのコンテナーのデフォルト値を設定することも、特定のコンテナーのデフォルト値を名前または接頭辞 (sidecar-*
など) で設定することもできます。
1.4.1.2. Operator
-
この更新により、OpenShift Pipelines は Operator プロキシー Webhook の horizontal pod autoscaling をサポートします。Operator プロキシー Webhook を実行する Pod の CPU 使用率が 85% に達すると、オートスケーラーは Pod の別のレプリカを作成します。起動時に Operator プロキシー Webhook に複数のレプリカを使用する場合は、
TektonConfig
CR のoptions.horizontalPodAutoscalers
仕様でこの数を設定する必要があります。 - この更新により、OpenShift Pipelines のいくつかのコンポーネントの内部リーダーの選出が改善されました。Operator コントローラー、Operator Webhook、プロキシー Webhook、Pipelines as Code watcher、Pipelines as Code Webhook、および Tekton Chains コントローラーは、個別のリーダー選出 ConfigMap を使用するようになりました。リーダーの選出は、コンポーネントのどのレプリカがリクエストを処理するかに影響します。
- この更新前は、OpenShift Pipelines コントローラーのレプリカの数をスケールアップする場合、新しいレプリカの使用を有効にするために手動介入が必要でした。つまり、リーダー選挙でリースを削除する必要がありました。今回の更新により、OpenShift Pipelines コントローラーのレプリカの数をスケールアップすると、リーダーの選出に新しいレプリカが自動的に含まれるようになり、新しいレプリカで情報を処理できるようになります。
この更新により、
TektonConfig
CR のspec.pipeline
仕様に次のフラグをオプションで設定できるようになりました。-
coschedule
-
enable-cel-in-whenexpression
-
enable-param-enum
-
enable-step-actions
-
enforce-nonfalsifiability
-
keep-pod-on-cancel
-
max-result-size
-
metrics.count.enable-reason
-
results-from
-
set-security-context
-
default-resolver-type
-
1.4.1.3. トリガー
-
今回の更新により、Triggers インターセプターの CEL 式を指定するときに、
最初
と最後
の関数を使用して JSON 配列内の値にアクセスできるようになりました。 今回の更新により、次の例のように、Triggers インターセプターの CEL 式を指定するときに、正規表現を利用して文字を指定した文字列に置き換えることが容易になる
translate
関数を使用できるようになりました。translate
関数の使用例".translate("[^a-z0-9]+", "ABC")
入力文字列の例
This is $an Invalid5String
結果文字列の例
ABChisABCisABCanABCnvalid5ABCtring
1.4.1.4. Web コンソール
今回の更新により、OpenShift Pipelines の Web コンソールプラグインを有効にできるようになりました。プラグインを有効にすると、Pipelines overview ページとパイプラインのページでパイプラインおよびタスクの実行統計を表示できます。この情報を表示するには、Tekton Results をインストールする必要があります。
注記OpenShift Pipelines の Web コンソールプラグインを使用するには、少なくとも以下の OpenShift Container Platform リリースを使用する必要があります。
- OpenShift Container Platform バージョン 4.12 の場合: 4.12.51
- OpenShift Container Platform バージョン 4.13 の場合: 4.13.34
- OpenShift Container Platform バージョン 4.14 の場合: 4.14.13
- OpenShift Container Platform バージョン 4.15 の場合: 任意のリリース
- この更新により、OpenShift Container Platform 4.15 を使用していてコンソールプラグインを有効にしている場合、過去のパイプライン実行とタスク実行に関するアーカイブ情報を表示できるようになりました。Tekton Results は、この情報を提供します。
-
この更新により、Web コンソールの Developer または Administrator パースペクティブ両方からアクセスできる
PipelineRun
の詳細ページに、Vulnerabilities の行が導入されました。この新しい行では、特定された脆弱性が重大度 (重大、高、中、低) 別に分類されて視覚的に表示されます。この機能を有効にするには、タスクと関連パイプラインを指定された形式に更新します。さらに、有効にすると、パイプライン実行リストビューページの Vulnerabilities 列から、特定された脆弱性に関する情報にアクセスすることもできます。 -
今回の更新により、Web コンソールの Developer パースペクティブまたは Administrator パースペクティブの両方からアクセスできる
PipelineRun
の詳細ページで、ソフトウェア BOM (Software Bill of Materials) をダウンロードまたは表示するオプションが提供され、透過性および制御を強化されました。この機能を有効にするには、タスクと関連パイプラインを指定された形式に更新します。
1.4.1.5. CLI
-
この更新により、Tekton Hub コンポーネントがインストールされている場合、
tkn version
コマンドでそのバージョンが表示されるようになりました。 -
この更新により、
tkn customrun list
コマンドを使用してカスタム実行をリスト表示できるようになりました。 -
今回の更新により、
tkn task start
コマンドを使用するときに、-i
または--image
引数で OCI イメージの URL を指定できるようになりました。このコマンドはイメージをプルし、このイメージから指定されたタスクを実行します。 -
この更新により、
opc version
コマンドは、opc
ユーティリティーの一部である Tekton Results CLI コンポーネントのバージョンを表示します。
1.4.1.6. Pipelines as Code
-
今回の更新により、Pipelines as Code を使用するときに、パイプラインの実行に
pipelinesascode.tekton.dev/pipeline
アノテーションを指定して、Tekton Hub インスタンスからパイプラインをフェッチできるようになりました。このアノテーションの値は、Tekton Hub 上の単一のパイプラインを参照する必要があります。 - この更新により、異なる設定と異なるシークレットを使用して、追加の Pipelines as Code コントローラーをデプロイできるようになります。複数の Pipelines as Code コントローラーを使用して、複数の GitHub インスタンスと対話できます。
-
この更新により、Pipelines as Code には GitLab プロバイダーと BitBucket プロバイダーのメトリクス公開が含まれます。メトリクスには、Pipelines as Code コントローラーの
/metrics
パスと、ウォッチャーサービス、ポート 9090 を使用してアクセスできます。 この更新により、
pipelinesascode.tekton.dev/on-cel-expression
で CEL 式を使用してパイプライン実行の実行条件を指定するときに、Git リポジトリー内のファイルの存在を確認できるようになりました。-
全ファイルの場合
files.all.exists(x, x.matches('<path_or_regular_expression>'))
-
このパイプラインの最後の実行以降に追加されたファイルの場合
files.added.exists (x、x.matches ('<path_or_normal_expression>'))
-
このパイプラインの最後の実行以降に変更されたファイルの場合
files.modified.exists (x, x.matches ('<path_or_regular_expression>'))
-
このパイプラインの最後の実行以降に削除されたファイルの場合
files.deleted.exists (x, x.matches ('<path_or_regular_expression>'))
-
このパイプラインの最後の実行以降に名前が変更されたファイルの場合
files.renamed.exists (x, x.matches ('<path_or_regular_expression>'))
-
全ファイルの場合
1.4.1.7. Tekton Chains
-
この更新により、Tekton Chains は API バージョンの
v1
値をサポートします。 -
今回の更新により、
TektonConfig
CR でartifacts.pipelinerun.enable-deep-inspection
パラメーターを設定できるようになりました。このパラメーターがtrue
の場合、Tekton Chains はパイプライン実行の子タスク実行の結果を記録します。このパラメーターがfalse
の場合、Tekton Chains はパイプライン実行の結果を記録しますが、子タスクの実行は記録しません。 -
今回の更新により、
TektonConfig
CR でbuilddefinition.buildtype
パラメーターを設定して、in-toto アテステーションのビルドタイプを設定できるようになりました。このパラメーターがhttps://tekton.dev/chains/v2/slsa
の場合、Tekton Chains は SLSA v1.0 仕様に厳密に準拠して in-toto 証明書を記録します。このパラメーターがhttps://tekton.dev/chains/v2/slsa-tekton
の場合、Tekton Chains は、各タスク実行およびパイプライン実行のラベルやアノテーションなどの追加情報を含む in-toto 証明を記録し、パイプライン実行の各タスクをresolvedDependencies
の下に追加します。 -
この更新前は、Tekton Chains が
gcs
ストレージを使用するように設定されていた場合、Tekton Chains はパイプライン実行情報を記録しませんでした。今回の更新により、Tekton Chains はこのストレージにパイプライン実行情報を記録します。 -
この更新により、Tekton Chains のパフォーマンスメトリクスが利用できるようになりました。メトリックにアクセスするには、
tekton-chains-metrics
サービスを公開し、ポート 9090 のこのサービスの/metrics
パスを使用します。これらのメトリクスは、OpenShift Container Platform Monitoring スタックでも利用できます。 -
この更新により、Tekton Chains は、
v1
バージョン値を使用するパイプライン実行およびタスク実行を記録するときに、新しいv2alpha3
レコード形式バージョンを使用します。 -
この更新により、Tekton Chains は内部で
v1
バージョンのパイプライン実行およびタスク実行形式を使用するようになりました。
1.4.1.8. Tekton Results
- この更新により、Tekton Results がインストールされている場合、Tekton Results は Pipelines as Code を使用して開始されたパイプライン実行の概要と記録データを記録します。
- この更新により、Tekton Results はパイプラインまたはタスクについて最大 100 MB のログ情報を提供します。
-
この更新により、認証されたユーザーはすべて、openshift-pipelines namespace の
tekton-results-api-service
ルートを表示し、REST API を使用して Tekton Results と対話できるようになります。 - 今回の更新により、Tekton Results API には、レコードのリストの概要と集計を取得するための新しいエンドポイントが含まれています。
-
今回の更新により、Tekton Results API の
GetLog
エンドポイントは、text/plain
コンテンツタイプで raw バイトを返します。 今回の更新により、
TektonResult
CR のoptions.configMaps.tekton-results-api-config.data.config.DB_SSLROOTCERT
仕様でカスタム CA 証明書をオプションで指定できるようになりました。この場合、Tekton Results はデータベースサーバーへの SSL 接続を必要とし、接続にこの証明書を使用します。この設定を使用する場合は、Tekton Results を設定するときに、次の表に示すように、他のいくつかの設定パラメーターに対して代替仕様も使用する必要があります。通常のパラメーター仕様と代替パラメーターの仕様の両方がTektonResult
CR に含まれています。表1.3 Tekton Results の代替設定パラメーター 通常のパラメーター仕様 代替パラメーターの仕様 logs_api
options.configMaps.tekton-results-api-config.data.config.LOGS_API
log_level
options.configMaps.tekton-results-api-config.data.config.LOG_LEVEL
db_port
options.configMaps.tekton-results-api-config.data.config.DB_PORT
db_host
options.configMaps.tekton-results-api-config.data.config.DB_HOST
logs_path
options.configMaps.tekton-results-api-config.data.config.LOGS_PATH
logs_type
options.configMaps.tekton-results-api-config.data.config.LOGS_TYPE
logs_buffer_size
options.configMaps.tekton-results-api-config.data.config.LOGS_BUFFER_SIZE
auth_disable
options.configMaps.tekton-results-api-config.data.config.AUTH_DISABLE
db_enable_auto_migration
options.configMaps.tekton-results-api-config.data.config.DB_ENABLE_AUTO_MIGRATION
server_port
options.configMaps.tekton-results-api-config.data.config.SERVER_PORT
prometheus_port
options.configMaps.tekton-results-api-config.data.config.PROMETHEUS_PORT
gcs_bucket_name
options.configMaps.tekton-results-api-config.data.config.GCS_BUCKET_NAME
この表に記載されていない設定パラメーターについては、ドキュメントで説明されているように通常の仕様を使用してください。
重要DB_SSLROOTCERT
設定を使用する必要がある場合にのみ、代替パラメーター仕様を使用してください。
1.4.2. 互換性を失わせる変更点
-
この更新により、バンドルリゾルバーを使用する場合、
serviceAccount
パラメーターを指定できなくなりました。代わりに、secret
パラメーターを指定して、レジストリーの認証情報を含むシークレットの名前を指定できます。また、secret
パラメーターを使用するように、Bundles リゾルバーのserviceAccount
パラメーターを使用するタスクまたはパイプラインを更新する必要があります。TektonConfig
CR のpipeline.bundles-resolver-config.default-service-account
仕様はサポートされなくなりました。
1.4.3. 既知の問題
-
tkn pipeline logs -f
コマンドは、パイプラインの進行中にretries: X
パラメーターを使用してパイプラインに定義されたタスクのログを表示しません。
1.4.4. 修正された問題
- この更新の前は、GitHub Enterprise を使用する場合、受信 Webhook が機能しませんでした。この更新により、GitHub Enterprise で受信 Webhook を使用できるようになります。
- この更新より前は、タスク実行またはパイプライン実行でタイムアウトが無効になっている場合、OpenShift Pipelines はタスク実行またはパイプライン実行に対して一連の調整をすぐに実行し、コントローラーのパフォーマンスを低下させていました。今回の更新により、コントローラーは通常タイムアウトを無効にしてタスク実行とパイプライン実行を調整します。
-
今回の更新以前は、カスタムの namespace を使用して Tekton Hub をインストールした場合、そのインストールにより
openshift-pipelines
namespace が削除され、OpenShift Pipelines インストールが削除されました。今回の更新により、カスタムの namespace を使用して Tekton Hub をインストールできるようになり、OpenShift Pipelines のインストールは影響を受けません。 -
この更新より前は、GitLab で Pipelines as Code を使用する場合、ユーザーが
/test
などのマージリクエスト内のコメントを使用してパイプラインの実行をトリガーした場合、Pipelines as Code はマージリクエストでのパイプライン実行のステータスを報告しませんでした。今回の更新により、Pipelines as Code はマージリクエスト上のパイプライン実行のステータスを正しく報告します。 この更新より前は、次の例に示すように、Tekton Results でサブグループを含む CEL フィルターを使用すると、サブグループが正しく機能しませんでした。今回の更新により、サブグループが正しく機能するようになりました。
サブグループを含む CEL フィルターの例
"data_type==TASK_RUN && (data.spec.pipelineSpec.tasks[0].name=='hello'||data.metadata.name=='hello')"
- この更新より前は、パイプライン実行がキャンセルされた場合、Tekton Results はこのパイプライン実行のログを記録しませんでした。この更新により、Tekton Results はキャンセルされたパイプライン実行のログを記録します。
1.4.5. Red Hat OpenShift Pipelines 一般提供 1.14.1 のリリースノート
今回の更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.14.1 が OpenShift Container Platform 4.12 以降のバージョンで利用できるようになりました。
1.4.5.1. 修正された問題
-
この更新より前は、異なる GitHub アプリで設定された複数の Pipelines as Code コントローラーを使用すると、Pipelines as Code ウォッチャーコンポーネントが
nilerror
メッセージでクラッシュしました。この更新により、Pipelines as Code は、異なる GitHub アプリで設定された複数のコントローラーで正常に機能します。
1.4.6. Red Hat OpenShift Pipelines 一般提供 1.14.2 のリリースノート
今回の更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.14.2 が OpenShift Container Platform 4.12 以降のバージョンで利用できるようになりました。
1.4.6.1. 修正された問題
- この更新より前は、Pipelines as Code を使用してパイプライン実行を開始した場合、Tekton Results にはこのパイプライン実行に関する情報が保存されませんでした。この問題が原因で、Web コンソールプラグインでは、実行統計表示にパイプライン実行が含まれませんでした。今回の更新により、Tekton Results は Pipelines as Code のパイプライン実行に関する情報を保存し、これらのパイプライン実行が実行統計表示に含まれるようになりました。
-
この更新より前は、Pipelines as Code を使用して多くのパイプライン実行を同時に開始し、これらのパイプライン実行に
max-keep-run
アノテーションが含まれていた場合、Pipelines as Code ウォッチャーコンポーネントは保留中のパイプライン実行の一部を処理できず、それらのパイプライン実行は、Pending の状態でそのまま残りました。今回の更新により、Pipelines as Code パイプライン実行が正しく処理されます。
1.4.7. Red Hat OpenShift Pipelines 一般提供 1.14.3 のリリースノート
この更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.14.3 が OpenShift Container Platform 4.12 以降のバージョンで利用できるようになります。
1.4.7.1. 修正された問題
-
この更新の前は、Pipelines as Code を使用して同時に多数のパイプライン実行を開始し、これらのパイプライン実行に
max-keep-run
アノテーションが含まれていた場合に、既存のパイプライン実行の削除と新しいパイプライン実行の処理の間で競合状態が発生したため、Pipelines as Code ウォッチャーはパイプライン実行を調整できませんでした。この問題が原因で、一部のパイプライン実行を処理できませんでした。この更新により、Pipelines as Code ウォッチャーはパイプラインの実行を処理します。 -
この更新の前は、
tkn pr logs -f
コマンドを使用して実行中のパイプラインのログを表示すると、パイプラインの実行が正常に完了した場合でも、コマンドラインユーティリティーが応答しなくなりました。この更新により、tkn pr logs -f
コマンドはログ情報を適切に表示して終了します。
1.4.8. Red Hat OpenShift Pipelines 一般提供 1.14.4 のリリースノート
この更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.14.4 が OpenShift Container Platform 4.12 以降のバージョンで利用できるようになります。
1.4.8.1. 修正された問題
-
この更新の前は、
tekton-pipelines-webhook.ConversionWebhook
を参照する多数のエラーメッセージがログに記録される可能性がありました。この更新により、ClusterTask
およびStepAction
カスタムリソース定義 (CRD) の不要な変換 Webhook 設定が削除され、そのようなエラーメッセージはログに記録されなくなりました。 -
この更新の前は、
TektonConfig
カスタムリソース (CR) のoptions
セクションを使用した設定で機能しないものがありました。これは、options
セクションとTektonConfig
CR の別のフィールドの両方で同じ設定が指定されている場合に競合状態が発生するためです。この更新により、設定が機能します。 -
この更新の前は、OpenShift Pipelines コンソールプラグイン Pod は、
nodeSelector
、tolerations
、およびpriorityClassName
設定を使用して指定されたノードに移動しませんでした。この更新により、OpenShift Pipelines プラグイン Pod が正しいノードに移動します。 - この更新の前は、適切なコンテキスト情報なしで、いくつかのエラーメッセージが Operator Controller ログに記録されていました。この更新により、エラーメッセージに必要な情報が含まれるようになりました。
-
この更新の前は、
pipelines-scc-rolebinding
ロールバインディングがいずれかの namespace で欠落しているか削除されている場合、OpenShift Pipelines Operator Controller は新しい namespace にデフォルトのリソースを正しく作成できませんでした。この更新により、コントローラーは正常に機能するようになりました。 -
この更新の前は、
TektonConfig
CR のoptions
セクションを使用して Horizontal Pod Autoscaler (HPA) を設定した場合、既存の HPA は正しく更新されていましたが、必要なときに新しい HPA は作成されませんでした。この更新により、options
セクションを使用した Horizontal Pod Autoscaler 設定が正しく機能するようになりました。 - この更新の前は、ユーザーまたは OpenShift Pipelines コントローラーが OpenShift Pipelines API を使用して、Pipelines as Code によって開始されているパイプライン実行を変更すると、Pipelines as Code が停止し、ログに "パニック" メッセージが含まれることがありました。この更新により、Pipelines as Code によって開始されるパイプラインを同時に変更できるようになりました。
-
この更新の前は、Pipelines as Code で、同時実行制限の設定が
0
であっても、同時実行制限が無効であると解釈されませんでした。この更新では、同時実行制限を0
に設定すると、同時実行制限が無効になります。
1.4.9. Red Hat OpenShift Pipelines 一般提供 1.14.5 のリリースノート
今回の更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.14.5 が OpenShift Container Platform 4.12 以降のバージョンで利用できるようになりました。
1.4.9.1. 修正された問題
- この更新の前は、Web コンソールを使用して概要ページでパイプラインをクリックしても、パイプラインの詳細ページにパイプライン内のタスクに関する情報が含まれていませんでした。この更新により、概要ページでパイプラインをクリックすると、パイプラインの詳細ページに必要な情報が表示されるようになりました。
-
この更新の前は、
TektonConfig
CR で空のartifacts.oci.storage
値を設定して OCI アーティファクトの保存を無効にするように Tekton Chains を設定した場合、設定は機能せず、Tekton Chains はアーティファクトを保存しようとし、chains.tekton.dev/signed
アノテーションに失敗を記録しました。この更新により、TektonConfig
CR で空のartifacts.oci.storage
値を設定すると、Tekton Chains は OCI アーティファクトを保存しようとしなくなります。