第4章 Pipelines

4.1. Red Hat OpenShift Pipelines リリースノート

Red Hat OpenShift Pipelines は、以下を提供する Tekton プロジェクトをベースとするクラウドネイティブの CI/CD エクスペリエンスです。

  • 標準の Kubernetes ネイティブパイプライン定義 (CRD)
  • CI サーバー管理のオーバーヘッドのないサーバーレスのパイプライン。
  • S2I、Buildah、JIB、Kaniko などの Kubernetes ツールを使用してイメージをビルドするための拡張性。
  • Kubernetes ディストリビューションでの移植性。
  • パイプラインと対話するための強力な CLI。
  • OpenShift Container Platform Web コンソールの Developer パースペクティブと統合されたユーザーエクスペリエンス。

Red Hat OpenShift Pipelines の概要は、Understanding OpenShift Pipelines を参照してください。

4.1.1. 互換性およびサポート表

現在、今回のリリースに含まれる機能には テクノロジープレビュー のものがあります。これらの実験的機能は、実稼働環境での使用を目的としていません。

以下の表では、機能は以下のステータスでマークされています。

TP

テクノロジープレビュー

GA

一般公開 (GA)

表4.1 互換性およびサポート表

Red Hat OpenShift Pipelines バージョンコンポーネントのバージョンOpenShift バージョンサポートステータス

Operator

パイプライン

トリガー

CLI

カタログ

チェーン

ハブ

Pipelines as Code

  

1.10

0.44.x

0.23.x

0.30.x

NA

0.15.x (TP)

1.12.x (TP)

0.17.x (GA)

4.10, 4.11, 4.12, 4.13

GA

1.9

0.41.x

0.22.x

0.28.x

NA

0.13.x (TP)

1.11.x (TP)

0.15.x (GA)

4.10, 4.11, 4.12, 4.13

GA

1.8

0.37.x

0.20.x

0.24.x

NA

0.9.0 (TP)

1.8.x (TP)

0.10.x (TP)

4.10、4.11、4.12

GA

1.7

0.33.x

0.19.x

0.23.x

0.33

0.8.0 (TP)

1.7.0 (TP)

0.5.x (TP)

4.9、4.10、4.11

GA

1.6

0.28.x

0.16.x

0.21.x

0.28

該当なし

該当なし

該当なし

4.9

GA

1.5

0.24.x

0.14.x (TP)

0.19.x

0.24

該当なし

該当なし

該当なし

4.8

GA

1.4

0.22.x

0.12.x (TP)

0.17.x

0.22

該当なし

該当なし

該当なし

4.7

GA

さらに、ARM ハードウェアでの Red Hat OpenShift Pipeline の実行のサポートは、テクノロジープレビュー機能 としてご利用いただけます。

質問やフィードバックについては、製品チームに pipelines-interest@redhat.com 宛のメールを送信してください。

4.1.2. 多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。

4.1.3. Red Hat OpenShift Pipelines General Availability 1.10 のリリースノート

今回の更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.10 が OpenShift Container Platform 4.11、4.12、および 4.13 で利用できるようになりました。

4.1.3.1. 新機能

以下では、修正および安定性の面での改善点に加え、OpenShift Pipelines 1.10 の主な新機能について説明します。

4.1.3.1.1. Pipelines
  • 今回の更新により、PipelineRun または TaskRun Pod テンプレートで環境変数を指定して、タスクまたはステップで設定されている変数を上書きまたは追加できるようになりました。また、デフォルトの Pod テンプレートで環境変数を指定して、それらの変数をすべての PipelineRuns および TaskRuns に対してグローバルに使用することもできます。今回の更新では、Pod テンプレートからの伝播中に環境変数をフィルター処理する、 obhibited-envs という名前の新しいデフォルト設定も追加されています。
  • 今回の更新により、パイプラインのカスタムタスクがデフォルトで有効になります。

    注記

    この更新を無効にするには、feature-flags config カスタムリソースで enable-custom-tasks フラグを false に設定します。

  • この更新プログラムは、カスタムタスクの v1beta1.CustomRun API バージョンをサポートします。
  • 今回の更新により、カスタム実行を作成するための PipelineRun reconcilerのサポートが追加されました。たとえば、custom-task-version 機能フラグがデフォルト値の v1alpha1 ではなく v1beta1 に設定されている場合、PipelineRuns から作成されたカスタム TaskRunv1alpha1.Run の代わりに v1beta1.CustomRun API バージョンを使用できるようになりました。

    注記

    v1beta1.CustomRun 要求に応答するには 、*v1alpha1.Run ではなく *v1beta1.CustomRun API バージョンをリッスンするようにカスタムタスクコントローラーを更新する必要があります。

  • この更新により、新しい retries フィールドが v1beta1.TaskRun および v1.TaskRun 仕様に追加されます。
4.1.3.1.2. トリガー
  • 今回の更新により、トリガーは、v1beta1 API バージョンの CustomRun オブジェクトと共に、v1 API バージョンの PipelinesTasksPipelineRuns、および TaskRuns オブジェクトの作成をサポートします。
  • 今回の更新により、GitHub Interceptor は、所有者または所有者による設定可能なコメントで呼び出されない限り、プルリクエストトリガーの実行をブロックします。

    注記

    この更新を有効または無効にするには、GitHub Interceptor 設定ファイルで githubOwners パラメーターの値を true または false に設定します。

  • 今回の更新により、GitHub Interceptor は、プッシュおよびプルリクエストイベント用に変更されたすべてのファイルのコンマ区切りのリストを追加できるようになりました。変更されたファイルのリストは、最上位の拡張フィールドのイベントペイロードの changed_files がプロパティーに追加されます。
  • 今回の更新により、TLS の MinVersiontls.VersionTLS12 に変更され、Federal Information Processing Standards (FIPS) モードが有効になっている場合に OpenShift Container Platform でトリガーが実行されるようになります。
4.1.3.1.3. CLI
  • 今回の更新で、TaskClusterTask または Pipeline が開始時に Container Storage Interface (CSI) ファイルをワークスペースとして渡すためのサポートが追加されました。
  • この更新により、タスク、パイプライン、パイプライン実行、およびタスク実行リソースに関連付けられたすべての CLI コマンドに v1 API サポートが追加されます。Tekton CLI は、これらのリソースの v1beta1v1 API の両方で動作します。
  • 今回の更新で、start コマンドと describe コマンドにオブジェクトタイプパラメーターのサポートが追加されました。
4.1.3.1.4. Operator
  • 今回の更新により、オプションのパイプラインプロパティーに default-forbidden-env パラメーターが追加されました。パラメーターには、Pod テンプレートを介して提供された場合に伝播されるべきではない、禁止された環境変数が含まれています。
  • この更新により、Tekton Hub UI でのカスタムロゴのサポートが追加されます。カスタムロゴを追加するには、customLogo パラメーターの値を、Tekton Hub CR の base64 でエンコードされたロゴの URI に設定します。
  • この更新により、git-clone タスクのバージョン番号が 0.9 に増加します。
4.1.3.1.5. Tekton Chains
重要

Tekton Chains はテクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

  • 今回の更新により、PipelineRun および TaskRun 設定証明にアノテーションとラベルが追加されました。
  • この更新により、slsa/v1 という名前の新しい形式が追加されます。これは、in-toto 形式で要求したときに生成されるものと同じ来歴を生成します。
  • 今回の更新により、Sigstore 機能が実験的機能から除外されました。
  • 今回の更新により、predicate.materials 関数に、TaskRun オブジェクトのすべてのステップとサイドカーからのイメージ URI とダイジェスト情報が含まれるようになりました。
4.1.3.1.6. Tekton Hub
重要

Tekton Hub はテクノロジープレビュー機能としてのみ提供されます。テクノロジープレビュー機能は、Red Hat 製品サービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

  • この更新は、クラスターでの v1 API バージョンの Tekton リソースのインストール、アップグレード、またはダウングレードをサポートします。
  • この更新では、UI の Tekton Hub ロゴの代わりにカスタムロゴを追加できます。
  • 今回の更新では、アーティファクトハブからリソースを取得してクラスターにインストールする --type アーティファクト フラグを追加することで、tkn ハブインストール コマンドの機能を拡張します。
  • 今回の更新により、Artifact Hub からクラスターにインストールされるリソースにラベルとしてサポート層、カタログ、および組織情報が追加されます。
4.1.3.1.7. Pipelines as Code
  • この更新により、着信 Webhook のサポートが強化されます。OpenShift Container Platform クラスターにインストールされた GitHub アプリケーションの場合、受信 Webhook に git_provider 仕様を提供する必要はありません。代わりに、Pipelines as Code がシークレットを検出し、それを着信 Webhook に使用します。
  • 今回の更新により、同じトークンを使用して、GitHub 上の同じホストからデフォルト以外のブランチでリモートタスクを取得できるようになりました。
  • 今回の更新により、Pipelines as Code は Tekton v1 テンプレートをサポートします。v1 および v1beta1 テンプレートを使用できます。これは、Pipelines as Code が PR 生成のために読み取るものです。PR はクラスターで v1 として作成されます。
  • この更新の前は、OpenShift コンソール UI は、OpenShift namespace でランタイムテンプレートが見つからない場合、ハードコーディングされたパイプライン実行テンプレートをフォールバックテンプレートとして使用していました。Pipelines-as-Code config map のこの更新により、使用するコンソール用に、pipelines-as-code-template-default という名前の新しいデフォルトのパイプライン実行テンプレートが提供されます。
  • 今回の更新により、Pipelines as Code は Tekton Pipelines 0.44.0 最小ステータスをサポートします。
  • 今回の更新により、Pipelines as Code は Tekton v1 API をサポートします。これは、Pipelines as Code が Tekton v0.44 以降と互換性を持つようになったことを意味します。
  • 今回の更新により、OpenShift のコンソールと k8s の Tekton ダッシュボードの設定に加えて、カスタムコンソールダッシュボードを設定できるようになりました。
  • 今回の更新により、Pipelines as Code は tkn pac create repo コマンドを使用して開始された GitHub アプリケーションのインストールを検出し、グローバルにインストールされている場合は GitHub Webhook を必要としません。
  • この更新の前は、PipelineRun にアタッチされたタスクではなく PipelineRun の実行でエラーが発生した場合、Pipelines as Code は失敗を適切に報告しませんでした。今回の更新により、コードとしてのパイプラインは、PipelineRun を作成できなかった場合に GitHub チェックでエラーを適切に報告します。
  • 今回の更新により、Pipelines as Code には、PipelineRun が実行される現在実行中の namespace にデプロイメントされる target_namespace 変数が含まれています。
  • 今回の更新により、Pipelines as Code を使用すると、CLI ブートストラップ GitHub アプリケーションで GitHub エンタープライズの質問をバイパスできます。
  • 今回の更新により、Pipelines as Code はリポジトリー CR が見つからない場合にエラーを報告しなくなりました。
  • 今回の更新により、Pipelines as Code は、同じ名前の複数のパイプライン実行が見つかった場合にエラーを報告します。

4.1.3.2. 互換性を失わせる変更点

  • 今回の更新により、以前のバージョンの tkn コマンドは Red Hat OpenShift Pipelines 1.10 と互換性がなくなりました。
  • この更新により、Tekton CLI から Cluster および CloudEvent パイプラインリソースのサポートが削除されます。tkn pipelineresource create コマンドを使用してパイプラインリソースを作成することはできません。また、パイプラインリソースは、タスク、クラスタータスク、またはパイプラインの start コマンドでサポートされなくなりました。
  • この更新により、Tekton Chains から来歴フォーマットとしての tekton が削除されます。

4.1.3.3. 非推奨および削除された機能

  • Red Hat OpenShift Pipelines 1.10 では、ClusterTask コマンドが非推奨になり、将来のリリースで削除される予定です。tkn task create コマンドも、この更新で非推奨になりました。
  • Red Hat OpenShift Pipelines 1.10 では、v1 API がパイプラインリソースをサポートしていないため、tkn task start コマンドで使用されたフラグ -i および -o は非推奨になりました。
  • Red Hat OpenShift Pipelines 1.10 では、v1 API がパイプラインリソースをサポートしていないため、tkn pipeline start コマンドで使用されたフラグ -r は非推奨になりました。
  • Red Hat OpenShift Pipelines 1.10 の更新では、openshiftDefaultEmbeddedStatus パラメーターが full 埋め込みステータスと min 埋め込みステータスの both に設定されます。デフォルトの埋め込みステータスを変更するフラグも非推奨であり、削除されます。さらに、パイプラインのデフォルトの埋め込みステータスは、将来のリリースで minimal に変更される予定です。

4.1.3.4. 既知の問題

  • この更新には、以下の下位互換性のない変更が含まれています。

    • PipelineResources クラスターの削除
    • PipelineResources クラウドイベントの削除
  • クラスターのアップグレード後にパイプラインメトリック機能が動作しない場合は、回避策として次のコマンドを実行します。

    $ oc get tektoninstallersets.operator.tekton.dev | awk '/pipeline-main-static/ {print $1}' | xargs oc delete tektoninstallersets
  • 今回の更新により、Crunchy PostgreSQL などの外部データベースの使用は、IBM Power、IBM Z、および {linuxoneProductName} ではサポートされなくなりました。代わりに、デフォルトの Tekton Hub データベースを使用してください。

4.1.3.5. 修正された問題

  • この更新の前は、opc pac コマンドはヘルプを表示する代わりにランタイムエラーを生成していました。今回の更新により、opc pac コマンドがヘルプメッセージを表示するように修正されました。
  • この更新の前は、tkn pac create repo コマンドを実行するには、リポジトリーを作成するための webhook の詳細が必要でした。今回の更新により、GitHub アプリケーションがインストールされている場合、tkn-pac create repo コマンドは Webhook を設定しません。
  • この更新の前は、Tekton Pipelines で PipelineRun リソースの作成に問題があった場合、Pipelines as Code はパイプライン実行の作成エラーを報告しませんでした。たとえば、パイプラインの実行に存在しないタスクは、ステータスを表示しません。今回の更新により、Pipelines as Code は、欠落しているタスクとともに Tekton Pipelines からの適切なエラーメッセージを表示します。
  • この更新プログラムは、認証が成功した後の UI ページのリダイレクトを修正します。これで、Tekton Hub にログインしようとしたのと同じページにリダイレクトされます。
  • 今回の更新では、クラスタータスク、個々のタスク、およびパイプラインに対して、これらのフラグ --all-namespaces および --output=yaml を使用した list コマンドが修正されました。
  • 今回の更新により、repo.spec.url URL の末尾にあるスラッシュが削除され、GitHub からの URL と一致するようになりました。
  • この更新の前は、marshalJSON 関数はオブジェクトのリストをマーシャリングしませんでした。今回の更新で、marshalJSON 関数はオブジェクトのリストをマーシャリングします。
  • 今回の更新により、Pipelines as Code を使用すると、CLI ブートストラップ GitHub アプリケーションで GitHub エンタープライズの質問をバイパスできます。
  • この更新により、リポジトリーに 100 人を超えるユーザーがいる場合の GitHub コラボレーターチェックが修正されます。
  • 今回の更新により、タスクまたはパイプラインの sign および verify コマンドは、kubernetes 設定ファイルなしで機能するようになりました。
  • 今回の更新により、namespace でプルーナーがスキップされた場合、Tekton Operator は残りのプルーナー cron ジョブをクリーンアップします。
  • この更新の前に、API ConfigMap オブジェクトは、カタログ更新間隔のユーザー設定値で更新されませんでした。この更新により、Tekon Hub CR の CATALOG_REFRESH_INTERVAL API が修正されます。
  • この更新プログラムは、EmbeddedStatus 関数フラグを変更するときの PipelineRunStatus の調整を修正します。この更新により、次のパラメーターがリセットされます。

    • status.runs および status.taskruns パラメーターを最小の EmbeddedStatusnil に設定
    • full EmbeddedStatusstatus.childReferences パラメーターを nil
  • 今回の更新で、ResolutionRequest CRD に変換設定が追加されました。この更新により、v1alpha1.ResolutionRequest リクエストから v1beta1.ResolutionRequest リクエストへの変換が適切に設定されます。
  • この更新プログラムは、パイプラインタスクに関連付けられている重複したワークスペースをチェックします。
  • この更新により、コードでリゾルバーを有効にするためのデフォルト値が修正されます。
  • この更新プログラムは、リゾルバーを使用した TaskRef および PipelineRef 名の変換を修正します。

4.1.3.6. Red Hat OpenShift Pipelines General Availability 1.10.1 のリリースノート

今回の更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.10.1 が OpenShift Container Platform 4.11、4.12、および 4.13 で利用できるようになりました。

4.1.3.6.1. Pipelines as Code の修正された問題
  • この更新の前は、ペイロードからのソースブランチ情報に refs/heads/ が含まれていたが、ユーザーが設定したターゲットブランチにブランチ名 main のみが CEL 式に含まれていた場合、プッシュリクエストは失敗していました。今回の更新により、ベースブランチまたはターゲットブランチのペイロードに refs/heads/ がある場合、Pipelines as Code はプッシュリクエストを渡し、パイプラインをトリガーします。
  • この更新の前は、PipelineRun オブジェクトを作成できなかった場合、Tekton コントローラーから受け取ったエラーがユーザーに報告されませんでした。今回の更新により、Pipelines as Code はエラーメッセージを GitHub インターフェイスに報告し、ユーザーがエラーをトラブルシューティングできるようにします。Pipelines as Code は、パイプラインの実行中に発生したエラーも報告します。
  • 今回の更新により、Pipelines as Code は、インフラストラクチャーの問題により OpenShift Container Platform クラスターでシークレットを作成できなかった場合に、シークレットを GitHub のチェックインターフェイスにエコーしません。
  • 今回の更新により、使用されなくなった非推奨の API が Red Hat OpenShift Pipelines から削除されます。

4.1.3.7. Red Hat OpenShift Pipelines General Availability 1.10.2 のリリースノート

今回の更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.10.2 が OpenShift Container Platform 4.11、4.12、および 4.13 で利用できるようになりました。

4.1.3.7.1. 修正された問題

この更新前は、Tekton Operator の問題により、ユーザーは enable-api-fields フラグの値を beta に設定できませんでした。今回の更新でこの問題が修正されています。TektonConfig CR で、enable-api-fields フラグの値を beta に設定できるようになりました。

4.1.3.8. Red Hat OpenShift Pipelines General Availability 1.10.3 のリリースノート

今回の更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.10.3 が OpenShift Container Platform 4.11、4.12、および 4.13 で利用できるようになりました。

4.1.3.8.1. 修正された問題

この更新前は、Tekton Operator はカスタマイズのためのパフォーマンス設定フィールドを公開していませんでした。この更新により、クラスター管理者は、ニーズに基づいて TektonConfig CR の次のパフォーマンス設定フィールドをカスタマイズできます。

  • disable-ha
  • buckets
  • kube-api-qps
  • kube-api-burst
  • threads-per-controller

4.1.3.9. Red Hat OpenShift Pipelines General Availability 1.10.4 のリリースノート

今回の更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.10.4 が OpenShift Container Platform 4.11、4.12、および 4.13 で利用できるようになりました。

4.1.3.9.1. 修正された問題
  • この更新により、パイプライン実行における PipelineRef フィールドのバンドルリゾルバー変換の問題が修正されます。現在、変換機能は、変換後に kind フィールドの値を Pipeline に設定します。
  • この更新前は、pipelinerun.timeouts フィールドは timeouts.pipeline 値にリセットされ、timeouts.tasks 値と timeouts.finally 値は無視されました。この更新により問題が修正され、PipelineRun リソースの正しいデフォルトのタイムアウト値が設定されます。
  • この更新前は、コントローラーのログに不要なデータが含まれていました。今回の更新でこの問題が修正されています。

4.1.3.10. Red Hat OpenShift Pipelines General Availability 1.10.5 のリリースノート

今回の更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.10.5 が OpenShift Container Platform 4.11、4.12、4.13 に加え、4.10 でも利用できるようになりました。

重要

Red Hat OpenShift Pipelines 1.10.5 は、OpenShift Container Platform 4.10、4.11、4.12、および 4.13 の pipelines-1.10 チャネルでのみ使用できます。OpenShift Container Platform バージョンの latest チャネルでは利用できません。

4.1.3.10.1. 修正された問題
  • この更新が行われる前は、oc および tkn コマンドを使用しても、大規模なパイプライン実行がリストされたり、削除されませんでした。この更新では、この問題の原因となっていた巨大なアノテーションを圧縮することで、この問題を軽減します。圧縮後もパイプラインの実行が大きすぎる場合は、同じエラーが再発することに注意してください。
  • この更新より前は、pipelineRun.spec.taskRunSpecs.podTemplate オブジェクトで指定された Pod テンプレートのみがパイプライン実行の対象となります。この更新により、pipelineRun.spec.podTemplate オブジェクトで指定された Pod テンプレートも考慮され、pipelineRun.spec.taskRunSpecs.podTemplate オブジェクトで指定されたテンプレートとマージされます。

4.1.4. Red Hat OpenShift Pipelines General Availability 1.9 のリリースノート

今回の更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.9 が OpenShift Container Platform 4.11、4.12、および 4.13 で利用できるようになりました。

4.1.4.1. 新機能

以下では、修正および安定性の面での改善点に加え、OpenShift Pipelines 1.9 の主な新機能について説明します。

4.1.4.1.1. Pipelines
  • 今回の更新により、パイプラインパラメーターと結果を配列とオブジェクトディクショナリー形式で指定できるようになりました。
  • この更新により、Container Storage Interface (CSI) およびワークスペースの projected ボリュームがサポートされます。
  • 今回の更新により、パイプラインステップを定義するときに stdoutConfig および stderrConfig パラメーターを指定できるようになりました。これらのパラメーターを定義すると、ステップに関連付けられた標準出力と標準エラーをローカルファイルにキャプチャーするのに役立ちます。
  • 今回の更新により、steps.onError イベントハンドラーに $(params.CONTINUE) などの変数を追加できるようになりました。
  • 今回の更新により、PipelineResults 定義で finally タスクからの出力を使用できるようになりました。たとえば $(finally.<pipelinetask-name>.result.<result-name>) では、<pipelinetask-name> はパイプラインタスク名を表し、<result-name> は結果名を表します。
  • この更新では、タスク実行のタスクレベルのリソース要件をサポートがされます。
  • 今回の更新により、名前に基づいて、パイプラインと定義されたタスクの間で共有されるパラメーターを再作成する必要がなくなりました。この更新は、開発者プレビュー機能の一部です。
  • この更新により、組み込みの git、クラスター、バンドル、およびハブリゾルバーなどのリモート解決のサポートが追加されます。
