1.7. 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.7.1. 新機能 リンクのコピーリンクがクリップボードにコピーされました!
以下では、修正および安定性の面での改善点に加え、OpenShift Pipelines 1.7 の主な新機能について説明します。
1.7.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オブジェクトのみを保護できるようになりました。この更新を有効にするには、TektonConfigCRD で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.7.1.2. トリガー リンクのコピーリンクがクリップボードにコピーされました!
-
この更新により、
feature-flag-triggers設定マップに新しいフィールドlabels-exclusion-patternが追加されました。このフィールドの値を正規表現 (regex) パターンに設定できます。コントローラーは、正規表現パターンに一致するラベルを、イベントリスナーからイベントリスナー用に作成されたリソースへの伝播から除外します。 -
この更新により、
TriggerGroupsフィールドがEventListener仕様に追加されました。このフィールドを使用すると、トリガーのグループを選択して実行する前に実行するインターセプターのセットを指定できます。この機能を有効にするには、TektonConfigカスタムリソース定義のパイプラインセクションで、enable-api-fieldsフィールドをalphaに設定する必要があります。 -
この更新により、
Triggerリソースは、TriggerTemplateテンプレートによって定義されたカスタム実行をサポートします。 -
この更新により、トリガーは
EventListenerPod からの 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.7.1.3. CLI リンクのコピーリンクがクリップボードにコピーされました!
この更新では、
tkn [pipeline | pipelinerun] exportコマンドは、パイプラインまたはパイプライン実行を YAML ファイルとしてエクスポートします。以下に例を示します。openshift-pipelinesnamespace にtest_pipelineという名前のパイプラインをエクスポートします。tkn pipeline export test_pipeline -n openshift-pipelines
$ tkn pipeline export test_pipeline -n openshift-pipelinesCopy to Clipboard Copied! Toggle word wrap Toggle overflow openshift-pipelinesnamespace にtest_pipeline_runという名前のパイプラインランをエクスポートします。tkn pipelinerun export test_pipeline_run -n openshift-pipelines
$ tkn pipelinerun export test_pipeline_run -n openshift-pipelinesCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
この更新により、
--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.7.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に設定することにより、コミュニティークラスタータスクのインストールを無効にできるようになりました。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow この更新では、
TektonConfigカスタムリソースのenable-devconsole-integrationフラグをfalseに設定することで、Tekton Hub と Developer パースペクティブの統合を無効にできます。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
今回の更新により、
operator-config.yaml設定マップにより、tkn versionコマンドの出力で Operator バージョンを表示できるようになります。 -
この更新により、
argocd-task-sync-and-waitタスクのバージョンがv0.2に変更されます。 -
この
TektonConfigCRD の更新により、oc get tektonconfigコマンドは OPerator のバージョンを表示します。 - この更新により、サービスモニターがトリガーメトリクスに追加されます。
1.7.1.5. ハブ リンクのコピーリンクがクリップボードにコピーされました!
Tekton Hub をクラスターにデプロイすることは、テクノロジープレビュー機能です。
Tekton Hub は、CI/CD ワークフローの再利用可能なタスクとパイプラインを検出、検索、および共有するのに役立ちます。Tekton Hub のパブリックインスタンスは、hub.tekton.dev で利用できます。
Red Hat OpenShift Pipelines 1.7 を確認しながら、クラスター管理者は Tekton Hub のカスタムインスタンスをエンタープライズクラスターにインストールしてデプロイすることもできます。組織に固有の再利用可能なタスクとパイプラインを使用してカタログをキュレートできます。
1.7.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.7.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)。 -
tknCLI ツール用のtkn pacプラグイン。これを使用して Pipelines as Code リポジトリーとブートストラップを管理できます。 - GitHub アプリケーション、GitHub Webhook、Bitbucket Server、および Bitbucket Cloud のサポート。
1.7.2. 非推奨の機能 リンクのコピーリンクがクリップボードにコピーされました!
-
重大な変更: この更新により、
TektonConfigカスタムリソース (CR) からdisable-working-directory-overwriteおよびdisable-home-env-overwriteフィールドが削除されます。その結果、TektonConfigCR は$HOME環境変数とworkingDirパラメーターを自動的に設定しなくなりました。タスクカスタムリソース定義 (CRD) のenvおよびworkingDirフィールドを使用して、引き続き$HOME環境変数とworkingDirパラメーターを設定できます。
-
Conditionsカスタムリソース定義 (CRD) タイプは非推奨であり、将来のリリースで削除される予定です。代わりに、推奨されるWhen式を使用してください。
-
重大な変更:
EventListenerとTriggerBindingの値を指定しない場合、Triggersリソースはテンプレートを検証し、エラーを生成します。
1.7.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イメージストリームを使用すると、以下のエラーが生成されるため、使用できません。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
暗黙的なパラメーターマッピングは、最上位の
PipelineまたはPipelineRun定義からtaskRefタスクにパラメーターを誤って渡します。マッピングは、トップレベルのリソースからインラインtaskSpec仕様のタスクにのみ行う必要があります。この問題は、TektonConfigカスタムリソース定義のpipelineセクションでenable-api-fieldsフィールドをalphaに設定することにより、この機能が有効になっているクラスターにのみ影響します。
1.7.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 serveCLI Pod はインフラノードでスケジュールされます。 - この更新では、指定されたバージョンのクラスタータスクはアップグレード中に削除されません。
1.7.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.7.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.7.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.7.6.1. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
-
openshift-pipelinesnamespace の Tekton Chains のchains-config設定マップは、Red Hat OpenShift Pipelines Operator のアップグレード後に自動的にデフォルト値にリセットされます。現在、この問題に対する回避策はありません。
1.7.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 roleReferror 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 roleRefCopy to Clipboard Copied! Toggle word wrap Toggle overflow 今回の更新により、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)"
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)"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 今回の更新により、
pipelines-sccセキュリティーコンテキスト制約 (SCC) は、BuildahおよびS2Iクラスタータスクに必要なSETFCAP機能と互換性が確保されています。その結果、BuildahおよびS2Iビルドタスクを正常に実行できます。さまざまな言語やフレームワークで書かれたアプリケーションに対して
BuildahクラスタータスクおよびS2Iビルドタスクを正常に実行するには、buildやpushなどの適切なstepsオブジェクトに以下のスニペットを追加します。securityContext: capabilities: add: ["SETFCAP"]securityContext: capabilities: add: ["SETFCAP"]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.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.7.7.1. 修正された問題 リンクのコピーリンクがクリップボードにコピーされました!
-
今回の更新前は、いずれかの namespace が
Terminating状態の場合、RBAC リソースの作成時に Operator が失敗していました。今回の更新により、Operator はTerminating状態の namespace を無視し、RBAC リソースを作成します。 -
以前は、Red Hat OpenShift Pipelines Operator をアップグレードすると
pipelineサービスアカウントが再作成され、サービスアカウントにリンクされたシークレットが失われていました。今回の更新でこの問題が修正されています。アップグレード中に、Operator はpipelineサービスアカウントを再作成しなくなりました。その結果、pipelineサービスアカウントにアタッチされたシークレットはアップグレード後も保持され、リソース (タスクとパイプライン) は引き続き正しく機能します。