1.13. Red Hat OpenShift Pipelines General Availability (GA) 1.5 のリリースノート
Red Hat OpenShift Pipelines General Availability (GA) 1.5 が OpenShift Container Platform 4.8 で利用可能になりました。
1.13.1. 互換性およびサポート表
現在、今回のリリースに含まれる機能には テクノロジープレビュー のものがあります。これらの実験的機能は、実稼働環境での使用を目的としていません。
以下の表では、機能は以下のステータスでマークされています。
TP | テクノロジープレビュー |
GA | 一般公開 (GA) |
これらの機能に関しては、Red Hat カスタマーポータルの以下のサポート範囲を参照してください。
機能 | バージョン | サポートステータス |
---|---|---|
Pipelines | 0.24 | GA |
CLI | 0.19 | GA |
カタログ | 0.24 | GA |
トリガー | 0.14 | TP |
パイプラインリソース | - | TP |
質問やフィードバックについては、製品チームに pipelines-interest@redhat.com 宛のメールを送信してください。
1.13.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 コンポーネントのインストールをカスタマイズするには、
TektonConfig
カスタムリソースの新規パラメーター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.15/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
コマンドに追加されます。 -
TriggerTemplate
、TriggerBinding
、ClusterTriggerBinding
、Eventlistener
などのリソースを自動的に選択するオプションのいずれか 1 つが存在する場合は、describe
コマンドに追加されます。 -
tkn pr describe
コマンドでは、省略されたタスクのセクションが追加されます。 -
tkn clustertask logs
のサポートが追加されました。 -
config.yaml
からの YAML マージおよび変数は削除されます。さらに、release.yaml
ファイルは、kustomize
やytt
などのツールでより簡単に消費されるようになりました。 - ドット文字 (".") を含むリソース名のサポートが追加されました。
-
PodTemplate
仕様のhostAliases
配列が、ホスト名解決の Pod レベルの上書きに追加されます。これには、/etc/hosts
ファイルを変更します。 -
タスクのアグリゲート実行ステータスにアクセスするために、変数
$(tasks.status)
が導入されました。 - Windows のエントリーポイントバイナリービルドが追加されます。
1.13.3. 非推奨の機能
when
式では、PascalCase で記述されたフィールドのサポートが削除されます。when
式は、小文字で記述されたフィールドのみをサポートします。注記Tekton Pipelines
v0.16
(Operatorv1.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
カスタムリソースがインストールされるプロファイル名が変更になりました。表1.5 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
を使用します。 -
クラスターロールでは、
serviceaccounts
、secrets
、configmaps
、limitranges
などのリソースへのクラスター全体の書き込みアクセスが削除されます。さらに、deployments
、statefulsets
、deployment/finalizers
などのリソースにクラスター全体のアクセスが削除されます。 -
caching.internal.knative.dev
グループのimage
カスタムリソース定義は Tekton により使用されず、本リリースで除外されます。
1.13.4. 既知の問題
git-cli クラスタータスクは、alpine/git ベースイメージから構築されます。これは、
/root
がユーザーのホームディレクトリーであると想定します。ただし、これはgit-cli
クラスタータスクに明示的に設定されません。Tekton では、特に指定がない場合は、デフォルトのホームディレクトリーはタスクのすべての手順で
/tekton/home
で上書きされます。ベースイメージの$HOME
環境変数を上書きすると、git-cli
クラスタータスクが失敗します。この問題は、今後のリリースで修正される予定です。Red Hat OpenShift Pipelines 1.5 以前のバージョンでは、以下の回避策のいずれかを使用 して、
git-cli
クラスタータスクの失敗を防ぐことができます。この手順で
$HOME
環境変数を設定します。これにより、上書きされないようにします。-
[オプション] Operator を使用して Red Hat OpenShift Pipeline をインストールしている場合は、
git-cli
クラスタータスクを別のタスクにクローンします。このアプローチにより、Operator はクラスタータスクに加えられた変更を上書きしないようにします。 -
oc edit clustertasks git-cli
コマンドを実行します。 予想される
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 の調整中に変更が上書きされます。
-
[オプション] Operator を使用して Red Hat OpenShift Pipeline をインストールしている場合は、
feature-flags
設定マップでHOME
環境変数の上書きを無効にします。-
oc edit -n openshift-pipelines configmap feature-flags
コマンドを実行します。 disable-home-env-overwrite
フラグの値をtrue
に設定します。警告- Operator を使用して Red Hat OpenShift Pipelines をインストールしている場合、変更は Operator の調整時に上書きされます。
-
disable-home-env-overwrite
フラグのデフォルト値を変更すると、すべてのタスクのデフォルトの動作を変更するため、他のタスクやクラスタータスクが破損する可能性があります。
-
パイプラインのデフォルトサービスアカウントが使用される場合に
HOME
環境変数の上書きを行うため、git-cli
クラスタータスクに別のサービスアカウントを使用します。- 新規のサービスアカウントを作成します。
- 作成したサービスアカウントに Git シークレットをリンクします。
- タスクまたはパイプラインの実行中にサービスアカウントを使用します。
-
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
に設定すると、カスタムイメージを指定できます。
1.13.5. 修正された問題
-
dag
タスクのwhen
式は、他のタスクの実行ステータス ($(tasks.<pipelineTask>.status)
) にアクセスするコンテキスト変数を指定できません。 -
PipelineRun
リソースがすぐに削除されてから再作成される状況で、volumeClaimTemplate
PVC を削除することにより作成される競合状態を回避するのに役立つため、所有者名の代わりに所有者 UID を使用します。 -
root 以外のユーザーによってトリガーされる
build-base
イメージのpullrequest-init
に新しい Dockerfile が追加されます。 -
パイプラインまたはタスクが
-f
オプションで実行され、その定義のparam
にtype
が定義されていない場合は、パイプラインまたはタスク実行が失敗する代わりに検証エラーが生成されます。 -
tkn start [task | pipeline | clustertask]
コマンドの場合は、--workspace
フラグの説明に一貫性が保たれました。 - パラメーターを解析する際に、空の配列が発生すると、対応する対話的なヘルプが空の文字列として表示されるようになりました。