4.1.4.1.2. トリガー
  • 今回の更新では、NamespacedInterceptor を定義する Interceptor CRD が追加されました。NamespacedInterceptor は、トリガー内のインターセプター参照の kind セクションまたは EventListener 仕様で使用できます。
  • この更新により CloudEvents が有効になります。
  • 今回の更新により、トリガーを定義するときに Webhook ポート番号を設定できるようになりました。
  • 今回の更新では、トリガー eventID を使用した TriggerBinding への入力がサポートされるようになりました。
  • この更新では、ClusterInterceptor サーバーの証明書の検証とローテーションがサポートされています。 

    • トリガーは、コアインターセプターの証明書を検証し、証明書の有効期限が切れると新しい証明書を ClusterInterceptor にローテーションします。
4.1.4.1.3. CLI 
  • 今回の更新では、describe コマンドでのアノテーションの表示がサポートされています。
  • 今回の更新では、pr describe コマンドでのパイプライン、タスク、およびタイムアウトの表示がサポートされています。
  • 今回の更新では、pipeline start コマンドでパイプライン、タスク、およびタイムアウトを提供するフラグが追加されました。
  • 今回の更新では、タスクとパイプラインの describe コマンドで、オプションまたは必須のワークスペースの存在を表示できるようになりました。
  • 今回の更新では、タイムスタンプ付きのログを表示するための timestamps フラグが追加されました。
  • 今回の更新では、PipelineRun に関連付けられた TaskRun の削除を無視する新しいフラグ --ignore-running-pipelinerun が追加されました。
  • 今回の更新では、実験的なコマンドのサポートが追加されました。今回の更新では、試験的なサブコマンドである signverifytkn CLI ツールに追加されました。
  • 今回の更新では、ファイルを生成せずに Z シェル (Zsh) 補完機能を使用できるようになりました。
  • 今回の更新では、opc という新しい CLI ツールが導入されました。今後のリリースで、tkn CLI ツールが opc に置き換えられることが予想されます。

    重要
    • 新しい CLI ツール opc はテクノロジープレビュー機能です。
    • opctkn の代替となり、Red Hat OpenShift Pipelines 固有の追加機能を備えていますが、それらは必ずしも tkn に適合するとは限りません。
4.1.4.1.4. Operator
  • 今回の更新により、Pipelines as Code がデフォルトでインストールされます。-p フラグを使用して、Pipelines as Code を無効にすることができます。

    $ oc patch tektonconfig config --type="merge" -p '{"spec": {"platforms": {"openshift":{"pipelinesAsCode": {"enable": false}}}}}'
  • 今回の更新により、TektonConfig CRD で Pipelines as Code 設定の変更も可能になりました。
  • 今回の更新により、開発者パースペクティブを無効にした場合に Operator が開発者コンソール関連のカスタムリソースをインストールしなくなりました。
  • 今回の更新には、Bitbucket Server および Bitbucket Cloud の ClusterTriggerBinding サポートが含まれており、クラスター全体で TriggerBinding を再利用するのに役立ちます。
4.1.4.1.5. リゾルバー
重要

リゾルバーはテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

  • 今回の更新により、TektonConfig CRD でパイプラインリゾルバーを設定できるようになりました。パイプラインリゾルバー enable-bundles-resolverenable-cluster-resolverenable-git-resolverenable-hub-resolver を、有効または無効にできます。

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      pipeline:
        enable-bundles-resolver: true
        enable-cluster-resolver: true
        enable-git-resolver: true
        enable-hub-resolver: true
    ...

    TektonConfig でリゾルバー固有の設定も指定できます。たとえば、次のフィールドを mapstringstring 形式で定義して、個々のリゾルバーを設定できます。

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      pipeline:
        bundles-resolver-config:
          default-service-account: pipelines
        cluster-resolver-config:
          default-namespace: test
        git-resolver-config:
          server-url: localhost.com
        hub-resolver-config:
          default-tekton-hub-catalog: tekton
    ...
4.1.4.1.6. Tekton Chains
重要

Tekton Chains はテクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

  • この更新の前は、Open Container Initiative (OCI) イメージのみが in-toto 出所エージェントの TaskRun の出力としてサポートされていました。この更新では、ARTIFACT_URI および ARTIFACT_DIGEST の接尾辞を使用して、出所メタデータが出力として追加されます。
  • この更新の前は、TaskRun 構成証明のみがサポートされていました。この更新では、PipelineRun 構成証明のサポートも追加されます。
  • この更新では、Pod テンプレートから imgPullSecret パラメーターを取得するための Tekton Chains のサポートが追加されます。この更新により、サービスアカウントを変更せずに、各パイプライン実行またはタスク実行に基づいてリポジトリー認証を設定できます。
4.1.4.1.7. Tekton Hub
重要

Tekton Hub はテクノロジープレビュー機能としてのみ提供されます。テクノロジープレビュー機能は、Red Hat 製品サービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

  • この更新では、管理者は、デフォルトの Tekton Hub データベースを使用する代わりに、Crunchy PostgreSQL などの外部データベースを Tekton Hub で 使用できるようになりました。この更新は、次のアクションを実行するのに役立ちます。

    • Tekton Hub で使用する外部データベースの座標指定。
    • Operator によってデプロイされたデフォルトの Tekton Hub データベースの無効化。
  • この更新では、外部 Git リポジトリーから config.yaml の依存関係が削除され、完全な設定データが API ConfigMap に移動されます。この更新は、管理者が次のアクションを実行するのに役立ちます。

    • Tekton Hub カスタムリソースへの、カテゴリー、カタログ、スコープ、defaultScopes などの設定データの追加。
    • クラスター上の Tekton Hub 設定データの変更。すべての変更は、Operator をアップグレードしても保持されます。
    • Tekton Hub のカタログリストの更新。
    • Tekton Hub のカテゴリーの変更。

      注記

      設定データを追加しない場合は、Tekton Hub 設定用の API ConfigMap のデフォルトデータを使用できます。

4.1.4.1.8. Pipelines as Code
  • この更新では、Repository CRD で同時実行制限のサポートが追加され、一度にリポジトリーで実行される PipelineRuns の最大数が定義できます。プルリクエストまたはプッシュイベントからの PipelineRun は、アルファベット順にキューに入れられます。
  • この更新では、リポジトリーの最新パイプライン実行のログを表示するための新しいコマンド tkn pac logs が追加されます。
  • この更新では、GitHub および GitLab へのプッシュリクエストとプルリクエストのファイルパスにおける高度なイベントマッチングがサポートされています。たとえば、docs ディレクトリー内のマークダウンファイルのパスが変更された場合にのみ、Common Expression Language (CEL) を使用してパイプラインを実行できます。

      ...
      annotations:
         pipelinesascode.tekton.dev/on-cel-expression: |
          event == "pull_request" && "docs/*.md".pathChanged()
  • 今回の更新により、アノテーションを使用して、pipelineRef: オブジェクトでリモートパイプラインを参照できるようになります。
  • 今回の更新により、Pipelines as Code を使用して新しい GitHub リポジトリーを自動設定できるようになります。これにより、namespace が設定され、GitHub リポジトリーの Repository CRD が作成されます。
  • 今回の更新により、Pipelines as Code は、プロバイダー情報を使用して PipelineRuns のメトリクスを生成します。
  • この更新では、tkn-pac プラグインに次の機能拡張が提供されます。

    • 実行中のパイプラインを正しく検出します。
    • 障害完了時間がない場合に期間表示を修正します。
    • エラースニペットを表示し、tkn-pac describe コマンドのエラー正規表現パターンを強調表示します。
    • use-real-time スイッチを tkn-pac ls および tkn-pac describe コマンドに追加します。
    • tkn-pac ログのドキュメントをインポートします。
    • tkn-pac ls および tkn-pac describe コマンドで、pipelineruntimeout を失敗として表示します。
    • --target-pipelinerun オプションを使用して、特定のパイプライン実行の失敗を表示します。
  • 今回の更新により、バージョン管理システム (VCS) コメントまたは GitHub チェックの小さなスニペットの形式で、パイプライン実行のエラーを表示できます。
  • 今回の更新により、Pipelines as Code は、タスクが単純な形式である場合にオプションでタスク内のエラーを検出し、それらのタスクを GitHub のアノテーションとして追加できます。この更新は、開発者プレビュー機能の一部です。
  • この更新では、次の新しいコマンドが追加されます。

    • tkn-pac webhook add: プロジェクトリポジトリー設定に Webhook を追加し、リポジトリーを更新せずに、既存の k8s Secret オブジェクトの webhook.secret キーを更新します。
    • tkn-pac webhook update-token: リポジトリーを更新せずに、既存の k8s Secret オブジェクトのプロバイダートークンを更新します。
  • この更新により、tkn-pac create repo コマンドの機能が強化されます。このコマンドは、GitHub、GitLab、および BitbucketCloud の Webhook を作成および設定し、リポジトリーを作成します。
  • この更新により、tkn-pac describe コマンドは 50 件の最新イベントが順に表示されます。
  • この更新では、tkn-pac logs コマンドに --last オプションが追加されます。
  • この更新により、tkn-pac resolve コマンドは、ファイルテンプレートで git_auth_secret を検出すると、トークンの入力を求めます。
  • この更新により、Pipelines as Code はシークレットをログスニペットから非表示にして、GitHub インターフェイスでシークレットが公開されるのを回避します。
  • この更新により、git_auth_secret に対して自動的に生成されるシークレットは、PipelineRun による所有者参照になります。シークレットは、パイプライン実行の実行後ではなく、PipelineRun で消去されます。
  • この更新により、/cancel コメントを使用したパイプライン実行のキャンセルがサポートされます。
  • この更新の前は、GitHub アプリのトークンスコープが定義されておらず、すべてのリポジトリーインストールでトークンが使用されていました。この更新により、次のパラメーターを使用して、GitHub アプリトークンの範囲をターゲットリポジトリーに設定できます。

    • secret-github-app-token-scoped: アプリのインストールがアクセスできるすべてのリポジトリーではなく、ターゲットリポジトリーにアプリトークンのスコープを設定します。
    • secret-github-app-scope-extra-repos: 追加の所有者またはリポジトリーを使用して、アプリトークンのスコープをカスタマイズします。
  • この更新により、GitLab でホストされている独自の Git リポジトリーで Pipelines as Code を使用できるようになります。
  • この更新により、namespace の kubernetes イベント形式でパイプライン実行の詳細にアクセスできるようになります。その詳細は、admin namespace へのアクセスを必要とせずにパイプラインエラーをトラブルシューティングするのに役立ちます。
  • この更新により、Git プロバイダーを使用した Pipelines as Code での URL 認証がサポートされます。
  • この更新により、pipelines-as-code config map の設定を使用して、ハブカタログの名前を設定できるようになります。
  • この更新により、max-keep-run パラメーターの上限とデフォルトの制限を設定できるようになります。
  • 今回の更新では、Pipelines as Code にカスタム Secure Sockets Layer (SSL) 証明書を挿入し、カスタム証明書を使用してプロバイダーインスタンスに接続する方法を説明したドキュメントが追加されます。
  • この更新により、PipelineRun リソース定義にログ URL がアノテーションとして含まれるようになります。たとえば、tkn-pac describe コマンドは、PipelineRun を記述するときにログリンクを表示します。
  • 今回の更新により、tkn-pac ログに PipelineRun 名ではなくリポジトリー名が表示されるようになります。

4.1.4.2. 互換性を失わせる変更点

  • 今回の更新では、Conditions カスタムリソース定義 (CRD) タイプが削除されました。代わりに WhenExpressions を使用します。
  • 今回の更新では、Pipeline、PipelineRun、Task、Clustertask、TaskRun などの tekton.dev/v1alpha1 API パイプラインリソースのサポートが削除されました。
  • 今回の更新では、tkn-pac setup コマンドが削除されました。代わりに、tkn-pac webhook add コマンドを使用して、Webhook を既存の Git リポジトリーに再度追加します。また、tkn-pac webhook update-token コマンドを使用して、Git リポジトリー内の既存のシークレットオブジェクトの個人プロバイダーアクセストークンを更新します。
  • 今回の更新により、デフォルト設定でパイプラインを実行する namespace は、pod-security.kubernetes.io/enforce:privileged ラベルをワークロードに適用しません。

4.1.4.3. 非推奨および削除された機能

  • Red Hat OpenShift Pipelines 1.9.0 リリースでは、ClusterTasks が非推奨となり、今後のリリースで削除される予定です。代わりに、Cluster Resolver を使用できます。
  • Red Hat OpenShift Pipelines 1.9.0 リリースでは、単一の EventListener 仕様で triggersnamespaceSelector フィールドを使用することは推奨されておらず、今後のリリースで削除される予定です。これらのフィールドは、異なる EventListener 仕様では正常に使用できます。
  • Red Hat OpenShift Pipelines 1.9.0 リリースでは、tkn pipelinerun describe コマンドは PipelineRun リソースのタイムアウトを表示しません。
  • Red Hat OpenShift Pipelines 1.9.0 リリースでは、PipelineResource カスタムリソース (CR) が非推奨になりました。PipelineResource CR はテクノロジープレビュー機能であり、tekton.dev/v1alpha1 API の一部でした。
  • Red Hat OpenShift Pipelines 1.9.0 リリースでは、クラスタータスクからのカスタムイメージパラメーターは非推奨になりました。代わりとして、クラスタータスクをコピーして、その中でカスタムイメージを使用できます。

4.1.4.4. 既知の問題

  • Red Hat OpenShift Pipelines Operator をアンインストールすると、chains-secret および chains-config config map が削除されます。これらにはユーザーデータが含まれているため、削除せずに保持する必要があります。
  • Windows でコマンドの tkn pac セットを実行すると、Command finished with error: not supported by Windows. のエラーメッセージが表示される場合があります。

    回避策: NO_COLOR 環境変数を true に設定します。

  • tkn pac resolve コマンドがテンプレート化されたパラメーター値を使用して機能する場合、tkn pac resolve -f <filename> | oc create -f コマンドを実行しても、想定どおりの結果が得られない場合があります。

    回避策: この問題を軽減するには、tkn pac resolve -f <filename> -o tempfile.yaml コマンドを実行して tkn pac resolve の出力を一時ファイルに保存してから、oc create -f tempfile.yaml コマンドを実行します。例: tkn pac resolve -f <filename> -o /tmp/pull-request-resolved.yaml && oc create -f /tmp/pull-request-resolved.yaml

4.1.4.5. 修正された問題

  • この更新の前は、空の配列を置き換えた後、元の配列は中のパラメーターを無効にして空の文字列を返していました。今回の更新により、この問題は解決され、元の配列は空として返されます。
  • この更新の前は、パイプライン実行のサービスアカウントに重複するシークレットが存在すると、タスク Pod の作成に失敗していました。今回の更新により、この問題が解決され、サービスアカウントに重複するシークレットが存在する場合でもタスク Pod は正常に作成されるようになりました。
  • この更新の前は、TaskRun の spec.StatusMessage フィールドを見ても、TaskRun がユーザーによってキャンセルされたのか、その一部である PipelineRun によってキャンセルされたのかを区別できませんでした。今回の更新により、この問題は解決され、ユーザーは TaskRun の spec.StatusMessage フィールドを見て、TaskRun のステータスを区別できるようになりました。
  • この更新の前は、無効なオブジェクトの古いバージョンを削除すると、webhook の検証が削除されていました。今回の更新で、この問題は解決されました。
  • 今回の更新の前は、timeouts.pipeline パラメーターを 0 に設定すると、timeouts.tasks パラメーターまたは timeouts.finally パラメーターを設定できませんでした。今回の更新で問題が解決されました。これで、timeouts.pipeline パラメーター値を設定するときに、`timeouts.tasks` パラメーターまたは timeouts.finally パラメーターのいずれかの値を設定できます。以下に例を示します。

    yaml
    kind: PipelineRun
    spec:
      timeouts:
        pipeline: "0"  # No timeout
        tasks: "0h3m0s"
  • この更新の前は、別のツールが PipelineRun または TaskRun のラベルまたはアノテーションを更新すると、競合状態が発生する可能性がありました。今回の更新により、この問題は解決され、ラベルまたはアノテーションを結合できるようになりました。
  • この更新の前は、ログキーにパイプラインコントローラーと同じキーはありませんでした。今回の更新により、この問題は解決され、パイプラインコントローラーのログストリームと一致するようにログキーが更新されました。ログのキーは、ts から timestamp、level から severity、message から msg に変更されました。
  • この更新の前は、PipelineRun が不明ステータスで削除された場合、エラーメッセージは生成されませんでした。今回の更新により、この問題は解決され、エラーメッセージが生成されるようになります。
  • この更新の前は、listpush などのバンドルコマンドにアクセスするには、kubeconfig ファイルを使用する必要がありました。今回の更新により、この問題は解決され、kubeconfig ファイルはバンドルコマンドにアクセスする必要がなくなりました。
  • この更新の前は、TaskRun の削除中に親の PipelineRun が実行されていた場合、TaskRun が削除されていました。今回の更新により、この問題は解決され、親 PipelineRun が実行されていても TaskRuns は削除されなくなりました。
  • この更新の前は、ユーザーがパイプラインコントローラーで許可されているよりも多くのオブジェクトを含むバンドルのビルドを試みた場合、Tekton CLI はエラーメッセージを表示しませんでした。今回の更新により、この問題は解決され、ユーザーがパイプラインコントローラーで許可されている制限を超える数のオブジェクトを含むバンドルを構築しようとすると、Tekton CLI にエラーメッセージが表示されるようになります。
  • この更新の前は、クラスターから namespace が削除されても、operator は ClusterInterceptor ClusterRoleBinding サブジェクトから namespace を削除しませんでした。今回の更新により、この問題は解決され、operator は ClusterInterceptor ClusterRoleBinding サブジェクトから namespace を削除するようになります。
  • この更新の前は、デフォルトの Red Hat OpenShift Pipelines Operator インストールで、pipelines-scc-rolebinding security context constraint (SCC) ロールバインディングリソースがクラスターに残りました。今回の更新により、デフォルトの Red Hat OpenShift Pipelines Operator インストールで、pipelines-scc-rolebinding security context constraint (SCC) ロールバインディングリソースがクラスターから削除されるようになります。
  • この更新の前は、Pipelines as Code は Pipelines as Code ConfigMap オブジェクトから更新された値を取得しませんでした。今回の更新により、この問題は修正され、Pipelines as Code ConfigMap オブジェクトが新しい変更を検索するようになります。
  • この更新の前は、Pipelines as Code コントローラーは tekton.dev/pipeline ラベルが更新されるのを待たずに checkrun id ラベルを追加して、競合状態を引き起こしていました。今回の更新により、Pipelines as Code コントローラーは tekton.dev/pipeline ラベルが更新されるのを待ってから checkrun id ラベルを追加するようになりました。これは、競合状態の回避に役立ちます。
  • この更新の前は、git リポジトリーに PipelineRun がすでに存在する場合、tkn-pac create repo コマンドはそれをオーバーライドしませんでした。今回の更新では tkn-pac create コマンドが修正され、git リポジトリーに PipelineRun が存在する場合はそれをオーバーライドするようになり、問題は解決されました。
  • この更新の前は、tkn pac describe コマンドはすべてのメッセージの理由を表示しませんでした。今回の更新により、この問題は修正され、tkn pac describe コマンドはすべてのメッセージの理由を表示するようになります。
  • この更新の前は、アノテーションのユーザーが refs/head/rel-* などの正規表現形式を使用して値を指定した場合、プルリクエストは失敗していました。ベースブランチに refs/heads がないため、プルリクエストは失敗していました。今回の更新では接頭辞が追加され、一致するかどうかもチェックされます。これで問題が解決し、プルリクエストが成功するようになります。

4.1.4.6. Red Hat OpenShift Pipelines General Availability 1.9.1 のリリースノート

今回の更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.9.1 が OpenShift Container Platform 4.11、4.12、および 4.13 で利用できるようになりました。

4.1.4.7. 修正された問題

  • この更新の前は、tkn pac repo list コマンドは Microsoft Windows で実行できませんでした。今回の更新で問題が修正され、Microsoft Windows で tkn pac repo list コマンドを実行できるようになりました。
  • この更新の前は、Pipelines as Code ウォッチャーは設定変更イベントをすべて受信するわけではありませんでした。今回の更新により、Pipelines as Code ウォッチャーが更新され、Pipelines as Code ウォッチャーが設定変更イベントを見逃さなくなりました。
  • この更新の前は、Pipelines as Code によって作成された TaskRunsPipelineRuns などの Pod は、クラスター内のユーザーによって公開されたカスタム証明書にアクセスできませんでした。今回の更新で問題が修正され、クラスター内で TaskRuns または PipelineRuns Pod からカスタム証明書にアクセスできるようになりました。
  • この更新の前は、FIPS が有効になっているクラスターで、Trigger リソースで使用される tekton-triggers-core-interceptors コアインターセプターは、Pipelines Operator がバージョン 1.9 にアップグレードされた後に機能しませんでした。今回の更新で問題が解決されました。現在、OpenShift はすべてのコンポーネントに MInTLS 1.2 を使用しています。その結果、tekton-triggers-core-interceptors コアインターセプターが TLS バージョン 1.2 に更新され、その機能は正確に実行されるようになりました。
  • この更新の前は、内部 OpenShift イメージレジストリーでパイプライン実行を使用する場合、パイプライン実行定義でイメージへの URL をハードコーディングする必要がありました。以下に例を示します。

    ...
      - name: IMAGE_NAME
        value: 'image-registry.openshift-image-registry.svc:5000/<test_namespace>/<test_pipelinerun>'
    ...

    Pipelines as Code のコンテキストでパイプライン実行を使用する場合、ハードコーディングされた値により、異なるクラスターおよび namespace でパイプライン実行定義をしようできませんでした。

    今回の更新により、namespace とパイプライン実行名の値をハードコーディングする代わりに動的テンプレート変数を使用して、パイプライン実行定義を一般化できます。以下に例を示します。

    ...
      - name: IMAGE_NAME
        value: 'image-registry.openshift-image-registry.svc:5000/{{ target_namespace }}/$(context.pipelineRun.name)'
    ...
  • この更新の前は、Pipelines as Code は同じ GitHub トークンを使用して、デフォルトの GitHub ブランチの同じホストでのみ使用可能なリモートタスクを取得していました。今回の更新で問題が解決されました。Pipelines as Code は同じ GitHub トークンを使用して、任意の GitHub ブランチからリモートタスクを取得するようになりました。

4.1.4.8. 既知の問題

  • Tekton Hub CR で使用される Hub API ConfigMap オブジェクト内のフィールドである CATALOG_REFRESH_INTERVAL の値が、ユーザーが指定したカスタム値で更新されません。

    回避策: なし。問題 SRVKP-2854 を確認してください。

