1.9. Red Hat OpenShift Pipelines General Availability (GA) 1.6 のリリースノート
Red Hat OpenShift Pipelines General Availability (GA) 1.6 が OpenShift Container Platform 4.9 で利用可能になりました。
1.9.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
リソースが受信するイベントをカウントできるようになりました。 今回の更新では、
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-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 のインストール後に
Subscription
CR の仕様でconfig.nodeSelector
およびconfig.tolerations
フィールドを編集します。 -
OpenShift Pipelines の残りのコントロールプレーン Pod をインフラストラクチャーノードにデプロイするには、
nodeSelector
およびtolerations
フィールドでTektonConfig
CR を更新します。その後、変更は Operator で作成されるすべての Pod に適用されます。
-
Operator のコントローラーおよび Webhook デプロイメントのノード選択を設定するには、Operator のインストール後に
1.9.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
機能が非推奨となり、今後のリリースで削除されます。代わりに、今回の更新では、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-overwrite
とdisable-home-env-overwrite
フィールドは非推奨となり、今後のリリースで削除されます。
1.9.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"
1.9.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.9.5. Red Hat OpenShift Pipelines General Availability 1.6.1 のリリースノート
1.9.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.
1.9.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
カスタムリソースで指定される容認制限に基づいて、ノードにスケジュールされるようになりました。
1.9.6. Red Hat OpenShift Pipelines General Availability 1.6.2 のリリースノート
1.9.6.1. 既知の問題
-
新規プロジェクトの作成時に、
pipeline
サービスアカウントの作成が遅延し、既存のクラスタータスクおよびパイプラインテンプレートの削除に 10 分以上かかります。
1.9.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.9.7. Red Hat OpenShift Pipelines General Availability 1.6.3 のリリースノート
1.9.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 コンポーネントをインストールする際の信頼性および一貫性が向上しました。
-
今回の更新以前は、
TektonConfig
CR でclusterTasks
およびpipelineTemplates
フィールドをfalse
に設定すると、クラスタータスクおよびパイプラインテンプレートの削除が遅くなりました。この更新により、クラスタータスクやパイプラインテンプレートなどの Tekton リソースのライフサイクル管理の速度が改善されました。
1.9.8. Red Hat OpenShift Pipelines General Availability (GA) 1.6.4 のリリースノート
1.9.8.1. 既知の問題
Red Hat OpenShift Pipelines 1.5.2 から 1.6.4 にアップグレードした後、イベントリスナールートにアクセスすると
503
エラーが返されます。回避策: YAML ファイルで、イベントリスナーのルートのターゲットポートを変更します。
関連する namespace のルート名を抽出します。
$ oc get route -n <namespace>
ルートを編集して、
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 ...
1.9.8.2. 修正された問題
-
今回の更新前は、いずれかの namespace が
Terminating
状態の場合、RBAC リソースの作成時に Operator が失敗していました。今回の更新により、Operator はTerminating
状態の namespace を無視し、RBAC リソースを作成します。 - この更新の前は、関連する Tekton コントローラーのリリースバージョンを指定するアノテーションがないため、タスクの実行が失敗するか、再起動されました。今回の更新により、適切な注釈の組み込みが自動化され、タスクは失敗や再起動なしで実行されます。