1.12. Red Hat OpenShift Pipelines テクノロジープレビュー 1.3 のリリースノート
1.12.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 の主な新機能について説明します。
1.12.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 テンプレートで指定されたアフィニティーがアフィニティーアシスタントによって上書きされる場合に警告イベントを生成します。
- タスク実行リコンサイラーは、タスク実行が完了すると生成されるクラウドイベントのメトリクスを記録するようになりました。これには再試行が含まれます。
1.12.1.2. Pipelines CLI
-
--no-headers flag
のサポートが、次のコマンドに追加されました:tkn condition list
、tkn triggerbinding list
、tkn eventlistener list
、tkn clustertask list
、tkn clustertriggerbinding list
-
併用した場合、
--last
または--use
オプションは、--prefix-name
および--timeout
オプションを上書きします。 -
tkn eventlistener logs
コマンドが追加され、EventListener
ログが表示されるようになりました。 -
tekton hub
コマンドはtkn
CLI に統合されるようになりました。 -
--nocolour
オプションは--no-color
に変更されました。 -
--all-namespaces
フラグは、次のコマンドに追加されました:tkn triggertemplate list
、tkn condition list
、tkn triggerbinding list
、tkn eventlistener list
1.12.1.3. トリガー
-
EventListener
テンプレートでリソース情報を指定できるようになりました。 -
すべてのトリガーリソースの
get
動詞に加えて、EventListener
サービスアカウントにlist
およびwatch
動詞が設定されることが必須になりました。これにより、Listers
を使用してEventListener
、Trigger
、TriggerBinding
、TriggerTemplate
、および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
フィールド内にテンプレートを埋め込むことができます。
1.12.2. 非推奨の機能
-
PipelineResources
CRD を使用する Pipeline テンプレートは非推奨となり、今後のリリースで削除されます。 -
template.ref
フィールドが優先されるため、template.name
フィールドは非推奨となり、今後のリリースで削除されます。 -
--check
コマンドの短縮形である-c
が削除されました。さらに、グローバルtkn
フラグがversion
コマンドに追加されます。
1.12.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 クラスタータスクと同じ方法で使用します。
1.12.4. 修正された問題
-
CEL インターセプターによって追加された拡張機能は、イベント本体内に
Extensions
フィールドを追加して Webhook インターセプターに渡されます。 -
ログリーダーのアクティビティータイムアウトは、
LogOptions
フィールドを使用して設定できるようになりました。ただし、10 秒のタイムアウトのデフォルト動作は保持されます。 -
log
コマンドは、タスク実行またはパイプライン実行が完了したときに--follow
フラグを無視し、ライブログではなく利用可能なログを読み取ります。 -
以下の Tekton リソースへの参照:
EventListener
、TriggerBinding
、ClusterTriggerBinding
、Condition
、および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-ha
をtrue
に設定すると、高可用性サポートが無効になります。 - 重複したクラウドイベントに関する問題が修正されています。クラウドイベントは、条件が状態、理由、またはメッセージを変更する場合にのみ送信されるようになりました。
-
サービスアカウント名が
PipelineRun
またはTaskRun
仕様にない場合、コントローラーはconfig-defaults
設定マップからサービスアカウント名を使用します。サービスアカウント名がconfig-defaults
設定マップにもない場合、コントローラーはこれを仕様でdefault
に設定するようになりました。 - アフィニティーアシスタントとの互換性の検証は、同じ永続ボリューム要求 (PVC) が複数のワークスペースに使用される場合にサポートされるようになりましたが、サブパスは異なります。