4.1.4.9. 互換性を失わせる変更点

  • 今回の更新で、OpenShift Container Platform のアップグレードを妨げる OLM のご設定の問題が発生しました。この問題は今後のリリースで修正される予定です。

4.1.4.10. Red Hat OpenShift Pipelines General Availability 1.9.2 のリリースノート

今回の更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.9.2 が OpenShift Container Platform 4.11、4.12、および 4.13 で利用できるようになりました。

4.1.4.11. 修正された問題

  • この更新前は、リリースの以前のバージョンで OLM の誤設定の問題が発生しており、OpenShift Container Platform のアップグレードが妨げられていました。今回の更新により、この誤設定の問題が修正されました。

4.1.4.12. Red Hat OpenShift Pipelines General Availability 1.9.3 のリリースノート

今回の更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.9.3 が OpenShift Container Platform 4.11、4.12、4.13 に加え、4.10 でも利用できるようになりました。

4.1.4.13. 修正された問題

  • 今回の更新により、大規模パイプラインのパフォーマンスの問題が修正されました。これにより、CPU 使用率は 61%、メモリー使用率は 44% 削減されました。
  • この更新前は、when 式が原因でタスクが実行されない場合、パイプラインの実行は失敗していました。今回の更新により、パイプライン結果でスキップされたタスクの結果が検証されないようにすることで問題を修正しました。現在は、パイプラインの結果は出力されず、結果の欠落を原因とするパイプライン実行の失敗は発生しません。
  • 今回の更新により、pipelineref.bundlev1beta1 API のバンドルリゾルバーに変換する動作が修正されました。現在は変換機能により、変換後に kind フィールドの値が Pipeline に設定されます。
  • この更新前は、Pipelines Operator の問題により、ユーザーは spec.pipeline.enable-api-fields フィールドの値を beta に設定できませんでした。今回の更新でこの問題が修正されています。現在は、TektonConfig カスタムリソースで値を alphastablebeta に設定できます。
  • この更新前は、Pipelines as Code はクラスターエラーが原因でシークレットを作成できなかった場合、GitHub チェック実行でパブリックな一時トークンが表示されていました。今回の更新でこの問題が修正されています。現在は、シークレットの作成に失敗しても、GitHub チェックインターフェイスにトークンは表示されません。

4.1.4.14. 既知の問題

  • 現在、OpenShift Container Platform Web コンソールでのパイプライン実行の stop オプションに関する既知の問題があります。Actions ドロップダウンリストの stop オプションが期待どおりに機能せず、パイプラインの実行がキャンセルされません。
  • 現在、カスタムリソース定義の変換の失敗が原因で発生する、Pipelines バージョン 1.9.x へのアップグレードに関する既知の問題があります。

    回避策: Pipelines バージョン 1.9.x にアップグレードする前に、Red Hat カスタマーポータルの solution に記載されている手順を実行してください。

4.1.5. Red Hat OpenShift Pipelines General Availability 1.8 のリリースノート

今回の更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.8 が OpenShift Container Platform 4.10、4.11、および 4.12 で利用できるようになりました。

4.1.5.1. 新機能

以下では、修正および安定性の面での改善点に加え、OpenShift Pipelines 1.8 の主な新機能について説明します。

4.1.5.1.1. Pipelines
  • 今回の更新により、ARM ハードウェアで実行されている OpenShift Container Platform クラスターで Red Hat OpenShift Pipelines GA 1.8 以降を実行できるようになりました。これには、ClusterTask リソースと tkn CLI ツールのサポートが含まれます。
重要

ARM ハードウェアでの Red Hat OpenShift Pipelines の実行は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

  • この更新では、TaskRun リソースの Step および Sidecar オーバーライドが実装されています。
  • この更新により、PipelineRun ステータス内に最小限の TaskRun および Run ステータスが追加されます。

    この機能を有効にするには、TektonConfig カスタムリソース定義の パイプライン セクションで、enable-api-fields フィールドを alpha に設定する必要があります。

  • 今回の更新により、パイプライン実行機能の正常な終了がアルファ機能から安定した機能に昇格されました。その結果、以前に廃止された PipelineRunCancelled ステータスは引き続き廃止され、将来のリリースで削除される予定です。

    この機能はデフォルトで使用できるため、TektonConfig カスタムリソース定義で pipeline.enable-api-fields フィールドを alpha に設定する必要がなくなりました。

  • 今回の更新により、ワークスペースの名前を使用してパイプラインタスクのワークスペースを指定できるようになりました。この変更により、Pipeline および PipelineTask リソースのペアに共有ワークスペースを指定できるようになりました。ワークスペースを明示的にマップすることもできます。

    この機能を有効にするには、TektonConfig カスタムリソース定義の パイプライン セクションで、enable-api-fields フィールドを alpha に設定する必要があります。

  • 今回の更新により、埋め込み仕様のパラメーターが変更なしに伝播されるようになりました。
  • 今回の更新により、アノテーションとラベルを使用して、PipelineRun リソースによって参照される Task リソースの必要なメタデータを指定できるようになりました。これにより、実行コンテキストに依存する Task メタデータは、パイプライン実行時に利用できます。
  • この更新により、paramsresults の値にオブジェクトまたはディクショナリータイプのサポートが追加されました。この変更は後方互換性に影響し、以前のクライアントを新しい Red Hat OpenShift Pipelines バージョンで使用するなど、前方互換性を損なう場合があります。この更新により、ArrayOrStruct 構造が変更されます。これは、Go 言語 API をライブラリーとして使用するプロジェクトに影響します。
  • この更新により、SkippingReason 値が PipelineRun ステータスフィールドの SkippedTasks フィールドに追加され、特定の PipelineTask がスキップされた理由をユーザーが知ることができるようになりました。
  • この更新プログラムは、Task オブジェクトから結果を発行するために array 型を使用できるアルファ機能をサポートします。結果の型は string から ArrayOrString に変更されています。たとえば、タスクはタイプを指定してアレイの結果を生成できます。

    kind: Task
    apiVersion: tekton.dev/v1beta1
    metadata:
      name: write-array
      annotations:
        description: |
          A simple task that writes array
    spec:
      results:
        - name: array-results
          type: array
          description: The array results
    ...

    さらに、タスクスクリプトを実行して、結果をアレイで入力できます。

    $ echo -n "[\"hello\",\"world\"]" | tee $(results.array-results.path)

    この機能を有効にするには、TektonConfig カスタムリソース定義の パイプライン セクションで、enable-api-fields フィールドを alpha に設定する必要があります。

    この機能は進行中であり、TEP-0076 の一部です。

4.1.5.1.2. トリガー
  • この更新により、EventListener 仕様の TriggerGroups フィールドがアルファ機能から安定した機能に移行します。このフィールドを使用すると、トリガーのグループを選択および実行する前にインターセプターのセットを指定できます。

    この機能はデフォルトで使用できるため、TektonConfig カスタムリソース定義で pipeline.enable-api-fields フィールドを alpha に設定する必要がなくなりました。

  • 今回の更新により、Trigger リソースは、HTTPS を使用して ClusterInterceptor サーバーを実行することにより、エンドツーエンドの安全な接続をサポートします。
4.1.5.1.3. CLI
  • 今回の更新では、tkn taskrun export コマンドを使用して、ライブタスクの実行をクラスターから YAML ファイルにエクスポートできます。これを使用して、タスクの実行を別のクラスターにインポートできます。
  • 今回の更新により、tkn pipeline start コマンドに -o name フラグを追加して、開始直後にパイプライン実行の名前を出力できるようになりました。
  • 今回の更新により、利用可能なプラグインのリストが tkn --help コマンドの出力に追加されました。
  • 今回の更新により、パイプラインの実行またはタスクの実行を削除する際に、--keep フラグと --keep-since フラグの両方を一緒に使用できるようになりました。
  • 今回の更新により、非推奨の PipelineRunCancelled 値ではなく、spec.status フィールドの値として Canceled を使用できるようになりました。
4.1.5.1.4. Operator
  • 今回の更新により、管理者はローカルの Tekton Hub インスタンスを設定して、デフォルトデータベースではなくカスタムデータベースを使用できるようになりました。
  • 今回の更新では、クラスター管理者としてローカルの Tekton Hub インスタンスを有効にすると、データベースが定期的に更新され、カタログの変更が Tekton Hub Web コンソールに表示されるようになります。更新の間隔は調整できます。

    以前は、カタログ内のタスクとパイプラインをデータベースに追加するために、そのタスクを手動で実行するか、cron ジョブをセットアップして実行していました。

  • 今回の更新で、最小限の設定で Tekton Hub インスタンスをインストールし、実行できるようになりました。これにより、チームと連携して、必要な追加カスタマイズを決定できます。
  • 今回の更新で、GIT_SSL_CAINFOgit-clone タスクに追加され、セキュアなリポジトリーをクローンできるようになりました。
4.1.5.1.5. Tekton Chains
重要

Tekton Chains はテクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

  • 今回の更新により、静的トークンではなく OIDC を使用して Vault にログインすることができます。この変更により、Spire は OIDC 認証情報を生成し、信頼されるワークロードのみが vault にログインできます。また、Vault アドレスを環境変数として挿入するのではなく、設定値として渡すこともできます。
  • Red Hat OpenShift Pipelines Operator を使用してインストールした場合、設定マップの直接更新はサポートされないため、openshift-pipelines namespace の Tekton チェーンの chain-config 設定マップは、Red Hat OpenShift Pipelines Operator のアップグレード後に自動的にデフォルトにリセットされます。ただし、今回の更新により、TektonChain カスタムリソースを使用して Tekton Chains を設定できるようになりました。この機能により、アップグレード中に上書きされる chain-config 設定マップとは異なり、アップグレード後も設定を維持できます。
4.1.5.1.6. Tekton Hub
重要

Tekton Hub はテクノロジープレビュー機能としてのみ提供されます。テクノロジープレビュー機能は、Red Hat 製品サービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

  • 今回の更新により、Operator を使用して Tekton Hub の新しいインスタンスをインストールすると、Tekton Hub ログインがデフォルトで無効になります。ログインおよび評価機能を有効にするには、Tekton Hub のインストール時に Hub API シークレットを作成する必要があります。

    注記

    Red Hat OpenShift Pipelines 1.7 では Tekton Hub ログインがデフォルトで有効になっているため、Operator をアップグレードすると、Red Hat OpenShift Pipelines 1.8 ではログインがデフォルトで有効になります。このログインを無効にするには、OpenShift Pipelines 1.7.x -→ 1.8.x からアップグレードした後の Tekton Hub ログインの無効化 を参照してください。

  • 今回の更新により、管理者はローカルの Tekton Hub インスタンスを設定して、デフォルトデータベースではなくカスタム PostgreSQL 13 データベースを使用できるようになりました。これを行うには、tekton-hub-db という名前の Secret リソースを作成します。以下に例を示します。

    apiVersion: v1
    kind: Secret
    metadata:
      name: tekton-hub-db
      labels:
        app: tekton-hub-db
    type: Opaque
    stringData:
      POSTGRES_HOST: <hostname>
      POSTGRES_DB: <database_name>
      POSTGRES_USER: <username>
      POSTGRES_PASSWORD: <password>
      POSTGRES_PORT: <listening_port_number>
  • 今回の更新により、カタログからデータベースにリソースを追加するために Tekton Hub Web コンソールにログインする必要がなくなりました。現在、これらのリソースは、Tekton Hub API が初めて実行を開始したときに自動的に追加されます。
  • この更新プログラムは、カタログ更新 API ジョブを呼び出すことにより、30 分ごとにカタログを自動的に更新します。この間隔は user-configurable です。
4.1.5.1.7. Pipelines as Code
重要

コードとしてのパイプライン (PAC) は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

  • 今回の更新により、開発者は、重複したリポジトリーを Pipelines as Code run に追加しようとすると、tkn-pac CLI ツールから通知を受け取ります。tkn pac create repository を入力する場合、各リポジトリーには一意の URL が必要です。この通知は、ハイジャックエクスプロイトの防止にも役立ちます。
  • 今回の更新により、開発者は新しい tkn-pac setup cli コマンドを使用して、Webhook メカニズムを使用して Git リポジトリーを Pipelines as Code に追加できるようになりました。このように、GitHub アプリを使用できない場合でも、Pipelines as Code を使用できます。この機能には、GitHub、GitLab、BitBucket のリポジトリーのサポートが含まれます。
  • 今回の更新により、Pipelines as Code は、次のような機能を備えた GitLab 統合をサポートします。

    • プロジェクトまたはグループの ACL (アクセス制御リスト)
    • 許可されたユーザーからの /OK-to-test サポート
    • /retest サポート。
  • 今回の更新により、Common Expression Language (CEL) を使用して高度なパイプラインフィルタリングを実行できます。CEL では、PipelineRun リソースのアノテーションを使用して、パイプラインの実行をさまざまな Git プロバイダーイベントと一致させることができます。以下に例を示します。

      ...
      annotations:
         pipelinesascode.tekton.dev/on-cel-expression: |
          event == "pull_request" && target_branch == "main" && source_branch == "wip"
  • 以前は、開発者は、プルリクエストなどの Git イベントごとに .tekton ディレクトリーで 1 つのパイプラインしか実行できませんでした。今回の更新により、.tekton ディレクトリーに複数のパイプラインを実行できるようになりました。Web コンソールは、実行のステータスとレポートを表示します。パイプラインは並行して動作し、Git プロバイダーインターフェイスに報告します。
  • 今回の更新により、プルリクエストで /test または /retest にコメントすることで、パイプラインの実行をテストまたは再テストできるようになりました。名前でパイプライン実行を指定することもできます。たとえば、/test <pipelinerun_name> または /retest <pipelinerun-name> を入力できます。
  • 今回の更新により、新しい tkn-pac delete repository コマンドを使用して、リポジトリーカスタムリソースとそれに関連付けられたシークレットを削除できるようになりました。

4.1.5.2. 互換性を失わせる変更点

  • この更新により、TaskRun および PipelineRun リソースのデフォルトのメトリックレベルが次の値に変更されます。

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: config-observability
      namespace: tekton-pipelines
      labels:
        app.kubernetes.io/instance: default
        app.kubernetes.io/part-of: tekton-pipelines
    data:
      _example: |
      ...
        metrics.taskrun.level: "task"
        metrics.taskrun.duration-type: "histogram"
        metrics.pipelinerun.level: "pipeline"
        metrics.pipelinerun.duration-type: "histogram"
  • 今回の更新により、アノテーションまたはラベルが Pipeline および PipelineRun リソースの両方にある場合、Run タイプの値が優先されます。アノテーションまたはラベルが Task および TaskRun リソースにある場合も同様です。
  • Red Hat OpenShift Pipelines 1.8 では、以前に非推奨の PipelineRun.Spec.ServiceAccountNames フィールドが削除されました。代わりに PipelineRun.Spec.TaskRunSpecs フィールドを使用してください。
  • Red Hat OpenShift Pipelines 1.8 では、以前に非推奨の TaskRun.Status.ResourceResults.ResourceRef フィールドが削除されました。代わりに TaskRun.Status.ResourceResults.ResourceName フィールドを使用してください。
  • Red Hat OpenShift Pipelines 1.8 では、以前に非推奨となった Conditions リソースタイプが削除されました。Conditions リソースを、これが含まれる Pipeline リソース定義から削除します。代わりに PipelineRun 定義で when 式を使用してください。
  • Tekton Chains では、tekton-provenance 形式は本リリースで削除されました。代わりに、TektonChain カスタムリソースで "artifacts.taskrun.format": "in-toto" を設定して、in-toto 形式を使用します。
  • Pipeline が Code 0.5.x として同梱される Red Hat OpenShift Pipelines 1.7.x。現在の更新には、Pipeline が Code 0.10.x として同梱されます。この変更により、新規コントローラーの openshift-pipelines namespace に新規ルートが作成されます。このルートは、Pipeline を Code として使用する GitHub Apps または Webhook で更新する必要があります。ルートを取得するには、以下のコマンドを使用します。

    $ oc get route -n openshift-pipelines pipelines-as-code-controller \
      --template='https://{{ .spec.host }}'
  • 今回の更新で、コードとしてのパイプラインは、Repository カスタムリソース定義 (CRD) のデフォルトの秘密鍵の名前を変更します。CRD で、tokenprovider.token に置き換え、secretwebhook.secret に置き換えます。
  • 今回の更新で、Pipelines as Code は、特別なテンプレート変数を、プライベートリポジトリーの複数のパイプライン実行をサポートするものに置き換えます。パイプラインの実行で、secret: pac-git-basic-auth-{{repo_owner}}-{{repo_name}}secret: {{ git_auth_secret }} に置き換えます。
  • 今回の更新により、コードとしての Pipeline が tkn-pac CLI ツールで以下のコマンドを更新するようになりました。

    • tkn pac repository createtkn pac create repository に置き換えます。
    • tkn pac repository deletetkn pac delete repository に置き換えます。
    • tkn pac repository listtkn pac list に置き換えます。

4.1.5.3. 非推奨および削除された機能

  • OpenShift Container Platform 4.11 以降、Red Hat OpenShift Pipelines Operator をインストールおよびアップグレードするための preview および stable チャネルは削除されています。Operator をインストールしてアップグレードするには、適切な pipelines-<version> チャネル、または最新の安定バージョンの latest チャネルを使用します。たとえば、Pipelines Operator バージョン 1.8.x をインストールするには、pipelines-1.8 チャネルを使用します。

    注記

    OpenShift Container Platform 4.10 以前のバージョンでは、preview および stable チャンネルを使用して Operator をインストールおよびアップグレードできます。

  • Red Hat OpenShift Pipelines GA 1.6 で廃止された tekton.dev/v1alpha1 API バージョンのサポートは、今後の Red Hat OpenShift Pipelines GA 1.9 リリースで削除される予定です。

    この変更は、TaskRunPipelineRunTaskPipeline、および同様の tekton.dev/v1alpha1 リソースを含むパイプラインコンポーネントに影響します。別の方法として、 Migrating From Tekton v1alpha1 to Tekton v1beta1 で説明されているように、既存のリソースを apiVersion: tekton.dev/v1beta1 を使用するように更新します。

    tekton.dev/v1alpha1 API バージョンのバグ修正とサポートは、現在の GA 1.8 ライフサイクルの終了までのみ提供されます。

    重要

    Tekton Operator の場合、operator.tekton.dev/v1alpha1 API バージョンは 推奨ではありません。この値を変更する必要はありません。

  • Red Hat OpenShift Pipelines 1.8 では、PipelineResource カスタムリソース (CR) が利用可能ですが、サポートされなくなりました。PipelineResource CR は Tech Preview 機能であり、tekton.dev/v1alpha1 API の一部であり、廃止予定であり、今後の Red Hat OpenShift Pipelines GA 1.9 リリースで削除される予定でした。
  • Red Hat OpenShift Pipelines 1.8 では、Condition カスタムリソース (CR) が削除されています。Condition CR は tekton.dev/v1alpha1 API の一部でしたが、これは非推奨であり、今後の Red Hat OpenShift Pipelines GA 1.9 リリースで削除される予定です。
  • Red Hat OpenShift Pipelines 1.8 では、gsutilgcr.io イメージが削除されました。この削除により、このイメージに依存する Pipeline リソースを含むクラスターが壊れる可能性があります。バグ修正とサポートは、Red Hat OpenShift Pipelines 1.7 ライフサイクルが終了するまでのみ提供されます。
  • Red Hat OpenShift Pipelines 1.8 では、PipelineRun.Status.TaskRuns および PipelineRun.Status.Runs フィールドは非推奨となり、将来のリリースで削除される予定です。TEP-0100: PipelineRuns に埋め込まれた TaskRuns と Runs Status を参照してください。
  • Red Hat OpenShift Pipelines 1.8 では、pipelineRunCancelled 状態は非推奨となり、今後のリリースで削除される予定です。PipelineRun オブジェクトの正常な終了は、アルファ機能から安定した機能にプロモートされるようになりました。(TEP-0058: パイプライン実行の正常な終了 を参照してください。) 別の方法として、Cancelled 状態を使用できます。これは pipelineRunCancelled 状態を置き換えます。

    Pipeline および Task リソースを変更する必要はありません。パイプラインの実行をキャンセルするツールがある場合は、次のリリースでツールを更新する必要があります。この変更は、CLI、IDE 拡張機能などのツールにも影響を与え、新しい PipelineRun ステータスをサポートするようにします。

    この機能はデフォルトで使用できるため、TektonConfig カスタムリソース定義で pipeline.enable-api-fields フィールドを alpha に設定する必要がなくなりました。

  • Red Hat OpenShift Pipelines 1.8 では、PipelineRuntimeout フィールドが非推奨になりました。代わりに、PipelineRun.Timeouts フィールドを使用してください。これは現在、アルファ機能から安定した機能に昇格しています。

    この機能はデフォルトで使用できるため、TektonConfig カスタムリソース定義で pipeline.enable-api-fields フィールドを alpha に設定する必要がなくなりました。

  • Red Hat OpenShift Pipelines 1.8 では、init コンテナーは LimitRange オブジェクトのデフォルトのリクエスト計算から省略されています。

4.1.5.4. 既知の問題

  • s2i-nodejs パイプラインは、nodejs:14-ubi8-minimal イメージストリームを使用して、source-to-image (S2I) ビルドを実行できません。そのイメージストリームを使用すると error building at STEP "RUN /usr/libexec/s2i/assemble": exit status 127 メッセージが生成されます。

    回避策: nodejs:14-ubi8-minimal イメージストリームではなく、nodejs:14-ubi8 を使用します。

  • 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> コマンドを実行します。

  • ARM、IBM Power Systems、IBM Z、および LinuxONE では、s2i-dotnet クラスタータスクはサポートされていません。
  • 暗黙的なパラメーターマッピングは、最上位の Pipeline または PipelineRun 定義から taskRef タスクにパラメーターを誤って渡します。マッピングは、トップレベルのリソースからインライン taskSpec 仕様のタスクにのみ行う必要があります。この問題は、TektonConfig カスタムリソース定義の pipeline セクションで enable-api-fields フィールドを alpha に設定することにより、この機能が有効になっているクラスターにのみ影響します。

