1.10. 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 で利用できるようになりました。
1.10.1. 新機能
以下では、修正および安定性の面での改善点に加え、OpenShift Pipelines 1.8 の主な新機能を説明します。
1.10.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
メタデータは、パイプライン実行時に利用できます。 -
この更新により、
params
とresults
の値にオブジェクトまたはディクショナリータイプのサポートが追加されました。この変更は後方互換性に影響し、以前のクライアントを新しい 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 の一部です。
1.10.1.2. トリガー
この更新により、
EventListener
仕様のTriggerGroups
フィールドがアルファ機能から安定した機能に移行します。このフィールドを使用すると、トリガーのグループを選択および実行する前にインターセプターのセットを指定できます。この機能はデフォルトで使用できるため、
TektonConfig
カスタムリソース定義でpipeline.enable-api-fields
フィールドをalpha
に設定する必要がなくなりました。-
今回の更新により、
Trigger
リソースは、HTTPS を使用してClusterInterceptor
サーバーを実行することにより、エンドツーエンドの安全な接続をサポートします。
1.10.1.3. CLI
-
今回の更新では、
tkn taskrun export
コマンドを使用して、ライブタスクの実行をクラスターから YAML ファイルにエクスポートできます。これを使用して、タスクの実行を別のクラスターにインポートできます。 -
今回の更新により、
tkn pipeline start
コマンドに-o name
フラグを追加して、開始直後にパイプライン実行の名前を出力できるようになりました。 -
今回の更新により、利用可能なプラグインの一覧が
tkn --help
コマンドの出力に追加されました。 -
今回の更新により、パイプラインの実行またはタスクの実行を削除する際に、
--keep
フラグと--keep-since
フラグの両方を一緒に使用できるようになりました。 -
今回の更新により、非推奨の
PipelineRunCancelled
値ではなく、spec.status
フィールドの値としてCancelled
を使用できるようになりました。
1.10.1.4. Operator
- 今回の更新により、管理者はローカルの Tekton Hub インスタンスを設定して、デフォルトデータベースではなくカスタムデータベースを使用できるようになりました。
今回の更新では、クラスター管理者としてローカルの Tekton Hub インスタンスを有効にすると、データベースが定期的に更新され、カタログの変更が Tekton Hub Web コンソールに表示されるようになります。更新の間隔は調整できます。
以前は、カタログ内のタスクとパイプラインをデータベースに追加するために、そのタスクを手動で実行するか、cron ジョブをセットアップして実行していました。
- 今回の更新で、最小限の設定で Tekton Hub インスタンスをインストールし、実行できるようになりました。これにより、チームと連携して、必要な追加カスタマイズを決定できます。
-
今回の更新で、
GIT_SSL_CAINFO
がgit-clone
タスクに追加され、セキュアなリポジトリーをクローンできるようになりました。
1.10.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
設定マップとは異なり、アップグレード後も設定を維持できます。
1.10.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 です。
1.10.1.7. Pipelines as Code
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
コマンドを使用して、リポジトリーカスタムリソースとそれに関連付けられたシークレットを削除できるようになりました。
1.10.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 で、token
をprovider.token
に置き換え、secret
をwebhook.secret
に置き換えます。 -
今回の更新で、Pipelines as Code は、特別なテンプレート変数を、プライベートリポジトリーの複数のパイプライン実行をサポートするものに置き換えます。パイプラインの実行で、
secret: pac-git-basic-auth-{{repo_owner}}-{{repo_name}}
をsecret: {{ git_auth_secret }}
に置き換えます。 今回の更新により、コードとしての Pipeline が
tkn-pac
CLI ツールで以下のコマンドを更新するようになりました。-
tkn pac repository create
をtkn pac create repository
に置き換えます。 -
tkn pac repository delete
をtkn pac delete repository
に置き換えます。 -
tkn pac repository list
をtkn pac list
に置き換えます。
-
1.10.3. 非推奨および削除された機能
OpenShift Container Platform 4.11 以降、Red Hat OpenShift Pipelines Operator をインストールおよびアップグレードするための
preview
およびstable
チャネルは削除されています。Operator をインストールしてアップグレードするには、適切なpipelines-<version>
チャネル、または最新の安定バージョンのlatest
チャネルを使用します。たとえば、OpenShift 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 リリースで削除される予定です。この変更は、
TaskRun
、PipelineRun
、Task
、Pipeline
、および同様の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 では、
gsutil
のgcr.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 では、
PipelineRun
のtimeout
フィールドが非推奨になりました。代わりに、PipelineRun.Timeouts
フィールドを使用してください。これは現在、アルファ機能から安定した機能に昇格しています。この機能はデフォルトで使用できるため、
TektonConfig
カスタムリソース定義でpipeline.enable-api-fields
フィールドをalpha
に設定する必要がなくなりました。-
Red Hat OpenShift Pipelines 1.8 では、
init
コンテナーはLimitRange
オブジェクトのデフォルトのリクエスト計算から省略されています。
1.10.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
に設定することにより、この機能が有効になっているクラスターにのみ影響します。
1.10.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
ビルドタスクを正常に実行するには、build
やpush
などの適切な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 をインフラストラクチャーノードでスケジュールできるようになりました。
1.10.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 で利用できるようになりました。
1.10.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
1.10.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
ファイルを提供できるようになりました。
1.10.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 で利用できるようになりました。
1.10.7.1. 修正された問題
-
この更新の前は、SSH キーを使用してリポジトリーのクローンを作成すると、
git-clone
タスクが失敗していました。今回の更新により、git-init
タスクでの root 以外のユーザーのロールが削除され、SSH プログラムは$HOME/.ssh/
ディレクトリーで正しいキーを検索します。