1.8. Red Hat OpenShift Pipelines General Availability 1.7 のリリースノート
Red Hat OpenShift Pipelines General Availability (GA) 1.7 が OpenShift Container Platform 4.9、4.10、および 4.11 で利用可能になりました。
1.8.1. 新機能
以下では、修正および安定性の面での改善点に加え、OpenShift Pipelines 1.7 の主な新機能について説明します。
1.8.1.1. Pipelines
今回の更新では、
pipelines-<version>
が Red Hat OpenShift Pipelines Operator をインストールするためのデフォルトのチャネルです。たとえば、OpenShift Pipelines Operator バージョン1.7
をインストールするデフォルトのチャネルは、pipelines-1.7
です。クラスター管理者は、latest
チャネルを使用して、Operator の最新の安定バージョンをインストールすることもできます。注記preview
チャネルとstable
チャネルは廃止され、将来のリリースで削除される予定です。ユーザー namespace でコマンドを実行すると、コンテナーは
root
(ユーザー ID0
) として実行されますが、ホストに対するユーザー特権があります。この更新では、ユーザー namespace で pod を実行するには、CRI-O が期待するアノテーションを渡す必要があります。-
すべてのユーザーにこれらのアノテーションを追加するには、
oc edit clustertask buildah
コマンドを実行し、buildah
クラスタータスクを編集します。 - 特定の namespace にアノテーションを追加するには、クラスタータスクをタスクとしてその namespace にエクスポートします。
-
すべてのユーザーにこれらのアノテーションを追加するには、
この更新の前は、特定の条件が満たされない場合、
when
式はTask
オブジェクトとその依存タスクをスキップしていました。今回の更新により、when
式のスコープを設定して、従属タスクではなく、Task
オブジェクトのみを保護できるようになりました。この更新を有効にするには、TektonConfig
CRD でscope-when-expressions-to-task
フラグをtrue
に設定します。注記scope-when-expressions-to-task
フラグは非推奨であり、将来のリリースで削除される予定です。OpenShift Pipelines のベストプラクティスとして、保護されたTask
のみをスコープとするwhen
式を使用します。-
この更新では、タスク内のワークスペースの
subPath
フィールドで変数置換を使用できます。 今回の更新では、一重引用符または二重引用符を含む角かっこ表記を使用して、パラメーターと結果を参照できます。この更新以前は、ドット表記しか使用できませんでした。たとえば、次は同等になりました。
$(param.myparam)
、$(param['myparam'])
、および$(param["myparam"])
。一重引用符または二重引用符を使用して、
"."
などの問題のある文字を含むパラメーター名を囲むことができます。たとえば、$(param['my.param'])
と$(param["my.param"])
。
-
この更新により、
enable-api-fields
フラグを有効にせずに、タスク定義にステップのonError
パラメーターを含めることができます。
1.8.1.2. トリガー
-
この更新により、
feature-flag-triggers
設定マップに新しいフィールドlabels-exclusion-pattern
が追加されました。このフィールドの値を正規表現 (regex) パターンに設定できます。コントローラーは、正規表現パターンに一致するラベルを、イベントリスナーからイベントリスナー用に作成されたリソースへの伝播から除外します。 -
この更新により、
TriggerGroups
フィールドがEventListener
仕様に追加されました。このフィールドを使用すると、トリガーのグループを選択して実行する前に実行するインターセプターのセットを指定できます。この機能を有効にするには、TektonConfig
カスタムリソース定義のパイプライン
セクションで、enable-api-fields
フィールドをalpha
に設定する必要があります。 -
この更新により、
Trigger
リソースは、TriggerTemplate
テンプレートによって定義されたカスタム実行をサポートします。 -
この更新により、トリガーは
EventListener
Pod からの Kubernetes イベントの生成をサポートします。 -
この更新により、次のオブジェクトのカウントメトリクスが使用可能になります:
ClusterInteceptor
、EventListener
、TriggerTemplate
、ClusterTriggerBinding
、およびTriggerBinding
。 -
この更新により、
ServicePort
仕様が Kubernetes リソースに追加されます。この仕様を使用して、イベントリスナーサービスを公開するポートを変更できます。デフォルトのポートは8080
です。 -
この更新では、
EventListener
仕様のtargetURI
フィールドを使用して、トリガー処理中にクラウドイベントを送信できます。この機能を有効にするには、TektonConfig
カスタムリソース定義のパイプライン
セクションで、enable-api-fields
フィールドをalpha
に設定する必要があります。 -
この更新により、
tekton-triggers-eventlistener-roles
オブジェクトには、既存のcreate
動詞に加えて、patch
動詞が含まれるようになりました。 -
この更新により、
securityContext.runAsUser
パラメーターがイベントリスナーのデプロイメントから削除されます。
1.8.1.3. CLI
この更新では、
tkn [pipeline | pipelinerun] export
コマンドは、パイプラインまたはパイプライン実行を YAML ファイルとしてエクスポートします。以下に例を示します。openshift-pipelines
namespace にtest_pipeline
という名前のパイプラインをエクスポートします。$ tkn pipeline export test_pipeline -n openshift-pipelines
openshift-pipelines
namespace にtest_pipeline_run
という名前のパイプラインランをエクスポートします。$ tkn pipelinerun export test_pipeline_run -n openshift-pipelines
-
この更新により、
--grace
オプションがtkn pipelinerun cancel
に追加されます。--grace
オプションを使用して、パイプラインの実行を強制的に終了するのではなく、適切に終了します。この機能を有効にするには、TektonConfig
カスタムリソース定義のパイプライン
セクションで、enable-api-fields
フィールドをalpha
に設定する必要があります。 この更新により、Operator バージョンと Chains バージョンが
tkn version
コマンドの出力に追加されます。重要Tekton Chains はテクノロジープレビュー機能です。
-
この更新により、パイプラインの実行をキャンセルすると、
tkn pipelinerun describe
コマンドはキャンセルされたすべてのタスクの実行を表示します。この修正以前は、1 つのタスク実行のみが表示されていました。 -
この更新により、
tkn [t | p | ct] start
コマンドのスキップを--skip-optional-workspace
フラグで実行したときに、オプションのワークスペースの要求仕様を省略できるようになりました。インタラクティブモードで実行している場合はスキップすることもできます。 この更新では、
tkn chains
コマンドを使用して Tekton Chains を管理できます。--chains-namespace
オプションを使用し Tekton Chains をインストールする namespace を指定することもできます。重要Tekton Chains はテクノロジープレビュー機能です。
1.8.1.4. Operator
この更新では、Red Hat OpenShift Pipelines Operator を使用して、Tekton Hub および Tekton Chains をインストールおよびデプロイできます。
重要Tekton Chains とクラスターへの Tekton Hub のデプロイメントは、テクノロジープレビュー機能です。
この更新により、アドオンオプションとして Pipelines as Code (PAC) を見つけて使用できるようになります。
重要Pipelines as Code は、テクノロジープレビュー機能です。
この更新により、
communityClusterTasks
パラメーターをfalse
に設定することにより、コミュニティークラスタータスクのインストールを無効にできるようになりました。以下に例を示します。... spec: profile: all targetNamespace: openshift-pipelines addon: params: - name: clusterTasks value: "true" - name: pipelineTemplates value: "true" - name: communityClusterTasks value: "false" ...
この更新では、
TektonConfig
カスタムリソースのenable-devconsole-integration
フラグをfalse
に設定することで、Tekton Hub と Developer パースペクティブの統合を無効にできます。以下に例を示します。... hub: params: - name: enable-devconsole-integration value: "true" ...
-
今回の更新により、
operator-config.yaml
設定マップにより、tkn version
コマンドの出力で Operator バージョンを表示できるようになります。 -
この更新により、
argocd-task-sync-and-wait
タスクのバージョンがv0.2
に変更されます。 -
この
TektonConfig
CRD の更新により、oc get tektonconfig
コマンドは OPerator のバージョンを表示します。 - この更新により、サービスモニターがトリガーメトリクスに追加されます。
1.8.1.5. ハブ
Tekton Hub をクラスターにデプロイすることは、テクノロジープレビュー機能です。
Tekton Hub は、CI/CD ワークフローの再利用可能なタスクとパイプラインを検出、検索、および共有するのに役立ちます。Tekton Hub のパブリックインスタンスは、hub.tekton.dev で利用できます。
Red Hat OpenShift Pipelines 1.7 を確認しながら、クラスター管理者は Tekton Hub のカスタムインスタンスをエンタープライズクラスターにインストールしてデプロイすることもできます。組織に固有の再利用可能なタスクとパイプラインを使用してカタログをキュレートできます。
1.8.1.6. チェーン
Tekton Chains はテクノロジープレビュー機能です。
Tekton Chains は、Kubernetes カスタムリソース定義 (CRD) コントローラーです。これを使用して、Red Hat OpenShift Pipelines を使用して作成されたタスクおよびパイプラインのサプライチェーンセキュリティーを管理できます。
デフォルトでは、Tekton Chains は OpenShift Container Platform クラスターで実行されるタスクをモニターします。Chains は、完了したタスク実行のスナップショットを取得し、それらを 1 つ以上の標準ペイロード形式に変換し、すべてのアーティファクトに署名して保存します。
Tekton Chains は、次の機能をサポートしています。
-
暗号化キータイプと
cosign
などのサービスを使用して、タスク実行、タスク実行結果、および OCI レジストリーイメージに署名できます。 -
in-toto
などの認証形式を使用できます。 - OCI リポジトリーをストレージバックエンドとして使用して、署名と署名されたアーティファクトを安全に保存できます。
1.8.1.7. Pipelines as Code (PAC)
Pipelines as Code は、テクノロジープレビュー機能です。
Pipelines as Code を使用すると、クラスター管理者と必要な権限を持つユーザーは、パイプラインテンプレートをソースコード Git リポジトリーの一部として定義できます。設定された Git リポジトリーのソースコードプッシュまたはプルリクエストによってトリガーされると、この機能はパイプラインを実行し、ステータスを報告します。
Pipelines as Code は、次の機能をサポートしています。
- プルリクエストのステータス。プルリクエストを反復処理する場合、プルリクエストのステータスと制御は Git リポジトリーをホストしているプラットフォームで実行されます。
- GitHub は API をチェックして、再チェックを含むパイプライン実行のステータスを設定します。
- GitHub のプルリクエストとコミットイベント。
-
/retest
などのコメントでリクエストアクションをプルします。 - Git イベントのフィルタリング、およびイベントごとの個別のパイプライン。
- ローカルタスク、Tekton Hub、およびリモート URL の OpenShift Pipelines での自動タスク解決。
- 設定を取得するための GitHub blobs およびオブジェクト API の使用。
-
GitHub 組織を介して、または Prow スタイルの
OWNER
ファイルを使用したアクセス制御リスト (ACL)。 -
tkn
CLI ツール用のtkn pac
プラグイン。これを使用して Pipelines as Code リポジトリーとブートストラップを管理できます。 - GitHub アプリケーション、GitHub Webhook、Bitbucket Server、および Bitbucket Cloud のサポート。
1.8.2. 非推奨の機能
-
重大な変更: この更新により、
TektonConfig
カスタムリソース (CR) からdisable-working-directory-overwrite
およびdisable-home-env-overwrite
フィールドが削除されます。その結果、TektonConfig
CR は$HOME
環境変数とworkingDir
パラメーターを自動的に設定しなくなりました。タスク
カスタムリソース定義 (CRD) のenv
およびworkingDir
フィールドを使用して、引き続き$HOME
環境変数とworkingDir
パラメーターを設定できます。
-
Conditions
カスタムリソース定義 (CRD) タイプは非推奨であり、将来のリリースで削除される予定です。代わりに、推奨されるWhen
式を使用してください。
-
重大な変更:
EventListener
とTriggerBinding
の値を指定しない場合、Triggers
リソースはテンプレートを検証し、エラーを生成します。
1.8.3. 既知の問題
Maven および Jib Maven クラスタータスクを実行する場合には、デフォルトのコンテナーイメージは Intel(x86) アーキテクチャーでのみサポートされます。したがって、タスクは ARM、IBM Power Systems (ppc64le)、IBM Z、および LinuxONE (s390x) クラスターで失敗します。回避策として、
MAVEN_IMAGE
パラメーターの値をmaven:3.6.3-adoptopenjdk-11
に設定すると、カスタムイメージを指定できます。ヒントtkn hub
を使用して、ARM、IBM Power Systems (ppc64le)、IBM Z、および LinuxONE (s390x) に Tekton カタログに基づくタスクをインストールする前に、これらのプラットフォームでタスクを実行できるかどうかを確認してください。ppc64le
およびs390x
がタスク情報の Platforms セクションに一覧表示されているかどうかを確認するには、tkn hub info task <name>
コマンドを実行します。-
IBM Power Systems、IBM Z、および LinuxONE では、
s2i-dotnet
クラスタータスクはサポートされません。 nodejs:14-ubi8-minimal
イメージストリームを使用すると、以下のエラーが生成されるため、使用できません。STEP 7: RUN /usr/libexec/s2i/assemble /bin/sh: /usr/libexec/s2i/assemble: No such file or directory subprocess exited with status 127 subprocess exited with status 127 error building at STEP "RUN /usr/libexec/s2i/assemble": exit status 127 time="2021-11-04T13:05:26Z" level=error msg="exit status 127"
-
暗黙的なパラメーターマッピングは、最上位の
Pipeline
またはPipelineRun
定義からtaskRef
タスクにパラメーターを誤って渡します。マッピングは、トップレベルのリソースからインラインtaskSpec
仕様のタスクにのみ行う必要があります。この問題は、TektonConfig
カスタムリソース定義のpipeline
セクションでenable-api-fields
フィールドをalpha
に設定することにより、この機能が有効になっているクラスターにのみ影響します。
1.8.4. 修正された問題
-
今回の更新では、
labels
やannotations
などのメタデータがPipeline
オブジェクト定義とPipelineRun
オブジェクト定義の両方に存在する場合、PipelineRun
タイプの値が優先されます。Task
オブジェクトとTaskRun
オブジェクトで同様の動作が見られます。 -
この更新では、
timeouts.tasks
フィールドまたはtimeouts.finally
フィールドが0
に設定されている場合、timeouts.pipeline
も0
に設定されます。 -
この更新により、シバンを使用しないスクリプトから
-x
セットフラグが削除されました。この修正により、スクリプト実行による潜在的なデータ漏洩が減少します。 -
この更新により、Git クレデンシャルのユーザー名に存在するバックスラッシュ文字は、
.gitconfig
ファイルの追加のバックスラッシュでエスケープされます。
-
この更新により、
EventListener
オブジェクトのfinalizer
プロパティーは、ロギングおよび設定マップのクリーンアップに必要なくなりました。 - この更新により、イベントリスナーサーバーに関連付けられているデフォルトの HTTP クライアントが削除され、カスタム HTTP クライアントが追加されます。その結果、タイムアウトが改善されました。
- この更新により、トリガークラスターのロールが所有者の参照で機能するようになりました。
- この更新では、複数のインターセプターが拡張機能を返す場合、イベントリスナーの競合状態は発生しません。
-
この更新により、
tkn pr delete
コマンドは、ignore-running
フラグで実行されているパイプラインを削除しません。
- この更新では、アドオンパラメーターを変更しても、Operator Pod は再起動し続けません。
-
この更新により、サブスクリプションおよび設定カスタムリソースで設定されていない場合、
tkn serve
CLI Pod はインフラノードでスケジュールされます。 - この更新では、指定されたバージョンのクラスタータスクはアップグレード中に削除されません。
1.8.5. Red Hat OpenShift Pipelines General Availability 1.7.1 のリリースノート
Red Hat OpenShift Pipelines General Availability (GA) 1.7.1 が OpenShift Container Platform 4.9、4.10、および 4.11 で利用可能になりました。
1.8.5.1. 修正された問題
- 今回の更新以前は、Red Hat OpenShift Pipelines Operator をアップグレードすると、Tekton Hub に関連付けられたデータベースのデータが削除され、新規データベースがインストールされていました。今回の更新により、Operator のアップグレードでデータが保存されるようになりました。
- 今回の更新以前は、クラスター管理者のみが OpenShift Container Platform コンソールでパイプラインメトリクスにアクセスできていました。今回の更新により、他のクラスターロールを持つユーザーもパイプラインメトリクスにアクセスできるようになりました。
-
今回の更新以前は、大量の終了メッセージを生成するタスクが含まれるパイプラインの場合、パイプラインの実行に失敗しました。Pod 内のすべてのコンテナーの終了メッセージの合計サイズは 12 KB を超えることができないために、パイプライン実行が失敗しました。今回の更新により、同じイメージを使用する
place-tools
およびstep-init
初期化コンテナーがマージされ、各タスクの Pod で実行されているコンテナーの数が減りました。このソリューションにより、タスクの Pod で実行されているコンテナーの数を最小限にすることにより、パイプライン実行に失敗する可能性を減らすことができます。ただし、終了メッセージの最大許容サイズの制限は削除されません。 -
今回の更新以前は、Tekton Hub Web コンソールからリソースの URL に直接アクセスしようとすると、Nginx
404
エラーが発生しました。今回の更新で、Tekton Hub Web コンソールイメージは、Tekton Hub Web コンソールから直接リソースの URL にアクセスできるように修正されました。 - 今回の更新以前は、namespace ごとにリソースプルーナージョブがリソースのプルーニング用に別個のコンテナーを作成していました。今回の更新により、リソースプルーナージョブはすべての namespace のコマンドを 1 つのコンテナーのループとして実行するようになりました。
1.8.6. Red Hat OpenShift Pipelines General Availability 1.7.2 のリリースノート
Red Hat OpenShift Pipelines General Availability (GA) 1.7.2 が OpenShift Container Platform 4.9、4.10、およびそれ以降のバージョンで利用可能になりました。
1.8.6.1. 既知の問題
-
openshift-pipelines
namespace の Tekton Chains のchains-config
設定マップは、Red Hat OpenShift Pipelines Operator のアップグレード後に自動的にデフォルト値にリセットされます。現在、この問題に対する回避策はありません。
1.8.6.2. 修正された問題
-
今回の更新前は、OpenShift Pipelines 1.7.1 のタスクは、最初の引数として
init
を使用し、その後に 2 つ以上の引数を使用すると失敗しました。今回の更新により、フラグが正しく解析され、タスクが正常に実行されるようになりました。 今回の更新以前は、無効なロールバインディングにより、OpenShift Container Platform 4.9 および 4.10 への Red Hat OpenShift Pipelines Operator のインストールは、以下のエラーメッセージと共に失敗していました。
error updating rolebinding openshift-operators-prometheus-k8s-read-binding: RoleBinding.rbac.authorization.k8s.io "openshift-operators-prometheus-k8s-read-binding" is invalid: roleRef: Invalid value: rbac.RoleRef{APIGroup:"rbac.authorization.k8s.io", Kind:"Role", Name:"openshift-operator-read"}: cannot change roleRef
今回の更新により、Red Hat OpenShift Pipelines Operator は個別のロールバインディング namespace でインストールし、他の Operator のインストールとの競合を回避するようになりました。
今回の更新以前は、Operator をアップグレードすると、Tekton Chains の
signing-secrets
シークレットキーがデフォルト値にリセットされていました。今回の更新により、カスタムシークレットキーは Operator のアップグレード後も永続するようになりました。注記Red Hat OpenShift Pipelines 1.7.2 へのアップグレードにより、キーがリセットされます。ただし、それ以降のリリースにアップグレードすると、キーは永続化される予定です。
今回の更新以前は、すべての S2I ビルドタスクが以下の様なエラーメッセージと共に失敗していました。
Error: error writing "0 0 4294967295\n" to /proc/22/uid_map: write /proc/22/uid_map: operation not permitted time="2022-03-04T09:47:57Z" level=error msg="error writing \"0 0 4294967295\\n\" to /proc/22/uid_map: write /proc/22/uid_map: operation not permitted" time="2022-03-04T09:47:57Z" level=error msg="(unable to determine exit status)"
今回の更新により、
pipelines-scc
セキュリティーコンテキスト制約 (SCC) は、Buildah
およびS2I
クラスタータスクに必要なSETFCAP
機能と互換性が確保されています。その結果、Buildah
およびS2I
ビルドタスクを正常に実行できます。さまざまな言語やフレームワークで書かれたアプリケーションに対して
Buildah
クラスタータスクおよびS2I
ビルドタスクを正常に実行するには、build
やpush
などの適切なsteps
オブジェクトに以下のスニペットを追加します。securityContext: capabilities: add: ["SETFCAP"]
1.8.7. Red Hat OpenShift Pipelines General Availability 1.7.3 のリリースノート
Red Hat OpenShift Pipelines General Availability (GA) 1.7.3 が OpenShift Container Platform 4.9、4.10、および 4.11 で利用可能になりました。
1.8.7.1. 修正された問題
-
今回の更新前は、いずれかの namespace が
Terminating
状態の場合、RBAC リソースの作成時に Operator が失敗していました。今回の更新により、Operator はTerminating
状態の namespace を無視し、RBAC リソースを作成します。 -
以前は、Red Hat OpenShift Pipelines Operator をアップグレードすると
pipeline
サービスアカウントが再作成され、サービスアカウントにリンクされたシークレットが失われていました。今回の更新でこの問題が修正されています。アップグレード中に、Operator はpipeline
サービスアカウントを再作成しなくなりました。その結果、pipeline
サービスアカウントにアタッチされたシークレットはアップグレード後も保持され、リソース (タスクとパイプライン) は引き続き正しく機能します。