4.1.5.5. 修正された問題

  • この更新の前は、Web コンソールの開発者ビューでのパイプライン実行のメトリックは不完全で古くなっていました。今回の更新で問題が修正され、指標が正しくなりました。
  • この更新の前は、パイプラインに失敗した 2 つの並列タスクがあり、そのうちの 1 つが retries=2 であった場合、最後のタスクは実行されず、パイプラインはタイムアウトして実行に失敗しました。たとえば、pipelines-operator-subscription タスクが次のエラーメッセージで断続的に失敗しました。Unable to connect to the server: EOF。今回の更新で、最終タスクが常に実行されるように問題が修正されました。
  • この更新の前は、タスクの実行が失敗したためにパイプラインの実行が停止した場合、他のタスクの実行が再試行を完了しない可能性がありました。その結果、finally タスクがスケジュールされず、パイプラインがハングしました。 今回の更新で問題が解決されました。TaskRuns および Run オブジェクトは、パイプラインの実行が停止したときに (正常な停止によっても) 再試行できるため、パイプラインの実行を完了できます。
  • この更新により、TaskRun オブジェクトが存在する namespace に 1 つ以上の LimitRange オブジェクトが存在する場合のリソース要件の計算方法が変更されます。スケジューラーは、step コンテナーを考慮し、LimitRange オブジェクトからの要求を因数分解するときに、サイドカーコンテナーなどの他のすべてのアプリコンテナーを除外するようになりました。
  • この更新の前は、特定の条件下で、フラグパッケージが二重ダッシュフラグターミネータ -- の直後のサブコマンドを誤って解析する場合がありました。その場合、実際のコマンドではなく、エントリーポイントサブコマンドが実行されました。今回の更新では、このフラグ解析の問題が修正され、エントリーポイントが正しいコマンドを実行できるようになりました。
  • この更新の前は、イメージのプルが失敗した場合、またはそのプルステータスが不完全であった場合、コントローラーが複数のパニックを生成する可能性がありました。この更新では、status.TaskSpec 値ではなく step.ImageID 値をチェックすることで問題が修正されています。
  • この更新の前は、スケジュールされていないカスタムタスクを含むパイプラインの実行をキャンセルすると、PipelineRunCouldntCancel エラーが発生していました。今回の更新でこの問題が修正されています。エラーを生成することなく、スケジュールされていないカスタムタスクを含むパイプラインの実行をキャンセルできます。
  • この更新の前は、$params["<NAME>"] または $params['<NAME>']<NAME> にドット文字 (.) が含まれている場合、ドットの右側の名前のどの部分も含まれていませんでした。たとえば、$params["org.ipsum.lorem"] から、org のみが抽出されました。

    今回の更新で問題が修正され、$params が完全な値を取得するようになりました。たとえば、$params["org.ipsum.lorem"]$params['org.ipsum.lorem'] は有効で、<NAME> の値全体である org.ipsum.lorem が抽出されます。

    <NAME> が一重引用符または二重引用符で囲まれていない場合にも、エラーが出力されます。たとえば、$params.org.ipsum.lorem は有効ではなく、検証エラーが発生します。

  • 今回の更新により、Trigger リソースはカスタムインターセプターをサポートし、カスタムインターセプターサービスのポートが ClusterInterceptor 定義ファイルのポートと同じになるようにします。
  • この更新の前は、Tekton Chains および Operator コンポーネントの tkn version コマンドが正しく機能しませんでした。今回の更新で問題が修正され、コマンドが正しく機能し、それらのコンポーネントのバージョン情報が返されるようになりました。
  • この更新の前に、tkn pr delete --ignore-running コマンドを実行し、パイプラインの実行に status.condition 値がない場合、tkn CLI ツールは null-pointer エラー (NPE) を生成しました。今回の更新で問題が修正され、CLI ツールがエラーを生成し、実行中のパイプライン実行を正しく無視するようになりました。
  • この更新の前に、tkn pr delete --keep <value> または tkn tr delete --keep <value> コマンドを使用し、パイプラインの実行またはタスクの実行の数が値よりも少ない場合、コマンドは予想通りのエラー。今回の更新で問題が修正され、これらの条件下でコマンドが正しくエラーを返すようになりました。
  • この更新の前に、-p または -t フラグと --ignore-running フラグを指定して tkn pr delete または tkn tr delete コマンドを使用した場合、コマンドは実行中または保留中のリソースを誤って削除しました。今回の更新で問題が修正され、これらのコマンドが実行中または保留中のリソースを正しく無視するようになりました。
  • 今回の更新により、TektonChain カスタムリソースを使用して Tekton Chains を設定できるようになりました。この機能により、アップグレード中に上書きされる chain-config 設定マップとは異なり、アップグレード後も設定を維持できます。
  • 今回の更新により、buildah および s2i クラスタータスクを除き、ClusterTask リソースはデフォルトで root として実行されなくなりました。
  • 今回の更新前は、最初の引数として init を使用し、その後に 2 つ以上の引数を使用すると、Red Hat OpenShift Pipelines 1.7.1 でのタスクが失敗していました。今回の更新により、フラグが正しく解析され、タスクが正常に実行されるようになりました。
  • 今回の更新以前は、無効なロールバインディングにより、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 をアップグレードすると pipeline サービスアカウントが再作成され、サービスアカウントにリンクされたシークレットが失われていました。今回の更新でこの問題が修正されています。アップグレード中に、Operator は pipeline サービスアカウントを再作成しなくなりました。その結果、pipeline サービスアカウントにアタッチされたシークレットはアップグレード後も保持され、リソース (タスクとパイプライン) は引き続き正しく機能します。
  • 今回の更新により、TektonConfig カスタムリソース (CR) でインフラストラクチャーノード設定が設定されている場合、Pipelines as Code Pod はインフラストラクチャーノードで実行されます。
  • 以前は、リソースプルーナーを使用して、各 namespace Operator が個別のコンテナーで実行されるコマンドを作成していました。この設計は、namespaces の数が多いクラスターで大量のリソースを消費しました。たとえば、1 つのコマンドを実行するために、1000 個の namespace を持つクラスターは、Pod 内に 1000 個のコンテナーを生成しました。

    今回の更新でこの問題が修正されています。すべてのコマンドがループ内の 1 つのコンテナーで実行されるように、namespace ベースの設定をジョブに渡します。

  • Tekton Chains では、signing-secrets と呼ばれるシークレットを定義して、タスクとイメージの署名に使用されるキーを保持する必要があります。ただし、この更新の前に、Red Hat OpenShift Pipelines Operator を更新すると、このシークレットがリセットまたは上書きされ、キーが失われました。今回の更新でこの問題が修正されています。これで、Operator を介して Tekton Chains をインストールした後にシークレットが設定された場合、シークレットは保持され、アップグレードによって上書きされなくなりました。
  • 今回の更新以前は、すべての 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 ビルドタスクを正常に実行するには、buildpush などの適切な steps オブジェクトに以下のスニペットを追加します。

    securityContext:
      capabilities:
        add: ["SETFCAP"]
  • 今回の更新前は、Red Hat OpenShift Pipelines Operator のインストールに予想以上に時間がかかりました。この更新プログラムは、インストールプロセスを高速化するために一部の設定を最適化します。
  • 今回の更新により、Buildah および S2I クラスタータスクの手順が以前のバージョンよりも少なくなりました。一部のステップは 1 つのステップに結合されているため、ResourceQuota および LimitRange オブジェクトでより適切に機能し、必要以上のリソースを必要としません。
  • この更新により、クラスタータスクの Buildah、tkn CLI ツール、および skopeo CLI ツールのバージョンがアップグレードされます。
  • 今回の更新前は、いずれかの namespace が Terminating 状態の場合、RBAC リソースの作成時に Operator が失敗していました。今回の更新により、Operator は Terminating 状態の namespace を無視し、RBAC リソースを作成します。
  • この更新の前は、予想どおり、prune cronjobs の Pod がインフラストラクチャーノードでスケジュールされていませんでした。代わりに、それらはワーカーノードでスケジュールされているか、まったくスケジュールされていませんでした。今回の更新により、TektonConfig カスタムリソース (CR) で設定されている場合、これらのタイプの Pod をインフラストラクチャーノードでスケジュールできるようになりました。

4.1.5.6. Red Hat OpenShift Pipelines General Availability (GA) 1.8.1 のリリースノート

今回の更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.8.1 が OpenShift Container Platform 4.10、4.11、および 4.12 で利用できるようになりました。

4.1.5.6.1. 既知の問題
  • デフォルトでは、セキュリティーを強化するために、コンテナーのアクセス権が制限されています。制限付きのアクセス許可は、Red Hat OpenShift Pipelines Operator のすべてのコントローラー Pod と、一部のクラスタータスクに適用されます。アクセス権が制限されているため、特定の設定では git-clone クラスタータスクが失敗します。

    回避策: なし。問題 SRVKP-2634 を確認してください。

  • インストーラーセットが失敗した状態の場合、TektonConfig カスタムリソースのステータスが False ではなく True として誤表示されます。

    例: 失敗したインストーラセット

    $ oc get tektoninstallerset
    NAME                                     READY   REASON
    addon-clustertasks-nx5xz                 False   Error
    addon-communityclustertasks-cfb2p        True
    addon-consolecli-ftrb8                   True
    addon-openshift-67dj2                    True
    addon-pac-cf7pz                          True
    addon-pipelines-fvllm                    True
    addon-triggers-b2wtt                     True
    addon-versioned-clustertasks-1-8-hqhnw   False   Error
    pipeline-w75ww                           True
    postpipeline-lrs22                       True
    prepipeline-ldlhw                        True
    rhosp-rbac-4dmgb                         True
    trigger-hfg64                            True
    validating-mutating-webhoook-28rf7       True

    例: 正しくない TektonConfig ステータス

    $ oc get tektonconfig config
    NAME     VERSION   READY   REASON
    config   1.8.1     True

4.1.5.6.2. 修正された問題
  • この更新まで、プルーナーは実行中のパイプラインのタスク実行を削除し、警告 some tasks were indicated completed without ancestors being done を表示していました。今回の更新により、プルーナーは、実行中のパイプラインの一部であるタスク実行を保持します。
  • この更新まで、pipeline-1.8 が Red Hat OpenShift Pipelines Operator 1.8.x をインストールするためのデフォルトのチャネルでした。今回の更新により、latest がデフォルトのチャネルになりました。
  • この更新まで、コードとしてのパイプラインのコントローラー Pod は、ユーザーによって公開された証明書にアクセスできませんでした。今回の更新により、コードとしてのパイプラインは、自己署名証明書またはカスタム証明書によって保護されたルートと Git リポジトリーにアクセスできるようになりました。
  • この更新まで、Red Hat OpenShift Pipelines 1.7.2 から 1.8.0 にアップグレードすると、タスクが RBAC エラーで失敗していました。今回の更新により、タスクは RBAC エラーなしで正常に実行されます。
  • この更新まで、tkn CLI ツールを使用して、array 型の result オブジェクトを含むタスク実行とパイプライン実行を削除できませんでした。今回の更新により、tkn CLI ツールを使用して、array 型の result オブジェクトを含むタスク実行とパイプライン実行を削除できます。
  • この更新まで、パイプライン仕様に array 型の ENV_VARS パラメーターを持つタスクが含まれていた場合、パイプラインの実行は invalid input params for task func-buildpacks: param types don’t match the user-specified type: [ENV_VARS] エラーで失敗していました。今回の更新により、そのようなパイプラインおよびタスク仕様でのパイプライン実行は失敗しなくなりました。
  • この更新まで、クラスター管理者は、コンテナーレジストリーにアクセスするための Buildah クラスタータスクに config.json ファイルを提供できませんでした。今回の更新により、クラスター管理者は、dockerconfig ワークスペースを使用して、Buildah クラスタータスクに config.json ファイルを提供できるようになりました。

4.1.5.7. Red Hat OpenShift Pipelines General Availability (GA) 1.8.2 のリリースノート

今回の更新により、Red Hat OpenShift Pipelines General Availability (GA) 1.8.2 が OpenShift Container Platform 4.10、4.11、および 4.12 で利用できるようになりました。

4.1.5.7.1. 修正された問題
  • この更新の前は、SSH キーを使用してリポジトリーのクローンを作成すると、git-clone タスクが失敗していました。今回の更新により、git-init タスクでの root 以外のユーザーのロールが削除され、SSH プログラムは $HOME/.ssh/ ディレクトリーで正しいキーを検索します。

4.1.6. 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 で利用可能になりました。

4.1.6.1. 新機能

以下では、修正および安定性の面での改善点に加え、OpenShift Pipelines 1.7 の主な新機能について説明します。

4.1.6.1.1. Pipelines
  • 今回の更新では、pipelines-<version> が Red Hat OpenShift Pipelines Operator をインストールするためのデフォルトのチャネルです。たとえば、Pipelines Operator バージョン 1.7 をインストールするためのデフォルトのチャネルは pipelines-1.7 です。クラスター管理者は、latest チャネルを使用して、Operator の最新の安定バージョンをインストールすることもできます。

    注記

    preview チャネルと stable チャネルは廃止され、将来のリリースで削除される予定です。

  • ユーザー namespace でコマンドを実行すると、コンテナーは root (ユーザー ID 0) として実行されますが、ホストに対するユーザー特権があります。この更新では、ユーザー 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 フラグは非推奨であり、将来のリリースで削除される予定です。パイプラインのベストプラクティスとして、保護された Task のみを対象とする式の when に使用します。

  • この更新では、タスク内のワークスペースの subPath フィールドで変数置換を使用できます。
  • 今回の更新では、一重引用符または二重引用符を含む角かっこ表記を使用して、パラメーターと結果を参照できます。この更新以前は、ドット表記しか使用できませんでした。たとえば、次は同等になりました。

    • $(param.myparam)$(param['myparam'])、および $(param["myparam"])

      一重引用符または二重引用符を使用して、"." などの問題のある文字を含むパラメーター名を囲むことができます。たとえば、$(param['my.param'])$(param["my.param"])

  • この更新により、enable-api-fields フラグを有効にせずに、タスク定義にステップの onError パラメーターを含めることができます。
4.1.6.1.2. トリガー
  • この更新により、feature-flag-triggers 設定マップに新しいフィールド labels-exclusion-pattern が追加されました。このフィールドの値を正規表現 (regex) パターンに設定できます。コントローラーは、正規表現パターンに一致するラベルを、イベントリスナーからイベントリスナー用に作成されたリソースへの伝播から除外します。
  • この更新により、TriggerGroups フィールドが EventListener 仕様に追加されました。このフィールドを使用すると、トリガーのグループを選択して実行する前に実行するインターセプターのセットを指定できます。この機能を有効にするには、TektonConfig カスタムリソース定義の パイプライン セクションで、enable-api-fields フィールドを alpha に設定する必要があります。
  • この更新により、Trigger リソースは、TriggerTemplate テンプレートによって定義されたカスタム実行をサポートします。
  • この更新により、トリガーは EventListener Pod からの Kubernetes イベントの生成をサポートします。
  • この更新により、次のオブジェクトのカウントメトリックが使用可能になります: ClusterInteceptorEventListenerTriggerTemplateClusterTriggerBinding、および TriggerBinding
  • この更新により、ServicePort 仕様が Kubernetes リソースに追加されます。この仕様を使用して、イベントリスナーサービスを公開するポートを変更できます。デフォルトのポートは 8080 です。
  • この更新では、EventListener 仕様の targetURI フィールドを使用して、トリガー処理中にクラウドイベントを送信できます。この機能を有効にするには、TektonConfig カスタムリソース定義の パイプライン セクションで、enable-api-fields フィールドを alpha に設定する必要があります。
  • この更新により、tekton-triggers-eventlistener-roles オブジェクトには、既存の create 動詞に加えて、patch 動詞が含まれるようになりました。
  • この更新により、securityContext.runAsUser パラメーターがイベントリスナーのデプロイメントから削除されます。
4.1.6.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 はテクノロジープレビュー機能です。

4.1.6.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 に変更されます。
  • この TektonConfigCRD の更新により、oc get tektonconfig コマンドは OPerator のバージョンを表示します。
  • この更新により、サービスモニターがトリガーメトリックに追加されます。
4.1.6.1.5. ハブ
重要

Tekton Hub をクラスターにデプロイすることは、テクノロジープレビュー機能です。

Tekton Hub は、CI/CD ワークフローの再利用可能なタスクとパイプラインを検出、検索、および共有するのに役立ちます。Tekton Hub のパブリックインスタンスは、hub.tekton.dev で利用できます。

Red Hat OpenShift Pipelines 1.7 を確認しながら、クラスター管理者は Tekton Hub のカスタムインスタンスをエンタープライズクラスターにインストールしてデプロイすることもできます。組織に固有の再利用可能なタスクとパイプラインを使用してカタログをキュレートできます。

4.1.6.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 リポジトリーをストレージバックエンドとして使用して、署名と署名されたアーティファクトを安全に保存できます。
4.1.6.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 のパイプラインでの自動タスク解決。
  • 設定を取得するための GitHub blobs およびオブジェクト API の使用。
  • GitHub 組織を介して、または Prow スタイルの OWNER ファイルを使用したアクセス制御リスト (ACL)。
  • tkn CLI ツール用の tkn pac プラグイン。これを使用して Pipelines as Code リポジトリーとブートストラップを管理できます。
  • GitHub アプリケーション、GitHub Webhook、Bitbucket Server、および Bitbucket Cloud のサポート。

4.1.6.2. 非推奨の機能

  • 重大な変更: この更新により、TektonConfig カスタムリソース (CR) から disable-working-directory-overwrite および disable-home-env-overwrite フィールドが削除されます。その結果、TektonConfig CR は $HOME 環境変数と workingDir パラメーターを自動的に設定しなくなりました。タスク カスタムリソース定義 (CRD) の env および workingDir フィールドを使用して、引き続き $HOME 環境変数と workingDir パラメーターを設定できます。
  • Conditions カスタムリソース定義 (CRD) タイプは非推奨であり、将来のリリースで削除される予定です。代わりに、推奨される When 式を使用してください。
  • 重大な変更: EventListenerTriggerBinding の値を指定しない場合、Triggers リソースはテンプレートを検証し、エラーを生成します。

4.1.6.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 に設定することにより、この機能が有効になっているクラスターにのみ影響します。

4.1.6.4. 修正された問題

  • 今回の更新では、labelsannotations などのメタデータが Pipeline オブジェクト定義と PipelineRun オブジェクト定義の両方に存在する場合、PipelineRun タイプの値が優先されます。Task オブジェクトと TaskRun オブジェクトで同様の動作が見られます。
  • この更新では、timeouts.tasks フィールドまたは timeouts.finally フィールドが 0 に設定されている場合、timeouts.pipeline0 に設定されます。
  • この更新により、シバンを使用しないスクリプトから -x セットフラグが削除されました。この修正により、スクリプト実行による潜在的なデータ漏洩が減少します。
  • この更新により、Git クレデンシャルのユーザー名に存在するバックスラッシュ文字は、.gitconfig ファイルの追加のバックスラッシュでエスケープされます。
  • この更新により、EventListener オブジェクトの finalizer プロパティーは、ロギングおよび設定マップのクリーンアップに必要なくなりました。
  • この更新により、イベントリスナーサーバーに関連付けられているデフォルトの HTTP クライアントが削除され、カスタム HTTP クライアントが追加されます。その結果、タイムアウトが改善されました。
  • この更新により、トリガークラスターのロールが所有者の参照で機能するようになりました。
  • この更新では、複数のインターセプターが拡張機能を返す場合、イベントリスナーの競合状態は発生しません。
  • この更新により、tkn pr delete コマンドは、ignore-running フラグで実行されているパイプラインを削除しません。
  • この更新では、アドオンパラメーターを変更しても、Operator Pod は再起動し続けません。
  • この更新により、サブスクリプションおよび設定カスタムリソースで設定されていない場合、tkn serve CLI Pod はインフラノードでスケジュールされます。
  • この更新では、指定されたバージョンのクラスタータスクはアップグレード中に削除されません。

4.1.6.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 で利用可能になりました。

4.1.6.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 つのコンテナーのループとして実行するようになりました。

4.1.6.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、およびそれ以降のバージョンで利用可能になりました。

4.1.6.6.1. 既知の問題
  • openshift-pipelines namespace の Tekton Chains の chains-config 設定マップは、Red Hat OpenShift Pipelines Operator のアップグレード後に自動的にデフォルト値にリセットされます。現在、この問題に対する回避策はありません。
4.1.6.6.2. 修正された問題
  • 今回の更新以前は、最初の引数として init を使用し、その後に 2 つまたはそれ以上の引数を指定した場合、Pipeline 1.7.1 のタスクは失敗していました。今回の更新により、フラグが正しく解析され、タスクが正常に実行されるようになりました。
  • 今回の更新以前は、無効なロールバインディングにより、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 ビルドタスクを正常に実行するには、buildpush などの適切な steps オブジェクトに以下のスニペットを追加します。

    securityContext:
      capabilities:
        add: ["SETFCAP"]

4.1.6.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 で利用可能になりました。

4.1.6.7.1. 修正された問題
  • 今回の更新前は、いずれかの namespace が Terminating 状態の場合、RBAC リソースの作成時に Operator が失敗していました。今回の更新により、Operator は Terminating 状態の namespace を無視し、RBAC リソースを作成します。
  • 以前は、Red Hat OpenShift Pipelines Operator をアップグレードすると pipeline サービスアカウントが再作成され、サービスアカウントにリンクされたシークレットが失われていました。今回の更新でこの問題が修正されています。アップグレード中に、Operator は pipeline サービスアカウントを再作成しなくなりました。その結果、pipeline サービスアカウントにアタッチされたシークレットはアップグレード後も保持され、リソース (タスクとパイプライン) は引き続き正しく機能します。

4.1.7. Red Hat OpenShift Pipelines General Availability (GA) 1.6 のリリースノート

Red Hat OpenShift Pipelines General Availability (GA) 1.6 が OpenShift Container Platform 4.9 で利用可能になりました。

4.1.7.1. 新機能

