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 で利用可能になりました。
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 taskとtkn clustertaskコマンドに追加されました。 -
今回の更新により、
tkn pipelinerun delete --allコマンドを使用すると、新規の--label <string>オプションを使用して、ラベルでパイプライン実行をフィルターできるようになりました。オプションで、--labelオプションに=と==を等価演算子として、または!=を不等価演算子として指定して使用できます。たとえば、tkn pipelinerun delete --all --label asdfおよびtkn pipelinerun delete --all --label==asdfコマンドはどちらも、asdfラベルが割り当てられたすべてのパイプライン実行を削除します。 - 今回の更新では、設定マップからインストールされた Tekton コンポーネントのバージョンを取得するか、設定マップがない場合はデプロイメントコントローラーから取得できるようになりました。
-
今回の更新では、機能フラグを設定し、デフォルト値をそれぞれ設定するために
feature-flagsとconfig-defaults設定マップをサポートするようになりました。 -
今回の更新では、新しいメトリクス
eventlistener_event_countが追加され、EventListenerリソースが受信するイベントをカウントできるようになりました。 今回の更新では、
v1beta1Go API タイプが追加されました。今回の更新では、トリガーがv1beta1API バージョンをサポートするようになりました。現在のリリースでは、
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-sinceを7200に設定します。注記keepおよびkeep-sinceアノテーションは同時に使用できません。リソースには、どちらか 1 つだけを使用する必要があります。-
operator.tekton.dev/prune.strategy: このアノテーションの値をkeepまたはkeep-sinceのいずれかに設定します。
-
-
管理者はクラスター全体に対する
pipelineサービスアカウントの作成を無効にし、紐付けされた SCC (anyuidと非常に似ている) の悪用による権限昇格を防ぎます。 -
TektonConfigカスタムリソース (CR) および、TektonPipelineとTektonTriggersなどの個々のコンポーネントの CR を使用して、機能フラグおよびコンポーネントを設定できるようになりました。この詳細レベルは、個々のコンポーネントの Tekton OCI バンドルなどのアルファ機能のカスタマイズおよびテストに役立ちます。 -
PipelineRunリソースのオプションのTimeoutsフィールドを設定できるようになりました。たとえば、パイプライン実行、各タスク実行、およびfinallyタスクに個別にタイムアウトを設定できます。 -
TaskRunリソースで生成される Pod を使用して、Pod のactiveDeadlineSecondsフィールドが設定されるようになりました。これにより、OpenShift はこの値を終了として考慮でき、Pod に具体的にスコープを指定したResourceQuotaオブジェクトを使用できます。 - configmaps を使用して、タスク実行、パイプライン実行、タスク、およびパイプラインのメトリックタグまたはラベルタイプを削除できます。さらに、ヒストグラム、ゲージ、最終値など、測定期間に、さまざまな種類のメトリックを設定できます。
-
Tekton は
Min、Max、Defaultおよび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 のインストール後に
SubscriptionCR の仕様でconfig.nodeSelectorおよびconfig.tolerationsフィールドを編集します。 -
OpenShift Pipelines の残りのコントロールプレーン Pod をインフラストラクチャーノードにデプロイするには、
nodeSelectorおよびtolerationsフィールドでTektonConfigCR を更新します。その後、変更は Operator で作成されるすべての Pod に適用されます。
-
Operator のコントローラーおよび Webhook デプロイメントのノード選択を設定するには、Operator のインストール後に
1.7.2. 非推奨の機能 リンクのコピーリンクがクリップボードにコピーされました!
-
CLI 0.21.0 では、
clustertask、task、taskrun、pipeline、およびpipelinerunコマンドに対するすべてのv1alpha1リソースのサポートが非推奨になりました。クラスターローダーが非推奨になり、今後のリリースで削除されます。
Tekton Triggers v0.16.0 では、重複する
statusラベルはEventListenerリソースのメトリックから削除されます。重要重大な変更:
statusラベルはeventlistener_http_duration_seconds_*メトリックから削除されました。statusラベルに基づくクエリーを削除します。-
現在のリリースでは、
v1alpha1機能が非推奨となり、今後のリリースで削除されます。代わりに、今回の更新では、v1beta1Go API タイプの使用を開始できるようになりました。トリガーがv1beta1API バージョンをサポートするようになりました。 現在のリリースでは、
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オブジェクトの仕様で上書きできます。以前の動作を使用するには、
TektonConfigCR のdisable-working-directory-overwriteフィールドおよびdisable-home-env-overwriteフィールドをfalseに変更します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要TektonConfigCR のdisable-working-directory-overwriteとdisable-home-env-overwriteフィールドは非推奨となり、今後のリリースで削除されます。
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イメージストリームを使用すると、以下のエラーが生成されるため、使用できません。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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[*])]などの配列パラメーター参照を指定できるようになりました。
1.7.5. Red Hat OpenShift Pipelines General Availability 1.6.1 のリリースノート リンクのコピーリンクがクリップボードにコピーされました!
1.7.5.1. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
古いバージョンから Red Hat OpenShift Pipelines 1.6.1 にアップグレードした後、OpenShift Pipelines は一貫性のない状態になり、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.
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.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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 のアップグレード時にレプリカはリセットされます。
-
tknCLI を提供する Pod は、ノードセレクターおよびTektonConfigカスタムリソースで指定される容認制限に基づいて、ノードにスケジュールされるようになりました。
1.7.6. Red Hat OpenShift Pipelines General Availability 1.6.2 のリリースノート リンクのコピーリンクがクリップボードにコピーされました!
1.7.6.1. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
-
新規プロジェクトの作成時に、
pipelineサービスアカウントの作成が遅延し、既存のクラスタータスクおよびパイプラインテンプレートの削除に 10 分以上かかります。
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オブジェクトの暗黙的なパラメーター動作を無効にします。
-
-
1.7.7. Red Hat OpenShift Pipelines General Availability 1.6.3 のリリースノート リンクのコピーリンクがクリップボードにコピーされました!
1.7.7.1. 修正された問題 リンクのコピーリンクがクリップボードにコピーされました!
今回の更新以前は、Red Hat OpenShift Pipelines Operator は Pipeline および Trigger などのコンポーネントから Pod セキュリティーポリシーをインストールしていました。ただし、コンポーネントの一部として同梱される Pod セキュリティーポリシーは、以前のリリースで非推奨となりました。今回の更新により、Operator はコンポーネントから Pod セキュリティーポリシーをインストールするのを止めました。その結果、以下のアップグレードパスが影響を受けます。
- OpenShift Pipelines 1.6.1 または 1.6.2 から OpenShift Pipelines 1.6.3 にアップグレードすると、Pipelines および Triggers コンポーネントからのものを含む Pod セキュリティーポリシーが削除されます。
OpenShift Pipelines 1.5.x から 1.6.3 へのアップグレードでは、コンポーネントからインストールされた Pod セキュリティーポリシーが保持されます。クラスター管理者は、それらを手動で削除できます。
注記今後のリリースにアップグレードすると、Red Hat OpenShift Pipelines Operator は古くなったすべての Pod セキュリティーポリシーを自動的に削除します。
- 今回の更新以前は、クラスター管理者のみが OpenShift Container Platform コンソールでパイプラインメトリックにアクセスできていました。今回の更新により、他のクラスターロールを持つユーザーもパイプラインメトリックにアクセスできるようになりました。
- 今回の更新前は、OpenShift Pipelines Operator のロールベースのアクセス制御 (RBAC) の問題により、コンポーネントのアップグレードまたはインストールで問題が発生していました。今回の更新により、各種の Red Hat OpenShift Pipelines コンポーネントをインストールする際の信頼性および一貫性が向上しました。
-
今回の更新以前は、
TektonConfigCR でclusterTasksおよびpipelineTemplatesフィールドをfalseに設定すると、クラスタータスクおよびパイプラインテンプレートの削除が遅くなりました。この更新により、クラスタータスクやパイプラインテンプレートなどの Tekton リソースのライフサイクル管理の速度が改善されました。
1.7.8. Red Hat OpenShift Pipelines General Availability (GA) 1.6.4 のリリースノート リンクのコピーリンクがクリップボードにコピーされました!
1.7.8.1. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Pipelines 1.5.2 から 1.6.4 にアップグレードした後、イベントリスナールートにアクセスすると
503エラーが返されます。回避策: YAML ファイルで、イベントリスナーのルートのターゲットポートを変更します。
関連する namespace のルート名を抽出します。
oc get route -n <namespace>
$ oc get route -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ルートを編集して、
targetPortフィールドの値を変更します。oc edit route -n <namespace> <el-route_name>
$ oc edit route -n <namespace> <el-route_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例: 既存のイベントリスナールート
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例: 変更されたイベントリスナールート
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.8.2. 修正された問題 リンクのコピーリンクがクリップボードにコピーされました!
-
今回の更新前は、いずれかの namespace が
Terminating状態の場合、RBAC リソースの作成時に Operator が失敗していました。今回の更新により、Operator はTerminating状態の namespace を無視し、RBAC リソースを作成します。 - この更新の前は、関連する Tekton コントローラーのリリースバージョンを指定するアノテーションがないため、タスクの実行が失敗するか、再起動されました。今回の更新により、適切な注釈の組み込みが自動化され、タスクは失敗や再起動なしで実行されます。