以下では、修正および安定性の面での改善点に加え、OpenShift Pipelines 1.6 の主な新機能について説明します。

  • 今回の更新により --output <string> を使用して、YAML または JSON 形式の文字列を返すようにパイプラインまたはタスクの start コマンドを設定できるようになりました。ここでは、<string>yaml または json に置き換えます。--output オプションを指定しないと、start コマンドは人間による解読はしやすくなりますが、他のプログラムによる解析が難しいメッセージを返します。継続的インテグレーション (CI) 環境では、YAML または JSON 形式の文字列を返す機能は便利です。たとえば、リソースの作成後に yq または jq を使用して、リソースに関する YAML または JSON 形式のメッセージを解析し、showlog オプションを使用せずにそのリソースが終了するまで待機します。
  • 今回の更新により、Podman の auth.json 認証ファイルを使用してレジストリーに対して認証できるようになりました。たとえば、tkn bundle push を使用して、Docker CLI ではなく Podman を使用してリモートレジストリーにプッシュできます。
  • 今回の更新により、tkn [taskrun | pipelinerun] delete --all コマンドを使用すると、新規の --keep-since <minutes> オプションを使用して、指定した期間よりも後の実行を保持できます。たとえば、5 分未満の実行を維持するには、tkn [taskrun | pipelinerun] delete -all --keep-since 5 を入力します。
  • 今回の更新により、タスク実行またはパイプライン実行を削除する際に、--parent-resource--keep-since オプションを同時に使用できるようになりました。たとえば、tkn pipelinerun delete --pipeline pipelinename --keep-since 5 コマンドは、親リソースの名前が pipelinename で、その経過時間が 5 分以下であるパイプラインの実行を保持します。tkn tr delete -t <taskname> --keep-since 5 および tkn tr delete --clustertask <taskname> --keep-since 5 コマンドはタスク実行と同様に機能します。
  • 今回の更新により、v1beta1 リソースと連携するトリガーリソースのサポートが追加されました。
  • 今回の更新により、ignore-running オプションが tkn pipelinerun delete および tkn taskrun delete コマンドに追加されています。
  • 今回の更新により、create サブコマンドが tkn tasktkn clustertask コマンドに追加されました。
  • 今回の更新により、tkn pipelinerun delete --all コマンドを使用すると、新規の --label <string> オプションを使用して、ラベルでパイプライン実行をフィルターできるようになりました。オプションで、--label オプションに === を等価演算子として、または != を不等価演算子として指定して使用できます。たとえば、tkn pipelinerun delete --all --label asdf および tkn pipelinerun delete --all --label==asdf コマンドはどちらも、asdf ラベルが割り当てられたすべてのパイプライン実行を削除します。
  • 今回の更新では、設定マップからインストールされた Tekton コンポーネントのバージョンを取得するか、設定マップがない場合はデプロイメントコントローラーから取得できるようになりました。
  • 今回の更新では、機能フラグを設定し、デフォルト値をそれぞれ設定するために feature-flagsconfig-defaults 設定マップをサポートするようになりました。
  • 今回の更新では、新しいメトリクス eventlistener_event_count が追加され、EventListener リソースが受信するイベントをカウントできるようになりました。
  • 今回の更新では、v1beta1 Go API タイプが追加されました。今回の更新では、トリガーが v1beta1 API バージョンをサポートするようになりました。

    現在のリリースでは、v1alpha1 機能が非推奨となり、今後のリリースで削除されます。代わりに v1beta1 機能の使用を開始します。

  • 現在のリリースでは、リソースの自動実行がデフォルトで有効になっています。さらに、以下の新規アノテーションを使用して、namespace ごとにタスク実行およびパイプライン実行を自動実行するように設定できます。

    • operator.tekton.dev/prune.schedule: このアノテーションの値が TektonConfig カスタムリソース定義で指定された値と異なる場合には、その namespace に新規の cron ジョブが作成されます。
    • operator.tekton.dev/prune.skip: true に設定されている場合、設定先の namespace はプルーニングされません。
    • operator.tekton.dev/prune.resources: このアノテーションではリソースのコンマ区切りのリストを使用できます。パイプライン実行などの単一リソースをプルーニングするには、このアノテーションを pipelinerun に設定します。task run や pipeline run などの複数のリソースをプルーニングするには、このアノテーションを "taskrun, pipelinerun" に設定します。
    • operator.tekton.dev/prune.keep: このアノテーションを使用して、プルーニングなしでリソースを保持します。
    • operator.tekton.dev/prune.keep-since: このアノテーションを使用して、経過時間をもとにリソースを保持します。このアノテーションの値は、リソースの経過時間 (分単位) と等しくなければなりません。たとえば、6 日以上前に作成されたリソースを保持するには、keep-since7200 に設定します。

      注記

      keep および keep-since アノテーションは同時に使用できません。リソースには、どちらか 1 つだけを使用する必要があります。

    • operator.tekton.dev/prune.strategy: このアノテーションの値を keep または keep-since のいずれかに設定します。
  • 管理者はクラスター全体に対する pipeline サービスアカウントの作成を無効にし、紐付けされた SCC (anyuid と非常に似ている) の悪用による権限昇格を防ぎます。
  • TektonConfig カスタムリソース (CR) および、TektonPipelineTektonTriggers などの個々のコンポーネントの CR を使用して、機能フラグおよびコンポーネントを設定できるようになりました。この詳細レベルは、個々のコンポーネントの Tekton OCI バンドルなどのアルファ機能のカスタマイズおよびテストに役立ちます。
  • PipelineRun リソースのオプションの Timeouts フィールドを設定できるようになりました。たとえば、パイプライン実行、各タスク実行、および finally タスクに個別にタイムアウトを設定できます。
  • TaskRun リソースで生成される Pod を使用して、Pod の activeDeadlineSeconds フィールドが設定されるようになりました。これにより、OpenShift はこの値を終了として考慮でき、Pod に具体的にスコープを指定した ResourceQuota オブジェクトを使用できます。
  • configmaps を使用して、タスク実行、パイプライン実行、タスク、およびパイプラインのメトリックタグまたはラベルタイプを削除できます。さらに、ヒストグラム、ゲージ、最終値など、測定期間に、さまざまな種類のメトリックを設定できます。
  • Tekton は MinMaxDefault および DefaultRequest フィールドを考慮して LimitRange オブジェクトを完全にサポートするため、一貫性をもたせて Pod への要求および制限を定義できます。
  • 以下のアルファ機能が導入されました。

    • パイプライン実行は、以前の動作のように、すべてのタスク実行を直接停止するのではなく、finally タスクの実行後に停止できるようになりました。今回の更新により、以下の spec.status 値が追加されました。

      • StoppedRunFinal は、完了後、現在実行中のタスクを停止し、finally タスクを実行します。
      • CancelledRun は、実行中のタスクをすぐにキャンセルしてから、finally タスクを実行します。
      • Cancelled は、PipelineRunCancelled ステータスで提供される以前の動作を保持します。

        注記

        非推奨となった PipelineRunCancelled ステータスは v1 バージョンで削除され、Cancelled ステータスに置き換えられます。

    • oc debug コマンドを使用して、タスク実行をデバッグモードに配置できるようになりました。これにより、実行を一時停止し、Pod で特定の手順を検査できるようになりました。
    • ステップの onError フィールドを continue に設定すると、ステップの終了コードが記録され、後続のステップに渡されます。ただし、タスク実行は失敗しないので、タスクの残りのステップの実行は継続されます。既存の動作を維持するには、onError フィールドの値を stopAndFail に設定します。
    • タスクは、実際に使用されているよりも多くのパラメーターを受け入れるようになりました。アルファ機能フラグを有効にすると、パラメーターは暗黙的にインライン仕様に伝播できます。たとえば、インラインのタスクは、タスクの各パラメーターを明示的に定義せずに、親パイプライン実行のパラメーターにアクセスできます。
    • アルファ機能のフラグを有効にすると、when 式の条件が、直接関連付けられたタスクにのみ適用され、タスクに依存することはありません。When 式を関連タスクとその依存に適用するには、式を依存タスクごとに個別に関連付ける必要があります。今後、これが Tekton の新規 API バージョンの When 式のデフォルト動作になることに注意してください。今回の更新が優先され、既存のデフォルト動作は非推奨になりました。
  • 現在のリリースでは、nodeSelector および tolerations の値を TektonConfig カスタムリソース (CR) に指定することで、ノードの選択を設定できます。Operator はこれらの値を、作成するすべてのデプロイメントに追加します。

    • Operator のコントローラーおよび Webhook デプロイメントのノード選択を設定するには、Operator のインストール後に Subscription CR の仕様で config.nodeSelector および config.tolerations フィールドを編集します。
    • OpenShift Pipelines の残りのコントロールプレーン Pod をインフラストラクチャーノードにデプロイするには、nodeSelector および tolerations フィールドで TektonConfig CR を更新します。その後、変更は Operator で作成されるすべての Pod に適用されます。

4.1.7.2. 非推奨の機能

  • CLI 0.21.0 では、clustertasktasktaskrunpipeline、および pipelinerun コマンドに対するすべての v1alpha1 リソースのサポートが非推奨になりました。クラスターローダーが非推奨になり、今後のリリースで削除されます。
  • Tekton Triggers v0.16.0 では、重複する status ラベルは EventListener リソースのメトリックから削除されます。

    重要

    重大な変更:status ラベルは eventlistener_http_duration_seconds_* メトリックから削除されました。status ラベルに基づくクエリーを削除します。

  • 現在のリリースでは、v1alpha1 機能が非推奨となり、今後のリリースで削除されます。代わりに、今回の更新では、v1beta1 Go API タイプの使用を開始できるようになりました。トリガーが v1beta1 API バージョンをサポートするようになりました。
  • 現在のリリースでは、EventListener リソースはトリガーの終了処理前に応答を送信します。

    重要

    重大な変更: 今回の変更により、EventListener リソースがリソースの作成時に 201 Created ステータスコードに応答しなくなります。代わりに 202 Accepted 応答コードで応答します。

  • 今回のリリースで、podTemplate フィールドが EventListener リソースから削除されます。

    重要

    重大な変更: #1100 の一部として非推奨となった podTemplate フィールドが削除されました。

  • 今回のリリースで、非推奨の replicas フィールドが EventListener リソースの仕様から削除されます。

    重要

    重大な変更: 非推奨の replicas フィールドが削除されました。

  • Red Hat OpenShift Pipelines 1.6 では、HOME="/tekton/home" および workingDir="/workspace" の値が Step オブジェクトの仕様から削除されます。

    代わりに、Red Hat OpenShift Pipelines は、Step オブジェクトを実行するコンテナーで定義される値に HOME および workingDir を設定します。これらの値は、Step オブジェクトの仕様で上書きできます。

    以前の動作を使用するには、TektonConfig CR の disable-working-directory-overwrite フィールドおよび disable-home-env-overwrite フィールドを false に変更します。

    apiVersion: operator.tekton.dev/v1alpha1
      kind: TektonConfig
      metadata:
        name: config
      spec:
        pipeline:
          disable-working-directory-overwrite: false
          disable-home-env-overwrite: false
      ...
    重要

    TektonConfig CR の disable-working-directory-overwritedisable-home-env-overwrite フィールドは非推奨となり、今後のリリースで削除されます。

4.1.7.3. 既知の問題

  • Maven および Jib Maven クラスタータスクを実行する場合には、デフォルトのコンテナーイメージは Intel(x86) アーキテクチャーでのみサポートされます。したがって、IBM Power Systems(ppc64le)、IBM Z、および LinuxONE(s390x) クラスターではタスクに失敗します。回避策として、MAVEN_IMAGE パラメーターの値を maven:3.6.3-adoptopenjdk-11 に設定すると、カスタムイメージを指定できます。
  • IBM Power Systems、IBM Z、および LinuxONE では、s2i-dotnet クラスタータスクはサポートされません。
  • tkn hub を使用して IBM Power Systems(ppc64le)、IBM Z、および LinuxONE(s390x) の Tekton Catalog をもとにタスクをインストールする前に、タスクがこれらのプラットフォームで実行できるかどうかを確認します。ppc64le および s390x がタスク情報の Platforms セクションにリスト表示されているかどうかを確認するには、tkn hub info task <name> コマンドを実行します。
  • 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"

4.1.7.4. 修正された問題

  • IBM Power Systems、IBM Z、および LinuxONE では、tkn hub コマンドはサポート対象外になりました。
  • この更新以前は、ユーザーが tkn コマンドの実行後にターミナルを利用できず、再試行 が指定された場合でもパイプライン実行が行われていました。タスク実行またはパイプライン実行のタイムアウトの指定には影響がありません。今回の更新で問題が修正され、コマンド実行後にターミナルが利用できるようになります。
  • 今回の更新以前は、tkn pipelinerun delete --all を実行すると、すべてのリソースが削除されました。今回の更新で、実行中の状態のリソースが削除されなくなりました。
  • 今回の更新以前は、tkn version --component=<component> コマンドを使用しても、コンポーネントのバージョンが返されませんでした。今回の更新でこの問題が修正され、このコマンドを使用すると、コンポーネントのバージョンを返すようになりました。
  • 今回の更新以前は、tkn pr logs コマンドを使用すると、パイプラインの出力ログでタスクの順番が間違って表示されていました。今回の更新で問題は解決され、完了した PipelineRun のログで、TaskRun 実行順序を適切に表示するようになりました。
  • 今回の更新以前は、実行中のパイプラインの仕様を編集すると、パイプライン実行が完了時に停止できなくなる可能性がありました。今回の更新では、定義を 1 度だけフェッチし、検証用にステータスに保存されている仕様を使用して問題を修正しています。今回の変更により、PipelineRun または TaskRun が実行中の Pipeline または Task を参照する場合に競合状態に陥る確率が削減されます。
  • when 式値に、[$(params.arrayParam[*])] などの配列パラメーター参照を指定できるようになりました。

4.1.7.5. Red Hat OpenShift Pipelines General Availability 1.6.1 のリリースノート

4.1.7.5.1. 既知の問題
  • 古いバージョンから Red Hat OpenShift Pipelines 1.6.1 にアップグレードした後に、Pipeline は、Tekton リソース (タスクおよびパイプライン) で操作 (作成/削除/適用) を実行できない一貫性のない状態になる可能性があります。たとえば、リソースの削除中に、以下のエラーが発生する可能性があります。

    Error from server (InternalError): Internal error occurred: failed calling webhook "validation.webhook.pipeline.tekton.dev": Post "https://tekton-pipelines-webhook.openshift-pipelines.svc:443/resource-validation?timeout=10s": service "tekton-pipelines-webhook" not found.
4.1.7.5.2. 修正された問題
  • Red Hat OpenShift Pipelines によって設定される SSL_CERT_DIR 環境変数 (/tekton-custom-certs) は、以下のデフォルトのシステムディレクトリーを証明書ファイルで上書きしません。

    • /etc/pki/tls/certs
    • /etc/ssl/certs
    • /system/etc/security/cacerts
  • Horizontal Pod Autoscaler は、Red Hat OpenShift Pipelines Operator によって制御されるデプロイメントのレプリカ数を管理できます。このリリース以降、エンドユーザーまたはクラスター上のエージェントによってカウントが変更された場合、Red Hat OpenShift Pipelines Operator はそれによって管理されるデプロイメントのレプリカカウントをリセットしません。ただし、Red Hat OpenShift Pipelines Operator のアップグレード時にレプリカはリセットされます。
  • tkn CLI を提供する Pod は、ノードセレクターおよび TektonConfig カスタムリソースで指定される容認制限に基づいて、ノードにスケジュールされるようになりました。

4.1.7.6. Red Hat OpenShift Pipelines General Availability 1.6.2 のリリースノート

4.1.7.6.1. 既知の問題
  • 新規プロジェクトの作成時に、pipeline サービスアカウントの作成が遅延し、既存のクラスタータスクおよびパイプラインテンプレートの削除に 10 分以上かかります。
4.1.7.6.2. 修正された問題
  • 今回の更新以前は、古いバージョンから Red Hat OpenShift Pipelines 1.6.1 にアップグレードした後に、Tekton インストーラーセットの複数のインスタンスがパイプライン用に作成されました。今回の更新では、Operator により、アップグレード後に TektonInstallerSet の各タイプのインスタンスが 1 つだけ存在するようになりました。
  • 今回の更新以前は、Operator のすべてのリコンサイラーはコンポーネントバージョンを使用して、古いバージョンから Red Hat OpenShift Pipelines 1.6.1 へのアップグレード時にリソース再作成を決定していました。その結果、アップグレード時にコンポーネントのバージョンが変更されなかったリソースは再作成されませんでした。今回の更新により、Operator はコンポーネントのバージョンではなく Operator バージョンを使用して、アップグレード時にリソースの再作成を決定するようになりました。
  • この更新の前は、アップグレード後にパイプライン Webhook サービスがクラスターにありませんでした。これは、設定マップのアップグレードのデッドロックが原因でした。今回の更新により、設定マップがクラスターにない場合に Webhook 検証を無効にするメカニズムが追加されました。その結果、パイプライン Webhook サービスはアップグレード後もクラスターで永続化します。
  • 今回の更新以前は、namespace への設定変更後に自動プルーニングの cron ジョブは再作成されていました。今回の更新により、namespace に関連するアノテーションが変更された場合のみ、自動プルーニングの Cron ジョブは再作成されるようになりました。
  • Tekton Pipelines のアップストリームバージョンは v0.28.3 に改訂され、以下の修正が加えられました。

    • PipelineRun または TaskRun オブジェクトを修正し、ラベルまたはアノテーションの伝搬を許可します。
    • 暗黙的なパラメーターの場合:

      • PipelineSpec パラメーターを TaskRefs オブジェクトに適用しないでください。
      • Pipeline オブジェクトの暗黙的なパラメーター動作を無効にします。

4.1.7.7. Red Hat OpenShift Pipelines General Availability 1.6.3 のリリースノート

4.1.7.7.1. 修正された問題
  • 今回の更新以前は、Red Hat OpenShift Pipelines Operator は Pipeline および Trigger などのコンポーネントから Pod セキュリティーポリシーをインストールしていました。ただし、コンポーネントの一部として同梱される Pod セキュリティーポリシーは、以前のリリースで非推奨となりました。今回の更新により、Operator はコンポーネントから Pod セキュリティーポリシーをインストールするのを止めました。その結果、以下のアップグレードパスが影響を受けます。

    • Pipelines 1.6.1 または 1.6.2 から Pipelines 1.6.3 にアップグレードすると、Pipelines および Triggers コンポーネントからのものを含め Pod セキュリティーポリシーが削除されます。
    • Pipelines 1.5.x から 1.6.3 へのアップグレードでは、コンポーネントからインストールされる Pod セキュリティーポリシーは保持されます。クラスター管理者は、それらを手動で削除できます。

      注記

      今後のリリースにアップグレードすると、Red Hat OpenShift Pipelines Operator は古くなったすべての Pod セキュリティーポリシーを自動的に削除します。

  • 今回の更新以前は、クラスター管理者のみが OpenShift Container Platform コンソールでパイプラインメトリックにアクセスできていました。今回の更新により、他のクラスターロールを持つユーザーもパイプラインメトリックにアクセスできるようになりました。
  • 今回の更新以前は、Pipelines Operator でのロールベースアクセス制御 (RBAC) の問題により、コンポーネントのアップグレードまたはインストールに問題が生じていました。今回の更新により、各種の Red Hat OpenShift Pipelines コンポーネントをインストールする際の信頼性および一貫性が向上しました。
  • 今回の更新以前は、TektonConfig CR で clusterTasks および pipelineTemplates フィールドを false に設定すると、クラスタータスクおよびパイプラインテンプレートの削除が遅くなりました。この更新により、クラスタータスクやパイプラインテンプレートなどの Tekton リソースのライフサイクル管理の速度が改善されました。

4.1.7.8. Red Hat OpenShift Pipelines General Availability (GA) 1.6.4 のリリースノート

4.1.7.8.1. 既知の問題
  • Red Hat OpenShift Pipelines 1.5.2 から 1.6.4 にアップグレードした後、イベントリスナールートにアクセスすると 503 エラーが返されます。

    回避策: YAML ファイルで、イベントリスナーのルートのターゲットポートを変更します。

    1. 関連する namespace のルート名を抽出します。

      $ oc get route -n <namespace>
    2. ルートを編集して、targetPort フィールドの値を変更します。

      $ oc edit route -n <namespace> <el-route_name>

      例: 既存のイベントリスナールート

      ...
      spec:
        host: el-event-listener-q8c3w5-test-upgrade1.apps.ve49aws.aws.ospqa.com
        port:
          targetPort: 8000
        to:
          kind: Service
          name: el-event-listener-q8c3w5
          weight: 100
        wildcardPolicy: None
      ...

      例: 変更されたイベントリスナールート

      ...
      spec:
        host: el-event-listener-q8c3w5-test-upgrade1.apps.ve49aws.aws.ospqa.com
        port:
          targetPort: http-listener
        to:
          kind: Service
          name: el-event-listener-q8c3w5
          weight: 100
        wildcardPolicy: None
      ...

4.1.7.8.2. 修正された問題
  • 今回の更新前は、いずれかの namespace が Terminating 状態の場合、RBAC リソースの作成時に Operator が失敗していました。今回の更新により、Operator は Terminating 状態の namespace を無視し、RBAC リソースを作成します。
  • この更新の前は、関連する Tekton コントローラーのリリースバージョンを指定するアノテーションがないため、タスクの実行が失敗するか、再起動されました。今回の更新により、適切な注釈の組み込みが自動化され、タスクは失敗や再起動なしで実行されます。

4.1.8. Red Hat OpenShift Pipelines General Availability (GA) 1.5 のリリースノート

Red Hat OpenShift Pipelines General Availability (GA) 1.5 が OpenShift Container Platform 4.8 で利用可能になりました。

4.1.8.1. 互換性およびサポート表

現在、今回のリリースに含まれる機能には テクノロジープレビュー のものがあります。これらの実験的機能は、実稼働環境での使用を目的としていません。

以下の表では、機能は以下のステータスでマークされています。

TP

テクノロジープレビュー

GA

一般公開 (GA)

これらの機能に関しては、Red Hat カスタマーポータルの以下のサポート範囲を参照してください。

表4.2 互換性およびサポート表

機能バージョンサポートステータス

Pipelines

0.24

GA

CLI

0.19

GA

カタログ

0.24

GA

トリガー

0.14

TP

パイプラインリソース

-

TP

質問やフィードバックについては、製品チームに pipelines-interest@redhat.com 宛のメールを送信してください。

4.1.8.2. 新機能

以下では、修正および安定性の面での改善点に加え、OpenShift Pipelines 1.5 の主な新機能について説明します。

  • パイプライン実行およびタスク実行は、ターゲット namespace の cron ジョブによって自動的にプルーニングされます。cron ジョブは IMAGE_JOB_PRUNER_TKN 環境変数の値を使用して tkn image の値を取得します。今回の機能拡張により、以下のフィールドが TektonConfig カスタムリソースに導入されるようになりました。

    ...
    pruner:
      resources:
        - pipelinerun
        - taskrun
      schedule: "*/5 * * * *" # cron schedule
      keep: 2 # delete all keeping n
    ...
  • OpenShift Container Platform で、Tekton Add-ons コンポーネントのインストールをカスタマイズするには、TektonConig カスタムリソースの新規パラメーター clusterTasks および pipelinesTemplates の値を変更します。

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      profile: all
      targetNamespace: openshift-pipelines
      addon:
        params:
        - name: clusterTasks
          value: "true"
        - name: pipelineTemplates
          value: "true"
    ...

    カスタマイズは、TektonConfig を使用してアドオンを作成するか、Tekton Add-ons を使用して直接アドオンを作成する場合に許可されます。ただし、パラメーターが渡されない場合、コントローラーはデフォルト値でパラメーターを追加します。

    注記
    • アドオンが TektonConfig カスタムリソースを使用して作成され、Addon カスタムリソースでパラメーター値を変更すると、TektonConfig カスタムリソースの値が変更を上書きします。
    • pipelinesTemplates パラメーターの値は、clusterTasks パラメーターの値が true の場合のみ true に設定できます。
  • enableMetrics パラメーターが TektonConfig カスタムリソースに追加されます。これを使用して、OpenShift Container Platform の Tekton Pipeline の一部であるサービスモニターを無効にすることができます。

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      profile: all
      targetNamespace: openshift-pipelines
      pipeline:
        params:
        - name: enableMetrics
          value: "true"
    ...
  • プロセスレベルでメトリックをキャプチャーする EventListener OpenCensus メトリックが追加されました。
  • トリガーにはラベルセレクターが追加され、ラベルを使用してイベントリスナーのトリガーを設定できるようになりました。
  • インターセプターを登録する ClusterInterceptor カスタムリソース定義が追加され、プラグインできる新しい Interceptor タイプを登録できるようになりました。さらに、以下の関連する変更が行われます。

    • トリガー仕様では、ref フィールドが含まれる新しい API を使用してインターセプターを設定し、クラスターインターセプターを参照できます。さらに、params フィールドを使用して、処理用のインターセプターに渡すパラメーターを追加することができます。
    • バンドルされたインターセプター CEL、GitHub、GitLab、および BitBucket が移行されました。新しい ClusterInterceptor カスタムリソース定義を使用して実装されます。
    • コアインターセプターは新しい形式に移行され、古い構文を使用して作成された新しいトリガーは自動的に新しい ref または params ベースの構文に切り替わります。
  • ログの表示中にタスクまたはステップの名前の接頭辞を無効にするには、log コマンドに --prefix オプションを使用します。
  • 特定のコンポーネントのバージョンを表示するには、tkn version コマンドで新しい --component フラグを使用します。
  • tkn hub check-upgrade コマンドが追加され、他のコマンドはパイプラインのバージョンに基づいて変更されます。さらに、カタログ名は search コマンドの出力に表示されます。
  • 任意のワークスペースのサポートは start コマンドに追加されます。
  • プラグインが plugins ディレクトリーに存在しない場合は、現在のパスで検索されます。
  • tkn start [task | clustertask | pipeline] コマンドは、対話的に開始し、デフォルトパラメーターが指定されている場合でも params 値の入力を求めます。対話式プロンプトを停止するには、コマンドの呼び出し時に --use-param-defaults フラグを渡します。以下に例を示します。

    $ tkn pipeline start build-and-deploy \
        -w name=shared-workspace,volumeClaimTemplateFile=https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.10/01_pipeline/03_persistent_volume_claim.yaml \
        -p deployment-name=pipelines-vote-api \
        -p git-url=https://github.com/openshift/pipelines-vote-api.git \
        -p IMAGE=image-registry.openshift-image-registry.svc:5000/pipelines-tutorial/pipelines-vote-api \
        --use-param-defaults
  • version フィールドは tkn task describe コマンドに追加されます。
  • TriggerTemplateTriggerBindingClusterTriggerBindingEventlistener などのリソースを自動的に選択するオプションのいずれか 1 つが存在する場合は、describe コマンドに追加されます。
  • tkn pr describe コマンドでは、省略されたタスクのセクションが追加されます。
  • tkn clustertask logs のサポートが追加されました。
  • config.yaml からの YAML マージおよび変数は削除されます。さらに、release.yaml ファイルは、kustomizeytt などのツールでより簡単に消費されるようになりました。
  • ドット文字 (".") を含むリソース名のサポートが追加されました。
  • PodTemplate 仕様の hostAliases 配列が、ホスト名解決の Pod レベルの上書きに追加されます。これには、/etc/hosts ファイルを変更します。
  • タスクのアグリゲート実行ステータスにアクセスするために、変数 $(tasks.status) が導入されました。
  • Windows のエントリーポイントバイナリービルドが追加されます。

4.1.8.3. 非推奨の機能

  • when 式では、PascalCase で記述されたフィールドのサポートが削除されます。when 式は、小文字で記述されたフィールドのみをサポートします。

    注記

    Tekton Pipelines v0.16 (Operator v1.2.x) の when 式のあるパイプラインを適用している場合は、これを再度適用する必要があります。

  • Red Hat OpenShift Pipelines Operator を v1.5 にアップグレードする場合、openshift-client および openshift-client-v-1-5-0 クラスタータスクには SCRIPT パラメーターがあります。ただし、ARGS パラメーターおよび git リソースは openshift-client クラスタータスクの仕様から削除されます。これは重大な変更であり、ClusterTask リソースの name フィールドに特定のバージョンのないクラスタータスクがシームレスにアップグレードされます。

    パイプラインの実行が中断しないようにするには、アップグレード後に SCRIPT パラメーターを使用します。これは、ARGS パラメーターで以前に指定された値がクラスタータスクの SCRIPT パラメーターに移動するためです。以下に例を示します。

    ...
    - name: deploy
      params:
      - name: SCRIPT
        value: oc rollout status <deployment-name>
      runAfter:
        - build
      taskRef:
        kind: ClusterTask
        name: openshift-client
    ...
  • Red Hat OpenShift Pipelines Operator v1.4 から v1.5 にアップグレードする場合は、TektonConfig カスタムリソースがインストールされるプロファイル名が変更になりました。

    表4.3 TektonConfig カスタムリソースのプロファイル

    Pipelines 1.5 のプロファイルPipelines 1.4 の対応するプロファイルインストールされた Tekton コンポーネント

    すべて (デフォルトプロファイル)

    すべて (デフォルトプロファイル)

    Pipelines、Triggers、Add-ons

    Basic

    デフォルト

    Pipeline、Triggers

    Lite

    Basic

    Pipelines

    注記

    TektonConfig カスタムリソースの config インスタンスで profile: all を使用した場合は、リソース仕様を変更する必要はありません。

    ただし、インストールされた Operator がアップグレード前に Default または Basic プロファイルのいずれかにある場合は、アップグレード後に TektonConfig カスタムリソースの config インスタンスを編集する必要があります。たとえば、アップグレードの前に設定が profile: basic の場合は、Pipeline 1.5 へのアップグレード後にこれが profile: lite であることを確認します。

  • disable-home-env-overwrite フィールドおよび disable-working-dir-overwrite フィールドは非推奨となり、今後のリリースで削除されます。本リリースでは、後方互換性のために、これらのフラグのデフォルト値が true に設定されます。

    注記

    次回のリリース (Red Hat OpenShift Pipelines 1.6) では、HOME 環境変数は自動的に /tekton/home に設定されず、デフォルトの作業ディレクトリーはタスク実行の /workspace に設定されていません。これらのデフォルトは、この手順のイメージの Dockerfile で設定されているすべての値と競合します。

  • ServiceType フィールドおよび podTemplate フィールドは EventListener 仕様から削除されます。
  • コントローラーサービスアカウントは、namespace のリスト表示および監視に対してクラスター全体のパーミッションを要求しなくなりました。
  • EventListener リソースのステータスには、Ready という新規条件があります。

    注記

    今後、EventListener リソースの他のステータス条件は非推奨となり、Ready ステータス条件が優先されます。

  • EventListener 応答の eventListener フィールドおよび namespace フィールドは非推奨になりました。代わりに eventListenerUID フィールドを使用してください。
  • replicas フィールドは EventListener 仕様から非推奨になります。その代わりに、spec.replicas フィールドは KubernetesResource 仕様の spec.resources.kubernetesResource.replicas に移動されます。

    注記

    replicas フィールドは今後のリリースで削除されます。

  • コアインターセプターの設定における古い方法は非推奨になりました。ただし、今後のリリースで削除されるまでこれらの作業は継続されます。代わりに、Trigger リソースのインターセプターが新しい ref および params ベースの構文を使用して設定されるようになりました。作成されるデフォルトの Webhook は、新規トリガーの古い構文の使用を新規構文に自動的に切り替えます。
  • ClusterRoleBinding リソースに非推奨の rbac.authorization.k8s.io/v1beta1 ではなく rbac.authorization.k8s.io/v1 を使用します。
  • クラスターロールでは、serviceaccountssecretsconfigmapslimitranges などのリソースへのクラスター全体の書き込みアクセスが削除されます。さらに、deploymentsstatefulsetsdeployment/finalizers などのリソースにクラスター全体のアクセスが削除されます。
  • caching.internal.knative.dev グループの image カスタムリソース定義は Tekton により使用されず、本リリースで除外されます。

4.1.8.4. 既知の問題

  • git-cli クラスタータスクは、alpine/git ベースイメージから構築されます。これは、/root がユーザーのホームディレクトリーであると想定します。ただし、これは git-cli クラスタータスクに明示的に設定されません。

    Tekton では、特に指定がない場合は、デフォルトのホームディレクトリーはタスクのすべての手順で /tekton/home で上書きされます。ベースイメージの $HOME 環境変数を上書きすると、git-cli クラスタータスクが失敗します。

    この問題は、今後のリリースで修正される予定です。Red Hat OpenShift Pipelines 1.5 以前のバージョンでは、以下の回避策のいずれかを使用 して、git-cli クラスタータスクの失敗を防ぐことができます。

    • この手順で $HOME 環境変数を設定します。これにより、上書きされないようにします。

      1. [オプション] Operator を使用して Red Hat OpenShift Pipeline をインストールしている場合は、git-cli クラスタータスクを別のタスクにクローンします。このアプローチにより、Operator はクラスタータスクに加えられた変更を上書きしないようにします。
      2. oc edit clustertasks git-cli コマンドを実行します。
      3. 予想される HOME 環境変数をステップの YAML に追加します。

        ...
        steps:
          - name: git
            env:
            - name: HOME
              value: /root
            image: $(params.BASE_IMAGE)
            workingDir: $(workspaces.source.path)
        ...
        警告

        オペレーターがインストールした Red Hat OpenShift Pipelines の場合、HOME 環境変数を変更する前に git-cli クラスタータスクを別のタスクに複製しないと、Operator の調整中に変更が上書きされます。

    • feature-flags 設定マップで HOME 環境変数の上書きを無効にします。

      1. oc edit -n openshift-pipelines configmap feature-flags コマンドを実行します。
      2. disable-home-env-overwrite フラグの値を true に設定します。

        警告
        • Operator を使用して Red Hat OpenShift Pipelines をインストールしている場合、変更は Operator の調整時に上書きされます。
        • disable-home-env-overwrite フラグのデフォルト値を変更すると、すべてのタスクのデフォルトの動作を変更するため、他のタスクやクラスタータスクが破損する可能性があります。
    • パイプラインのデフォルトサービスアカウントが使用される場合に HOME 環境変数の上書きを行うため、git-cli クラスタータスクに別のサービスアカウントを使用します。

      1. 新規のサービスアカウントを作成します。
      2. 作成したサービスアカウントに Git シークレットをリンクします。
      3. タスクまたはパイプラインの実行中にサービスアカウントを使用します。
  • IBM Power Systems、IBM Z、および LinuxONE では、s2i-dotnet クラスタータスクと tkn hub コマンドはサポートされません。
  • Maven および Jib Maven クラスタータスクを実行する場合には、デフォルトのコンテナーイメージは Intel(x86) アーキテクチャーでのみサポートされます。したがって、IBM Power Systems(ppc64le)、IBM Z、および LinuxONE(s390x) クラスターではタスクに失敗します。回避策として、MAVEN_IMAGE パラメーターの値を maven:3.6.3-adoptopenjdk-11 に設定すると、カスタムイメージを指定できます。

4.1.8.5. 修正された問題

  • dag タスクの when 式は、他のタスクの実行ステータス ($(tasks.<pipelineTask>.status)) にアクセスするコンテキスト変数を指定できません。
  • PipelineRun リソースがすぐに削除されてから再作成される状況で、volumeClaimTemplate PVC を削除することにより作成される競合状態を回避するのに役立つため、所有者名の代わりに所有者 UID を使用します。
  • root 以外のユーザーによってトリガーされる build-base イメージの pullrequest-init に新しい Dockerfile が追加されます。
  • パイプラインまたはタスクが -f オプションで実行され、その定義の paramtype が定義されていない場合は、パイプラインまたはタスク実行が失敗する代わりに検証エラーが生成されます。
  • tkn start [task | pipeline | clustertask] コマンドの場合は、--workspace フラグの説明に一貫性が保たれました。
  • パラメーターを解析する際に、空の配列が発生すると、対応する対話的なヘルプが空の文字列として表示されるようになりました。

4.1.9. Red Hat OpenShift Pipelines General Availability (GA) 1.4 のリリースノート

Red Hat OpenShift Pipelines General Availability (GA) 1.4 が OpenShift Container Platform 4.7 で利用可能になりました。

注記

stable および preview Operator チャネルのほかに、Red Hat OpenShift Pipelines Operator 1.4.0 には ocp-4.6、ocp-4.5、および ocp-4.4 の非推奨チャネルが同梱されます。これらの非推奨チャネルおよびそれらのサポートは、Red Hat OpenShift Pipelines の以下のリリースで削除されます。

4.1.9.1. 互換性およびサポート表

現在、今回のリリースに含まれる機能には テクノロジープレビュー のものがあります。これらの実験的機能は、実稼働環境での使用を目的としていません。

以下の表では、機能は以下のステータスでマークされています。

TP

テクノロジープレビュー

GA

一般公開 (GA)

これらの機能に関しては、Red Hat カスタマーポータルの以下のサポート範囲を参照してください。

表4.4 互換性およびサポート表

機能バージョンサポートステータス

Pipelines

0.22

GA

CLI

0.17

GA

カタログ

0.22

GA

トリガー

0.12

TP

パイプラインリソース

-

TP

質問やフィードバックについては、製品チームに pipelines-interest@redhat.com 宛のメールを送信してください。

4.1.9.2. 新機能

以下のセクションでは、修正および安定性の面での改善点に加え、OpenShift Pipelines 1.4 の主な新機能について説明します。

  • カスタムタスクには、以下の機能強化が含まれます。

    • パイプラインの結果として、カスタムタスクで生成される結果を参照できるようになりました。
    • カスタムタスクはワークスペース、サービスアカウント、および Pod テンプレートを使用して、より複雑なカスタムタスクをビルドできるようになりました。
  • finally タスクには、以下の機能強化が含まれます。

    • when 式は 最後 のタスクでサポートされます。これにより、効率的に保護された実行が可能になり、タスクの再利用性が向上します。
    • finally タスクは、同じパイプライン内のタスクの結果を使用するように設定できます。

      注記

      when 式および finally タスクのサポートは OpenShift Container Platform 4.7 Web コンソールでは利用できません。

  • dockercfg または dockerconfigjson タイプの複数のシークレットのサポートがランタイム時に認証用に追加されました。
  • git-clone タスクでスパースチェックをサポートする機能が追加されました。これにより、ローカルコピーとしてリポジトリーのサブセットのみをクローンすることができ、これはクローン作成したリポジトリーのサイズを制限するのに便利です。
  • 実際に起動せずに、パイプライン実行を保留中の状態で作成できます。負荷が大きいクラスターでは、これにより、Operator はパイプライン実行の開始時間を制御することができます。
  • コントローラー用に SYSTEM_NAMESPACE 環境変数を手動で設定していることを確認します。これは以前はデフォルトで設定されていました。
  • root 以外のユーザーがパイプラインのビルドベースイメージに追加され、git-init がリポジトリーのクローンを root 以外のユーザーとして作成できるようになりました。
  • パイプライン実行の開始前に解決されたリソース間で依存関係を検証するサポートが追加されています。パイプラインのすべての結果変数は有効でなければならず、パイプラインからのオプションのワークスペースは、パイプライン実行の開始に使用することが予想されているタスクにのみ渡すことができます。
  • コントローラーおよび Webhook は root 以外のグループとして実行され、それらの必要以上の機能は削除され、よりセキュアになりました。
  • tkn pr logs コマンドを使用して、再試行されたタスク実行のログストリームを表示できます。
  • tkn tr delete コマンドで --clustertask オプションを使用して、特定のクラスタータスクに関連付けられたすべてのタスク実行を削除できます。
  • EventListener リソースでの Knative サービスのサポートは、新規の customResource フィールドを導入して追加されます。
  • イベントペイロードが JSON 形式を使用しない場合にエラーメッセージが表示されます。
  • GitLab、BitBucket、GitHub などのソース制御インターセプターは、新規の InterceptorRequest または InterceptorResponse を使用できるようになりました。
  • 新しい CEL 関数の marshalJSON が実装され、JSON オブジェクトまたは配列を文字列にエンコードできます。
  • CEL およびソース制御コアインターセプターを提供する HTTP ハンドラーが追加されました。これは、tekton-pipelines namespace にデプロイされる単一の HTTP サーバーに 4 つのコアインターセプターをパッケージ化します。EventListener オブジェクトは、HTTP サーバー経由でイベントをインターセプターに転送します。それぞれのインターセプターは異なるパスで利用できます。たとえば、CEL インターセプターは /cel パスで利用できます。
  • pipelines-scc SCC (Security Context Constraint) は、パイプラインのデフォルト pipeline サービスアカウントで使用されます。この新規サービスアカウントは anyuid と似ていますが、OpenShift Container Platform 4.7 の SCC について YAML に定義されるように若干の違いがあります。

    fsGroup:
      type: MustRunAs

4.1.9.3. 非推奨の機能

  • パイプラインリソースストレージの build-gcs サブタイプ、および gcs-fetcher イメージは、サポートされていません。
  • クラスタータスクの taskRun フィールドで、tekton.dev/task ラベルが削除されます。
  • Webhook の場合、フィールド admissionReviewVersions に対応する値 v1beta1 は削除されます。
  • ビルドおよびデプロイ用の creds-init ヘルパーイメージが削除されます。
  • トリガー仕様およびバインディングでは、template.ref が優先されるため、非推奨フィールドの template.name が削除されます。ref フィールドを使用するには、eventListener のすべての定義を更新する必要があります。

    注記

    template.name フィールドが利用できないため、Pipelines 1.3.x 以前のバージョンから Pipelines 1.4.0 へのアップグレードにより、イベントリスナーが破損します。このような場合には、Pipelines 1.4.1 を使用して、復元された template.name フィールドを利用します。

  • EventListener カスタムリソース/オブジェクトの場合、Resource が優先されるために、PodTemplate および ServiceType フィールドは非推奨になりました。
  • 非推奨の仕様スタイルの埋め込みバインディングは削除されています。
  • spec フィールドは triggerSpecBinding から削除されています。
  • イベント ID 表現は、5 文字のランダムな文字列から UUID に変更されています。

4.1.9.4. 既知の問題

  • Developer パースペクティブでは、Pipeline メトリックおよびトリガー機能は OpenShift Container Platform 4.7.6 以降のバージョンでのみ利用できます。
  • IBM Power Systems、IBM Z、および LinuxONE では、tkn hub コマンドはサポートされません。
  • IBM Power Systems (ppc64le)、IBM Z、および LinuxONE (s390x) クラスターで Maven および Jib Maven クラスタータスクを実行する場合、MAVEN_IMAGE パラメーターの値を maven:3.6.3-adoptopenjdk-11 に設定します。
  • トリガーは、トリガーバインディングに以下の設定がある場合は、JSON 形式の正しくない処理によって生じるエラーを出力します。

    params:
      - name: github_json
        value: $(body)

    この問題を解決するには、以下を実行します。

    • トリガー v0.11.0 以降を使用している場合、marshalJSON 関数を使用して JSON オブジェクトまたは配列を取得し、そのオブジェクトまたは配列の JSON エンコーディングを文字列として返します。
    • 古いバージョンのトリガーを使用している場合は、以下のアノテーションをトリガーテンプレートに追加します。

      annotations:
        triggers.tekton.dev/old-escape-quotes: "true"
  • Pipelines 1.3.x から 1.4.x にアップグレードする際に、ルートを再作成する必要があります。

4.1.9.5. 修正された問題

  • 以前のバージョンでは、tekton.dev/task ラベルがクラスタータスクのタスク実行から削除され、tekton.dev/clusterTask ラベル が導入されました。この変更により生じる問題は 、clustertask describe および delete コマンドを修正して解決されています。さらに、タスクの lastrun 機能は変更され、古いバージョンのパイプラインでタスクとクラスタータスクの両方のタスク実行に適用される tekton.dev/task ラベルの問題を修正できるになりました。
  • 対話的な tkn pipeline start pipelinename を実行する場合、PipelineResource が対話的に作成されます。tkn p start コマンドは、リソースのステータスが nil ではない場合にリソースのステータスを出力します。
  • 以前のバージョンでは、tekton.dev/task=name ラベルは、クラスタータスクから作成されるタスク実行から削除されました。今回の修正により、--last フラグの指定される tkn clustertask start コマンドが変更され、作成されたタスク実行で tekton.dev/task=name ラベルの有無がチェックされるようになりました。
  • タスクがインラインのタスク仕様を使用する場合、対応するタスク実行は tkn pipeline describe コマンドの実行時にパイプラインに組み込まれ、タスク名は埋め込まれた状態で返されます。
  • tkn version コマンドは、設定された kubeConfiguration namespace やクラスターへのアクセスなしに、インストールされた Tekton CLI ツールのバージョンを表示するように修正されています。
  • 引数が予期せずに使用されるか、複数の引数が使用される場合、tkn completion コマンドでエラーが発生します。
  • 以前のバージョンでは、パイプライン仕様でネスト化された finally タスクのあるパイプライン実行は、v1alpha1 バージョンに変換され、v1beta1 バージョンに戻されると、それらの finally タスクを失うことがあります。変換中に発生するこのエラーは修正され、潜在的データ損失を防ぐことができます。finally タスクがパイプライン仕様でネスト化されたパイプライン実行はシリアライズされ、アルファバージョンに保存されてデシリアライズは後に実行されるようになりました。
  • 以前のバージョンでは、サービスアカウントで secrets フィールドに {} があると、Pod の生成でエラーが発生しました。空のシークレット名を持つ GET 要求がエラーがリソース名が空ではないことを示すエラーを返すため、タスク実行は CouldntGetTask で失敗しました。この問題は、kubeclient GET 要求で空のシークレット名を使用しないことで解決されています。
  • v1beta1 API バージョンのあるパイプラインは、finally タスクを失うことなく、v1alpha1 バージョンと共に要求できるようになりました。返される v1alpha1 バージョンを適用すると、リソースが v1beta1 として保存され、finally セクションがその元の状態に戻ります。
  • 以前のバージョンでは、コントローラーの selfLink フィールドが設定されていないと、Kubernetes v1.20 クラスターでエラーが発生しました。一時的な修正として、CloudEvent ソースフィールドは、自動設定される selfLink フィールドの値なしに現在のソース URI に一致する値に設定されます。
  • 以前のバージョンでは、gcr.io などのドットの付いたシークレット名により、タスク実行の作成が失敗しました。これは、シークレット名がボリュームマウント名の一部として内部で使用されるために生じました。ボリュームマウント名は RFC1123 DNS ラベルに準拠し、名前の一部として使用されるドットを許可しません。この問題は、ドットをダッシュに置き換えることで解決し、これにより名前の読み取りが可能になりました。
  • コンテキスト変数は、finally タスクで検証されるようになりました。
  • 以前のバージョンでは、タスク実行リコンサイラーが渡され、作成した Pod の名前を含む直前のステータス更新を持たないタスク実行があると、タスク実行リコンサイラーはタスク実行に関連付けられた Pod をリスト表示しました。タスク実行リコンサイラーは、Pod を検索するために、Pod に伝播されるタスク実行のラベルを使用しました。タスク実行の実行中にこれらのラベルを変更すると、コードが既存の Pod を見つけることができませんでした。その結果、重複した Pod が作成されました。この問題は、Pod の検索時に tekton.dev/taskRun の Tekton で制御されるラベルのみを使用するようにタスク実行リコンサイラーを変更することで修正されています。
  • 以前のバージョンでは、パイプラインがオプションのワークスペースを受け入れ、これをパイプラインタスクに渡すと、パイプライン実行リコンサイラーは、ワークスペースが提供されておらず、欠落しているワークスペースのバインディングがオプションのワークスペースについて有効な場合でも、エラーを出して停止しました。この問題は、オプションのワークスペースが指定されていない場合でも、パイプライン実行リコンサイラーがタスク実行の作成に失敗しないようにすることで修正されています。
  • ステップのステータスの並び順は、ステップコンテナーの順序と一致します。
  • 以前のバージョンでは、Pod で CreateContainerConfigError の理由が出されると、タスク実行のステータスは unknown に設定されました。これは、タスクおよびパイプラインが Pod がタイムアウトするまで実行されることを意味しました。この問題は、Pod で CreateContainerConfigError の理由が出される際にタスクを失敗 (failed) として設定できるようにタスク実行ステータスを false に設定することで解決されています。
  • 以前のバージョンでは、パイプライン実行の完了後に、パイプラインの結果は最初の調整で解決されました。これにより解決が失敗し、パイプライン実行の Succeeded 状態が上書きされる可能性がありました。その結果、最終のステータス情報が失われ、パイプライン実行の状態を監視するすべてのサービスに混乱を生じさせる可能性がありました。この問題は、パイプライン実行が Succeeded または True 状態になる際に、パイプラインの結果の解決を調整の最後に移行することにで解決されました。
  • 実行ステータス変数が検証されるようになりました。これにより、実行ステータスにアクセスするためのコンテキスト変数の検証中に、タスク結果が検証されることを防ぐことができます。
  • 以前のバージョンでは、無効な変数を含むパイプラインの結果は、変数のリテラル式はそのままの状態でパイプライン実行に追加されます。そのため、結果が正しく設定されているかどうかを評価することは容易ではありませんでした。この問題は、失敗したタスク実行を参照するパイプライン実行結果でフィルタリングすることで解決されています。無効な変数を含むパイプラインの結果は、パイプライン実行によって出されなくなりました。
  • tkn eventlistener describe コマンドは、テンプレートなしでクラッシュを回避できるように修正されています。また、トリガーの参照に関する情報も表示します。
  • template.name が利用できないため、Pipelines 1.3.x 以前のバージョンから Pipelines 1.4.0 へのアップグレードにより、イベントリスナーが破損します。Pipelines 1.4.1 では、トリガーでイベントリスナーが破損しないように、template.name が復元されています。
  • Pipelines 1.4.1 では、ConsoleQuickStart カスタムリソースが OpenShift Container Platform 4.7 の機能および動作に合わせて更新されました。

4.1.10. Red Hat OpenShift Pipelines テクノロジープレビュー 1.3 のリリースノート

4.1.10.1. 新機能

Red Hat OpenShift Pipelines テクノロジープレビュー (TP) 1.3 が OpenShift Container Platform 4.7 で利用可能になりました。Red Hat OpenShift Pipelines TP 1.3 が以下をサポートするように更新されています。

  • Tekton Pipelines 0.19.0
  • Tekton tkn CLI 0.15.0
  • Tekton Triggers 0.10.2
  • Tekton Catalog 0.19.0 をベースとするクラスタータスク
  • OpenShift Container Platform 4.7 での IBM Power Systems
  • OpenShift Container Platform 4.7 での IBM Z および LinuxONE

以下のセクションでは、修正および安定性の面での改善点に加え、OpenShift Pipelines 1.3 の主な新機能について説明します。

4.1.10.1.1. Pipelines
  • S2I や Buildah タスクなどのイメージをビルドするタスクが、イメージの SHA を含むビルドされたイメージの URL を生成するようになりました。
  • Condition カスタムリソース定義 (CRD) が非推奨となっているため、カスタムタスクを参照するパイプラインタスクの条件は許可されません。
  • spec.steps[].imagePullPolicy および spec.sidecar[].imagePullPolicy フィールドの Task CRD に変数の拡張が追加されました。
  • disable-creds-init feature-flag を true に設定すると、Tekton のビルトイン認証情報メカニズムを無効にすることができます。
  • 解決済みの When 式は、PipelineRun 設定の Status フィールドの Skipped Tasks および Task Runs セクションにリスト表示されるようになりました。
  • git init コマンドが、再帰的なサブモジュールのクローンを作成できるようになりました。
  • Task CR の作成者は、Task 仕様のステップのタイムアウトを指定できるようになりました。
  • エントリーポイントイメージを distroless/static:nonroot イメージにベースとして作成し、ベースイメージに存在する cp コマンドを使用せずに、これを宛先にコピーするモードを許可できるようになりました。
  • Git SSH シークレットの既知のホストの省略を許可しないように、設定フラグ require-git-ssh-secret-known-hosts を使用できるようになりました。フラグ値が true に設定されている場合には、Git SSH シークレットに known_host フィールドを含める必要があります。フラグのデフォルト値は false です。
  • オプションのワークスペースの概念が導入されました。タスクまたはパイプラインはワークスペースオプションを宣言し、その存在に基づいて動作を条件的に変更する可能性があります。タスク実行またはパイプライン実行により、そのワークスペースが省略され、タスクまたはパイプラインの動作が変更される可能性があります。デフォルトのタスク実行ワークスペースは、省略されたオプションのワークスペースの代わりに追加されることはありません。
  • Tekton の認証情報の初期化により、SSH 以外の URL で使用する SSH 認証情報が検出されるほか、Git パイプラインリソースでは SSH URL で使用する http 認証情報が検出され、Step コンテナーで警告がログに記録されるようになりました。
  • タスク実行コントローラーは、Pod テンプレートで指定されたアフィニティーがアフィニティーアシスタントによって上書きされる場合に警告イベントを生成します。
  • タスク実行リコンサイラーは、タスク実行が完了すると生成されるクラウドイベントのメトリックを記録するようになりました。これには再試行が含まれます。
4.1.10.1.2. Pipelines CLI
  • --no-headers flag のサポートが、次のコマンドに追加されました: tkn condition listtkn triggerbinding listtkn eventlistener listtkn clustertask listtkn clustertriggerbinding list
  • 併用した場合、--last または --use オプションは、--prefix-name および --timeout オプションを上書きします。
  • tkn eventlistener logs コマンドが追加され、EventListener ログが表示されるようになりました。
  • tekton hub コマンドは tkn CLI に統合されるようになりました。
  • --nocolour オプションは --no-color に変更されました。
  • --all-namespaces フラグは、次のコマンドに追加されました: tkn triggertemplate listtkn condition listtkn triggerbinding listtkn eventlistener list
4.1.10.1.3. トリガー
  • EventListener テンプレートでリソース情報を指定できるようになりました。
  • すべてのトリガーリソースの get 動詞に加えて、EventListener サービスアカウントに list および watch 動詞が設定されることが必須になりました。これにより、Listers を使用して EventListenerTriggerTriggerBindingTriggerTemplate、および ClusterTriggerBinding リソースからデータを取得することができます。この機能を使用して、複数のインフォーマーを指定するのではなく Sink オブジェクトを作成し、API サーバーを直接呼び出すことができます。
  • イミュータブルな入力イベント本体をサポートする新たな Interceptor インターフェイスが追加されました。インターセプターはデータまたはフィールドを新しい extensions フィールドに追加できるようになり、入力本体を変更できなくなったことでイミュータブルとなりました。CEL インターセプターはこの新たな Interceptor インターフェイスを使用します。
  • namespaceSelector フィールドは EventListener リソースに追加されます。これを使用して、EventListener リソースがイベント処理用に Trigger オブジェクトを取得できる namespace を指定します。namespaceSelector フィールドを使用するには、EventListener のサービスアカウントにクラスターロールが必要です。
  • トリガー EventListener リソースは、eventlistener Pod へのエンドツーエンドのセキュアな接続をサポートするようになりました。
  • "\" に置き換えることで、TriggerTemplates リソースのエスケープパラメーター動作が削除されました。
  • Kubernetes リソースをサポートする新規 resources フィールドは、EventListener 仕様の一部として導入されます。
  • ASCII 文字列の大文字と小文字へのサポートが含まれる CEL インターセプターの新機能が追加されました。
  • TriggerBinding リソースは、トリガーの name および value フィールドを使用するか、イベントリスナーを使用して埋め込むことができます。
  • PodSecurityPolicy 設定は、制限された環境で実行されるように更新されます。これにより、コンテナーは root 以外のユーザーとして実行する必要があります。さらに、Pod セキュリティーポリシーを使用するためのロールベースのアクセス制御は、クラスタースコープから namespace スコープに移行されます。これにより、トリガーは namespace に関連しない他の Pod セキュリティーポリシーを使用することができません。
  • 埋め込みトリガーテンプレートのサポートが追加されました。name フィールドを使用して埋め込みテンプレートを参照するか、spec フィールド内にテンプレートを埋め込むことができます。

4.1.10.2. 非推奨の機能

  • PipelineResources CRD を使用する Pipeline テンプレートは非推奨となり、今後のリリースで削除されます。
  • template.ref フィールドが優先されるため、template.name フィールドは非推奨となり、今後のリリースで削除されます。
  • --check コマンドの短縮形である -c が削除されました。さらに、グローバル tkn フラグが version コマンドに追加されます。

4.1.10.3. 既知の問題

  • CEL オーバーレイは、受信イベント本体を変更する代わりに、フィールドを新しい最上位の extensions 関数に追加します。TriggerBinding リソースは、$(extensions.<key>) 構文を使用して、この新しい extensions 関数内の値にアクセスできます。$(body.<overlay-key>) の代わりに $(extensions.<key>) 構文を使用するようにバインディングを更新します。
  • "\" に置き換えることで、エスケープパラメーター動作が削除されました。古いエスケープパラメーターの動作を保持する必要がある場合は、tekton.dev/old-escape-quotes: true" アノテーションを TriggerTemplate 仕様に追加します。
  • TriggerBinding リソースは、トリガーまたはイベントリスナー内の name および value フィールドを使用して組み込みことができます。ただし、単一のバインディングに name および ref フィールドの両方を指定することはできません。ref フィールドを使用して TriggerBinding リソースおよび埋め込みバインディングの name フィールドを参照します。
  • インターセプターは、EventListener リソースの namespace 外で secret の参照を試行することはできません。シークレットを `EventListener` の namespace に含める必要があります。
  • Trigger 0.9.0 以降では、本体またはヘッダーベースの TriggerBinding パラメーターが見つからないか、イベントペイロードで形式が正しくない場合に、エラーを表示する代わりにデフォルト値が使用されます。
  • JSON アノテーションを修正するには、Tekton および Pipelines 0.16.x を使用して WhenExpression オブジェクトで作成されたタスクおよびパイプラインを再適用する必要があります。
  • パイプラインがオプションのワークスペースを受け入れ、これをタスクに付与すると、ワークスペースが指定されていない場合はパイプライン実行が停止します。
  • 非接続環境で Buildah クラスタータスクを使用するには、Dockerfile が内部イメージストリームをベースイメージとして使用していることを確認してから、これを S2I クラスタータスクと同じ方法で使用します。

4.1.10.4. 修正された問題

  • CEL インターセプターによって追加された拡張機能は、イベント本体内に Extensions フィールドを追加して Webhook インターセプターに渡されます。
  • ログリーダーのアクティビティータイムアウトは、LogOptions フィールドを使用して設定できるようになりました。ただし、10 秒のタイムアウトのデフォルト動作は保持されます。
  • log コマンドは、タスク実行またはパイプライン実行が完了したときに --follow フラグを無視し、ライブログではなく利用可能なログを読み取ります。
  • 以下の Tekton リソースへの参照: EventListenerTriggerBindingClusterTriggerBindingCondition、および TriggerTemplate は、tkn コマンドのすべてのユーザーに表示されるメッセージで標準化され、一貫性を保つようになりました。
  • 以前は、--use-taskrun <canceled-task-run-name>--use-pipelinerun <canceled-pipeline-run-name> または --last フラグを使用してキャンセルされたタスク実行またはパイプライン実行を開始した場合、新規の実行はキャンセルされました。このバグは修正されています。
  • tkn pr desc コマンドが強化され、パイプラインが各種の状態で実行された場合に失敗しなくなりました。
  • --task オプションで tkn tr delete コマンドを使用してタスク実行を削除し、クラスタータスクが同じ名前で存在する場合、クラスタータスクのタスク実行も削除されます。回避策として、TaskRefKind フィールドを使用して、タスク実行をフィルタリングします。
  • tkn triggertemplate describe コマンドは、出力内の apiVersion 値の一部のみを表示します。たとえば、triggers.tekton.dev/v1alpha1 ではなく、triggers.tekton.dev のみが表示されました。このバグは修正されています。
  • 特定の条件下で Webhook はリースの取得に失敗し、正常に機能しません。このバグは修正されています。
  • v0.16.3 で作成した When 式を持つパイプラインは、v0.17.1 以降で実行できるようになりました。アップグレード後に、アノテーションの最初の大文字と小文字の両方がサポートされるようになったため、以前のバージョンで作成されたパイプライン定義を再適用する必要はありません。
  • デフォルトでは、leader-election-ha フィールドが高可用性に対して有効にされるようになりました。コントローラーフラグ disable-hatrue に設定すると、高可用性サポートが無効になります。
  • 重複したクラウドイベントに関する問題が修正されています。クラウドイベントは、条件が状態、理由、またはメッセージを変更する場合にのみ送信されるようになりました。
  • サービスアカウント名が PipelineRun または TaskRun 仕様にない場合、コントローラーは config-defaults 設定マップからサービスアカウント名を使用します。サービスアカウント名が config-defaults 設定マップにもない場合、コントローラーはこれを仕様で default に設定するようになりました。
  • アフィニティーアシスタントとの互換性の検証は、同じ永続ボリューム要求 (PVC) が複数のワークスペースに使用される場合にサポートされるようになりましたが、サブパスは異なります。

4.1.11. Red Hat OpenShift Pipelines テクノロジープレビュー 1.2 のリリースノート

4.1.11.1. 新機能

Red Hat OpenShift Pipelines テクノロジープレビュー (TP) 1.2 が OpenShift Container Platform 4.6 で利用可能になりました。Red Hat OpenShift Pipelines TP 1.2 が以下をサポートするように更新されています。

  • Tekton Pipelines 0.16.3
  • Tekton tkn CLI 0.13.1
  • Tekton Triggers 0.8.1
  • Tekton Catalog 0.16 をベースとするクラスタータスク
  • OpenShift Container Platform 4.6 での IBM Power Systems
  • OpenShift Container Platform 4.6 での IBM Z および LinuxONE

以下では、修正および安定性の面での改善点に加え、OpenShift Pipelines 1.2 の主な新機能について説明します。

4.1.11.1.1. Pipelines
  • Red Hat OpenShift Pipelines のリリースでは、非接続インストールのサポートが追加されました。

    注記

    制限された環境でのインストールは現時点で、IBM Power Systems、IBM Z、および LinuxONE ではサポートされていません。

  • conditions リソースの代わりに when フィールドを使用して、特定の条件が満たされる場合にのみタスクを実行できるようになりました。WhenExpression の主なコンポーネントは InputOperator、および Values です。すべての When 式が True に評価されると、タスクが実行されます。When 式のいずれかが False に評価されると、タスクはスキップされます。
  • ステップのステータスは、タスクの実行がキャンセルまたはタイムアウトすると更新されるようになりました。
  • git-init が使用するベースイメージをビルドするために、Git Large File Storage (LFS) のサポートが利用できるようになりました。
  • taskSpec フィールドを使用して、タスクがパイプラインに組み込まれる際に、ラベルやアノテーションなどのメタデータを指定できるようになりました。
  • クラウドイベントがパイプラインの実行でサポートされるようになりました。backoff を使用した再試行が、クラウドイベントパイプラインリソースによって送信されるクラウドイベントに対して有効になりました。
  • Task リソースが宣言するものの、TaskRun リソースが明示的に指定しないワークスペースのデフォルトの Workspace 設定を設定できるようになりました。
  • サポートは、PipelineRun namespace および TaskRun namespace の namespace 変数の補間に利用できます。
  • TaskRun オブジェクトの検証が追加され、TaskRun リソースが Affinity Assistant に関連付けられる際に複数の永続ボリューム要求 (PVC) ワークスペースが使用されていないことを確認するようになりました。複数の永続ボリューム要求 (PVC) ワークスペースが使用されていると、タスクの実行は TaskRunValidationFailed の状態で失敗します。デフォルトで、Affinity Assistant は Red Hat OpenShift Pipelines で無効にされているため、これを使用できるように有効にする必要があります。
4.1.11.1.2. Pipelines CLI
  • tkn task describetkn taskrun describetkn clustertask describetkn pipeline describe、および tkn pipelinerun describe コマンドが以下を実行するようになりました。

    • TaskTaskRunClusterTaskPipeline および PipelineRun リソースのいずれかが 1 つしかない場合、それぞれを自動的に選択します。
    • 出力に TaskTaskRunClusterTaskPipeline および PipelineRun リソースの結果をそれぞれ表示します。
    • 出力に TaskTaskRunClusterTaskPipeline および PipelineRun リソースで宣言されたワークスペースをそれぞれ表示します。
  • tkn clustertask start コマンドに --prefix-name オプションを指定して、タスク実行の名前に接頭辞を指定できるようになりました。
  • インタラクティブモードのサポートが tkn clustertask start コマンドに提供されるようになりました。
  • TaskRun および PipelineRun オブジェクトのローカルまたはリモートファイル定義を使用して、パイプラインでサポートされる PodTemplate プロパティーを指定できるようになりました。
  • --use-params-defaults オプションを tkn clustertask start コマンドに指定して、ClusterTask 設定に設定したデフォルト値を使用して、タスク実行を作成できるようになりました。
  • tkn pipeline start コマンドの --use-param-defaults フラグで、デフォルトの値が一部のパラメーターに指定されていない場合に対話モードをプロンプトで表示するようになりました。
4.1.11.1.3. トリガー
  • YAML 文字列を文字列のマップに解析するために、parseYAML という名前の Common Expression Language (CEL) 関数が追加されました。
  • 式を評価する際や、評価環境を作成するためにフック本体を解析する際に、CEL 式の解析を行うエラーメッセージの詳細度が上がりました。
  • ブール値とマップが CEL オーバーレイメカニズムで式の値として使用されている場合に、それらをマーシャリングするためのサポートが利用できるようになりました。
  • 以下のフィールドが EventListener オブジェクトに追加されました。

    • replicas フィールドは、YAML ファイルのレプリカ数を指定して、イベントリスナーが複数の Pod を実行できるようにします。
    • NodeSelector フィールドでは、EventListener オブジェクトがイベントリスナー Pod を特定のノードにスケジュールできるようにします。
  • Webhook インターセプターは EventListener-Request-URL ヘッダーを解析し、イベントリスナーによって処理される元のリクエスト URL からパラメーターを抽出できるようになりました。
  • イベントリスナーからのアノテーションがデプロイメント、サービス、およびその他の Pod に伝播できるようになりました。サービスまたはデプロイメントのカスタムアノテーションは上書きされるため、イベントリスナーアノテーションに追加して伝播できるようにする必要があります。
  • EventListener 仕様のレプリカの適切な検証が、ユーザーが spec.replicas 値を negative または zero として指定する場合に利用できるようになりました。
  • TriggerCRD オブジェクトを、TriggerRef フィールドを使用して参照として EventListener 仕様内に指定し、TriggerCRD オブジェクトを別個に作成してから、これを EventListener 仕様内でバインドできるようになりました。
  • TriggerCRD オブジェクトの検証およびデフォルト値が利用可能になりした。

4.1.11.2. 非推奨の機能

  • $(params) パラメーターは triggertemplate リソースから削除され、$(tt.params) に置き換えられ、これにより resourcetemplatetriggertemplate パラメーター間の混乱が生じなくなります。
  • オプションの EventListenerTrigger ベースの認証レベルの ServiceAccount 参照が ServiceAccountName 文字列へのオブジェクト参照から変更されました。これにより、ServiceAccount 参照が EventListenerTrigger オブジェクトと同じ namespace に置かれるようになりました。
  • Conditions カスタムリソース定義 (CRD) は非推奨となり、代わりに WhenExpressions CRD が使用されます。
  • PipelineRun.Spec.ServiceAccountNames オブジェクトは非推奨となり、PipelineRun.Spec.TaskRunSpec[].ServiceAccountName オブジェクトによって置き換えられます。

4.1.11.3. 既知の問題

  • Red Hat OpenShift Pipelines のリリースでは、非接続インストールのサポートが追加されました。ただし、クラスタータスクで使用される一部のイメージは、非接続クラスターで動作するようにミラーリングする必要があります。
  • openshift namespace のパイプラインは、Red Hat OpenShift Pipelines Operator のアンインストール後に削除されません。oc delete pipelines -n openshift --all コマンドを使用してパイプラインを削除します。
  • Red Hat OpenShift Pipelines Operator をアンインストールしても、イベントリスナーは削除されません。

    回避策として、EventListener および Pod CRD を削除するには、以下を実行します。

    1. EventListener オブジェクトを foregroundDeletion ファイナライザーで編集します。

      $ oc patch el/<eventlistener_name> -p '{"metadata":{"finalizers":["foregroundDeletion"]}}' --type=merge

      以下に例を示します。

      $ oc patch el/github-listener-interceptor -p '{"metadata":{"finalizers":["foregroundDeletion"]}}' --type=merge
    2. EventListener CRD を削除します。

      $ oc patch crd/eventlisteners.triggers.tekton.dev -p '{"metadata":{"finalizers":[]}}' --type=merge
  • IBM Power Systems (ppc64le) または IBM Z (s390x) クラスターでコマンド仕様なしにマルチアーキテクチャーコンテナーイメージタスクを実行すると、TaskRun リソースは以下のエラーを出して失敗します。

    Error executing command: fork/exec /bin/bash: exec format error

    回避策として、アーキテクチャー固有のコンテナーイメージを使用するか、正しいアーキテクチャーを参照する sha256 ダイジェストを指定します。sha256 ダイジェストを取得するには、以下を実行します。

    $ skopeo inspect --raw <image_name>| jq '.manifests[] | select(.platform.architecture == "<architecture>") | .digest'

4.1.11.4. 修正された問題

  • CEL フィルター、Webhook バリデーターのオーバーレイ、およびインターセプターの式を確認するための簡単な構文検証が追加されました。
  • Trigger は、基礎となるデプロイメントおよびサービスオブジェクトに設定されたアノテーションを上書きしなくなりました。
  • 以前のバージョンでは、イベントリスナーはイベントの受け入れを停止しました。今回の修正により、この問題を解決するために EventListener シンクの 120 秒のアイドルタイムアウトが追加されました。
  • 以前のバージョンでは、Failed(Canceled) 状態でパイプラインの実行を取り消すと、成功のメッセージが表示されました。これは、代わりにエラーが表示されるように修正されました。
  • tkn eventlistener list コマンドがリスト表示されたイベントリスナーのステータスを提供するようになり、利用可能なイベントリスナーを簡単に特定できるようになりました。
  • トリガーがインストールされていない場合や、リソースが見つからない場合に、triggers list および triggers describe コマンドについて一貫性のあるエラーメッセージが表示されるようになりました。
  • 以前のバージョンでは、多くのアイドル接続がクラウドイベントの配信時に増大しました。この問題を修正するために、DisableKeepAlives: true パラメーターが cloudeventclient 設定に追加されました。新規の接続がすべてのクラウドイベントに設定されます。
  • 以前のバージョンでは、特定のタイプの認証情報が指定されていない場合であっても、creds-init コードが空のファイルをディスクに書き込みました。今回の修正により、creds-init コードが変更され、正しくアノテーションが付けられたシークレットから実際にマウントされた認証情報のみのファイルを書き込むようになりました。

4.1.12. Red Hat OpenShift Pipelines テクノロジープレビュー 1.1 のリリースノート

4.1.12.1. 新機能

Red Hat OpenShift Pipelines テクノロジープレビュー (TP) 1.1 が OpenShift Container Platform 4.5 で利用可能になりました。Red Hat OpenShift Pipelines TP 1.1 が以下をサポートするように更新されています。

  • Tekton Pipelines 0.14.3
  • Tekton tkn CLI 0.11.0
  • Tekton Triggers 0.6.1
  • Tekton Catalog 0.14 をベースとするクラスタータスク

以下では、修正および安定性の面での改善点に加え、OpenShift Pipelines 1.1 の主な新機能について説明します。

4.1.12.1.1. Pipelines
  • ワークスペースをパイプラインリソースの代わりに使用できるようになりました。パイプラインリソースはデバッグが容易ではなく、スコープの制限があり、タスクの再利用を可能にしないため、OpenShift Pipelines ではワークスペースを使用することが推奨されます。ワークスペースの詳細は、OpenShift Pipelines のセクションを参照してください。
  • ボリューム要求テンプレートのワークスペースのサポートが追加されました。

    • パイプライン実行およびタスク実行のボリューム要求テンプレートがワークスペースのボリュームソースとして追加できるようになりました。次に、tekton-controller はパイプラインのすべてのタスク実行の PVC として表示されるテンプレートを使用して永続ボリューム要求 (PVC) を作成します。したがって、複数のタスクにまたがるワークスペースをバインドするたびに PVC 設定を定義する必要はありません。
    • ボリューム要求テンプレートがボリュームソースとして使用される場合の PVC の名前検索のサポートが、変数の置換を使用して利用できるようになりました。
  • 監査を強化するサポート:

    • PipelineRun.Status フィールドには、パイプラインのすべてのタスク実行のステータスと、パイプライン実行の進捗をモニターするためにパイプライン実行をインスタンス化する際に使用するパイプライン仕様が含まれるようになりました。
    • Pipeline の結果が Pipeline 仕様および PipelineRun ステータスに追加されました。
    • TaskRun.Status フィールドには、TaskRun リソースのインスタンス化に使用される実際のタスク仕様が含まれるようになりました。
  • デフォルトパラメーターを各種の状態に適用するサポート。
  • クラスタータスクを参照して作成されるタスク実行は、tekton.dev/task ラベルではなく tekton.dev/clusterTask ラベルを追加するようになりました。
  • kube config writer は、kubeconfig-creator タスクでパイプラインリソースタイプクラスターの置き換えを有効にするために ClientKeyData および ClientCertificateData 設定をリソース構造に追加できるようになりました。
  • feature-flags および config-defaults 設定マップの名前はカスタマイズ可能になりました。
  • タスク実行で使用される Pod テンプレートのホストネットワークのサポートが追加されました。
  • Affinity Assistant が、ワークスペースボリュームを共有するタスク実行のノードのアフィニティーをサポートするようになりました。デフォルトで、これは OpenShift Pipelines で無効にされます。
  • Pod テンプレートは、Pod の起動時にコンテナーイメージのプルを許可するためにコンテナーランタイムが使用するシークレットを特定するために imagePullSecrets を指定するように更新されました。
  • コントローラーがタスク実行の更新に失敗した場合にタスク実行コントローラーから警告イベントを出すためのサポート。
  • アプリケーションまたはコンポーネントに属するリソースを特定するために、すべてのリソースに標準または推奨される k8s ラベルが追加されました。
  • Entrypoint プロセスがシグナルについて通知されるようになり、これらのシグナルは Entrypoint プロセスの専用の PID グループを使用して伝播されるようになりました。
  • Pod テンプレートはタスク実行仕様を使用してランタイム時にタスクレベルで設定できるようになりました。
  • Kubernetes イベントを生成するサポート。

    • コントローラーは、追加のタスク実行ライフサイクルイベント (taskrun started および taskrun running) のイベントを生成するようになりました。
    • パイプライン実行コントローラーは、パイプラインの起動時に毎回イベントを生成するようになりました。
  • デフォルトの Kubernetes イベントのほかに、タスク実行のクラウドイベントのサポートが利用可能になりました。コントローラーは、クラウドイベントとして create、started、および failed などのタスク実行イベントを送信するように設定できます。
  • パイプライン実行およびタスク実行の場合に適切な名前を参照するための $context.<taskRun|pipeline|pipelineRun>.name 変数を使用するサポート。
  • パイプライン実行パラメーターの検証が、パイプラインで必要なすべてのパラメーターがパイプライン実行によって提供できるようにするために利用可能になりました。これにより、パイプライン実行は必要なパラメーターに加えて追加のパラメーターを指定することもできます。
  • パイプライン YAML ファイルの finally フィールドを使用して、すべてのタスクが正常に終了するか、パイプラインのタスクの失敗後、パイプラインが終了する前に常に実行されるパイプライン内でタスクを指定できるようになりました。
  • git-clone クラスタータスクが利用できるようになりました。
4.1.12.1.2. Pipelines CLI
  • 組み込まれた Trigger バインディングのサポートが、tkn evenlistener describe コマンドで利用できるようになりました。
  • 正しくないサブコマンドが使用される場合にサブコマンドを推奨し、提案するためのサポート。
  • tkn task describe コマンドは、1 つのタスクのみがパイプラインに存在する場合にタスクを自動的に選択できるようになりました。
  • --use-param-defaults フラグを tkn task start コマンドに指定することにより、デフォルトのパラメーター値を使用してタスクを起動できるようになりました。
  • --workspace オプションを tkn pipeline start または tkn task start コマンドで使用して、パイプライン実行またはタスク実行のボリューム要求テンプレートを指定できるようになりました。
  • tkn pipelinerun logs コマンドに、finally セクションにリスト表示される最終タスクのログが表示されるようになりました。
  • インタラクティブモードのサポートが、以下の tkn リソース向けに tkn task start コマンドおよび describe サブコマンドに追加されました: pipelinepipelineruntasktaskrunclustertask および pipelineresource
  • tkn version コマンドで、クラスターにインストールされているトリガー のバージョンが表示されるようになりました。
  • tkn pipeline describe コマンドで、パイプラインで使用されるタスクに指定されたパラメーター値およびタイムアウトが表示されるようになりました。
  • 最近のパイプライン実行またはタスク実行をそれぞれ記述できるように、tkn pipelinerun describe および tkn taskrun describe コマンドの --last オプションのサポートが追加されました。
  • tkn pipeline describe コマンドに、パイプラインのタスクに適用される各種の状態が表示されるようになりました。
  • --no-headers および --all-namespaces フラグを tkn resource list コマンドで使用できるようになりました。
4.1.12.1.3. トリガー
  • 以下の Common Expression Language (CEL) 機能が利用できるようになりました。

    • parseURL: URL の一部を解析し、抽出します。
    • parseJSON: deployment webhook の payload フィールドの文字列に埋め込まれた JSON 値タイプを解析します。
  • Bitbucket からの Webhook の新規インターセプターが追加されました。
  • イベントリスナーは、kubectl get コマンドでリスト表示される際の追加フィールドとして Address URL および Available status を表示します。
  • トリガーテンプレートパラメーターは、$(params.<paramName>) ではなく $(tt.params.<paramName>) 構文を使用するようになり、トリガーテンプレートとリソーステンプレートパラメーター間で生じる混乱が軽減されました。
  • EventListener CRD に tolerations を追加し、セキュリティーや管理上の問題によりすべてのノードにテイントのマークが付けられる場合でもイベントリスナーが同じ設定でデプロイされるようにできるようになりました。
  • イベントリスナー Deployment の Readiness Probe を URL/live に追加できるようになりました。
  • イベントリスナートリガーでの TriggerBinding 仕様の埋め込みのサポート。
  • Trigger リソースに推奨される app.kubernetes.io ラベルでアノテーションが付けられるようになりました。

4.1.12.2. 非推奨の機能

本リリースでは、以下の項目が非推奨になりました。

  • clustertask コマンドおよび clustertriggerbinding コマンドを含む、クラスター全体のすべてのコマンドの --namespace または -n フラグが非推奨になりました。これは今後のリリースで削除されます。
  • ref フィールドが優先されるため、イベントリスナー内の triggers.bindingsname フィールドは非推奨となり、今後のリリースで削除されます。
  • $(tt.params) が優先されるため、$(params) を使用したトリガーテンプレートの変数の補間が非推奨となり、これにより、パイプライン変数の補間構文に関連した混乱が軽減されました。$(params.<paramName>) 構文は今後のリリースで削除されます。
  • tekton.dev/task ラベルはクラスタータスクで非推奨になりました。
  • TaskRun.Status.ResourceResults.ResourceRef フィールドは非推奨となり、今後削除されます。
  • tkn pipeline createtkn task create、および tkn resource create -f サブコマンドが削除されました。
  • namespace の検証が tkn コマンドから削除されました。
  • tkn ct start コマンドのデフォルトタイムアウトの 1h および -t フラグが削除されました。
  • s2i クラスタータスクが非推奨になりました。

4.1.12.3. 既知の問題

  • 各種の状態はワークスペースには対応しません。
  • --workspace オプションとおよびインタラクティブモードは tkn clustertask start コマンドではサポートされていません。
  • $(params.<paramName>) 構文の後方互換性のサポートにより、トリガーテンプレートがパイプライン固有のパラメーターで強制的に使用されます。 トリガー webhook がトリガーパラメーターとパイプラインパラメーターを区別できないためです。
  • Pipeline メトリックは、tekton_taskrun_count および tekton_taskrun_duration_seconds_count の promQL を実行する際に正しくない値を報告します。
  • パイプライン実行およびタスク実行は、存在しない PVC 名がワークスペースに指定されている場合でも、それぞれ Running および Running(Pending) の状態のままになります。

4.1.12.4. 修正された問題

  • 以前のバージョンでは、タスクおよびクラスタータスクの名前が同じ場合、tkn task delete <name> --trs コマンドは、タスクとクラスタータスクの両方を削除しました。今回の修正により、コマンドはタスク <name> で作成されるタスク実行のみを削除するようになりました。
  • 以前のバージョンでは、tkn pr delete -p <name> --keep 2 コマンドは、--keep フラグと共に使用する場合に -p フラグを無視し、最新の 2 つのパイプライン実行を除きすべてのパイプライン実行を削除しました。今回の修正により、コマンドは最新の 2 つのパイプライン実行を除き、パイプライン <name> で作成されるパイプライン実行のみを削除するようになりました。
  • tkn triggertemplate describe 出力には、YAML 形式ではなくテーブル形式でリソーステンプレートが表示されるようになりました。
  • 以前のバージョンでは、buildah クラスタータスクは、新規ユーザーがコンテナーに追加されると失敗していました。今回の修正により、この問題は解決されています。

4.1.13. Red Hat OpenShift Pipelines テクノロジープレビュー 1.0 のリリースノート

4.1.13.1. 新機能

Red Hat OpenShift Pipelines テクノロジープレビュー (TP) 1.0 が OpenShift Container Platform 4.4 で利用可能になりました。Red Hat OpenShift Pipelines TP 1.0 が以下をサポートするように更新されています。

  • Tekton Pipelines 0.11.3
  • Tekton tkn CLI 0.9.0
  • Tekton Triggers 0.4.0
  • Tekton Catalog 0.11 をベースとするクラスタータスク

以下では、修正および安定性の面での改善点に加え、OpenShift Pipelines 1.0 の主な新機能について説明します。

4.1.13.1.1. Pipelines
  • v1beta1 API バージョンのサポート。
  • 改善された制限範囲のサポート。以前のバージョンでは、制限範囲はタスク実行およびパイプライン実行に対してのみ指定されていました。制限範囲を明示的に指定する必要がなくなりました。namespace 間で最小の制限範囲が使用されます。
  • タスク結果およびタスクパラメーターを使用してタスク間でデータを共有するためのサポート。
  • パイプラインは、HOME 環境変数および各ステップの作業ディレクトリーを上書きしないように設定できるようになりました。
  • タスクステップと同様に、sidecars がスクリプトモードをサポートするようになりました。
  • タスク実行 podTemplate リソースに別のスケジューラーの名前を指定できるようになりました。
  • Star Array Notation を使用した変数置換のサポート。
  • Tekton コントローラーは、個別の namespace を監視するように設定できるようになりました。
  • パイプライン、タスク、クラスタータスク、リソース、および状態 (condition) の仕様に新規の説明フィールドが追加されました。
  • Git パイプラインリソースへのプロキシーパラメーターの追加。
4.1.13.1.2. Pipelines CLI
  • describe サブコマンドが以下の tkn リソースについて追加されました。EventListenerConditionTriggerTemplateClusterTask、および TriggerSBinding
  • v1beta1 についてのサポートが、v1alpha1 の後方互換性と共に以下のコマンドに追加されました。ClusterTaskTaskPipelinePipelineRun、および TaskRun
  • 以下のコマンドは、--all-namespaces フラグオプションを使用してすべての namespace からの出力をリスト表示できるようになりました。これらは、tkn task listtkn pipeline listtkn taskrun listtkn pipelinerun list です。

    これらのコマンドの出力は、--no-headers フラグオプションを使用してヘッダーなしで情報を表示するように強化されています。

  • --use-param-defaults フラグを tkn pipelines start コマンドに指定することにより、デフォルトのパラメーター値を使用してパイプラインを起動できるようになりました。
  • ワークスペースのサポートが tkn pipeline start および tkn task start コマンドに追加されるようになりました。
  • 新規の clustertriggerbinding コマンドが以下のサブコマンドと共に追加されました。describedelete、および list
  • ローカルまたはリモートの yaml ファイルを使用してパイプラインの実行を直接開始できるようになりました。
  • describe サブコマンドには、強化され、詳細化した出力が表示されるようになりました。descriptiontimeoutparam description、および sidecar status などの新規フィールドの追加により、コマンドの出力に特定の tkn リソースについてのより詳細な情報が提供されるようになりました。
  • tkn task log コマンドには、1 つのタスクが namespace に存在する場合にログが直接表示されるようになりました。
4.1.13.1.3. トリガー
  • Trigger は v1alpha1 および v1beta1 の両方のパイプラインリソースを作成できるようになりました。
  • 新規 Common Expression Language (CEL) インターセプター機能 compareSecret のサポート。この機能は、文字列と CEL 式のシークレットを安全な方法で比較します。
  • イベントリスナーのトリガーレベルでの認証および認可のサポート。

4.1.13.2. 非推奨の機能

本リリースでは、以下の項目が非推奨になりました。

  • 環境変数 $HOME、および Steps 仕様の変数 workingDir が非推奨となり、今後のリリースで変更される可能性があります。現時点で Step コンテナーでは、HOME および workingDir 変数が /tekton/home および /workspace 変数にそれぞれ上書きされます。

    今後のリリースでは、これらの 2 つのフィールドは変更されず、コンテナーイメージおよび Task YAML で定義される値に設定されます。本リリースでは、disable-home-env-overwrite および disable-working-directory-overwrite フラグを使用して、HOME および workingDir 変数の上書きを無効にします。

  • 以下のコマンドは非推奨となり、今後のリリースで削除される可能性があります。tkn pipeline createtkn task create
  • tkn resource create コマンドの -f フラグは非推奨になりました。これは今後のリリースで削除される可能性があります。
  • tkn clustertask create コマンドの -t フラグおよび --timeout フラグ (秒単位の形式) は非推奨になりました。期間タイムアウトの形式のみがサポートされるようになりました (例: 1h30s)。これらの非推奨のフラグは今後のリリースで削除される可能性があります。

4.1.13.3. 既知の問題

  • 以前のバージョンの Red Hat OpenShift Pipelines からアップグレードする場合は、既存のデプロイメントを削除してから Red Hat OpenShift Pipelines バージョン 1.0 にアップグレードする必要があります。既存のデプロイメントを削除するには、まずカスタムリソースを削除してから Red Hat OpenShift Pipelines Operator をアンインストールする必要があります。詳細は、Red Hat OpenShift Pipelines のアンインストールについてのセクションを参照してください。
  • 同じ v1alpha1 タスクを複数回送信すると、エラーが発生します。v1alpha1 タスクの再送信時に、oc apply ではなく oc replace コマンドを使用します。
  • buildah クラスタータスクは、新規ユーザーがコンテナーに追加されると機能しません。

    Operator がインストールされると、buildah クラスタータスクの --storage-driver フラグが指定されていないため、フラグはデフォルト値に設定されます。これにより、ストレージドライバーが正しく設定されなくなることがあります。新規ユーザーが追加されると、storage-driver が間違っている場合に、buildah クラスタータスクが以下のエラーを出して失敗します。

    useradd: /etc/passwd.8: lock file already used
    useradd: cannot lock /etc/passwd; try again later.

    回避策として、buildah-task.yaml ファイルで --storage-driver フラグの値を overlay に手動で設定します。

    1. cluster-admin としてクラスターにログインします。

      $ oc login -u <login> -p <password> https://openshift.example.com:6443
    2. oc edit コマンドを使用して buildah クラスタータスクを編集します。

      $ oc edit clustertask buildah

      buildah clustertask YAML ファイルの現行バージョンが EDITOR 環境変数で設定されたエディターで開かれます。

    3. Steps フィールドで、以下の command フィールドを見つけます。

       command: ['buildah', 'bud', '--format=$(params.FORMAT)', '--tls-verify=$(params.TLSVERIFY)', '--layers', '-f', '$(params.DOCKERFILE)', '-t', '$(resources.outputs.image.url)', '$(params.CONTEXT)']
    4. command フィールドを以下に置き換えます。

       command: ['buildah', '--storage-driver=overlay', 'bud', '--format=$(params.FORMAT)', '--tls-verify=$(params.TLSVERIFY)', '--no-cache', '-f', '$(params.DOCKERFILE)', '-t', '$(params.IMAGE)', '$(params.CONTEXT)']
    5. ファイルを保存して終了します。

    または、PipelinesCluster Tasksbuildah に移動して、buildah クラスタータスク YAML ファイルを Web コンソール上で直接変更することもできます。Actions メニューから Edit Cluster Task を選択し、直前の手順のように command フィールドを置き換えます。

4.1.13.4. 修正された問題

  • 以前のリリースでは、DeploymentConfig タスクは、イメージのビルドがすでに進行中であっても新規デプロイメントビルドをトリガーしていました。これにより、パイプラインのデプロイメントが失敗していました。今回の修正により、deploy task コマンドが oc rollout status コマンドに置き換えられ、進行中のデプロイメントが終了するまで待機するようになりました。
  • APP_NAME パラメーターのサポートがパイプラインテンプレートに追加されました。
  • 以前のバージョンでは、Java S2I のパイプラインテンプレートはレジストリーでイメージを検索できませんでした。今回の修正により、イメージはユーザーによって提供される IMAGE_NAME パラメーターの代わりに既存イメージのパイプラインリソースを使用して検索されるようになりました。
  • OpenShift Pipelines イメージはすべて、Red Hat Universal Base Images (UBI) をベースにしています。
  • 以前のバージョンでは、パイプラインが tekton-pipelines 以外の namespace にインストールされている場合、tkn version コマンドはパイプラインのバージョンを unknown と表示していました。今回の修正により、tkn version コマンドにより、正しいパイプラインのバージョンがすべての namespace で表示されるようになりました。
  • -c フラグは tkn version コマンドでサポートされなくなりました。
  • 管理者以外のユーザーがクラスタートリガーバインディングをリスト表示できるようになりました。
  • イベントリスナーの CompareSecret 機能が、CEL インターセプターについて修正されました。
  • タスクおよびクラスタータスクの listdescribe、および start サブコマンドは、タスクおよびクラスタータスクが同じ名前を持つ場合に出力に正常に表示されるようになりました。
  • 以前のバージョンでは、OpenShift Pipelines Operator は特権付き SCC (Security Context Constraints) を変更していました。これにより、クラスターのアップグレード時にエラーが発生しました。このエラーは修正されています。
  • tekton-pipelines namespace では、設定マップを使用して、すべてのタスク実行およびパイプライン実行のタイムアウトが default-timeout-minutes フィールドの値に設定されるようになりました。
  • 以前のバージョンでは、Web コンソールのパイプラインセクションは管理者以外のユーザーには表示されませんでした。この問題は解決されています。