1.17. Red Hat OpenShift Pipelines テクノロジープレビュー 1.1 のリリースノート
1.17.1. 新機能
Red Hat OpenShift Pipelines テクノロジープレビュー (TP) 1.1 が OpenShift Container Platform 4.5 で利用可能になりました。Red Hat OpenShift Pipelines TP 1.1 が以下をサポートするように更新されています。
- Tekton Pipelines 0.14.3
-
Tekton
tkn
CLI 0.11.0 - Tekton Triggers 0.6.1
- Tekton Catalog 0.14 をベースとするクラスタータスク
以下では、修正および安定性の面での改善点に加え、OpenShift Pipelines 1.1 の主な新機能を説明します。
1.17.1.1. Pipelines
- ワークスペースをパイプラインリソースの代わりに使用できるようになりました。パイプラインリソースはデバッグが容易ではなく、スコープの制限があり、タスクの再利用を可能にしないため、OpenShift Pipelines ではワークスペースを使用することが推奨されます。ワークスペースの詳細は、OpenShift Pipelines のセクションを参照してください。
ボリューム要求テンプレートのワークスペースのサポートが追加されました。
- パイプライン実行およびタスク実行のボリューム要求テンプレートがワークスペースのボリュームソースとして追加できるようになりました。次に、tekton-controller はパイプラインのすべてのタスク実行の PVC として表示されるテンプレートを使用して永続ボリューム要求 (PVC) を作成します。したがって、複数のタスクにまたがるワークスペースをバインドするたびに PVC 設定を定義する必要はありません。
- ボリューム要求テンプレートがボリュームソースとして使用される場合の PVC の名前検索のサポートが、変数の置換を使用して利用できるようになりました。
監査を強化するサポート:
-
PipelineRun.Status
フィールドには、パイプラインのすべてのタスク実行のステータスと、パイプライン実行の進捗をモニターするためにパイプライン実行をインスタンス化する際に使用するパイプライン仕様が含まれるようになりました。 -
Pipeline の結果が Pipeline 仕様および
PipelineRun
ステータスに追加されました。 -
TaskRun.Status
フィールドには、TaskRun
リソースのインスタンス化に使用される実際のタスク仕様が含まれるようになりました。
-
- デフォルトパラメーターを各種の状態に適用するサポート。
-
クラスタータスクを参照して作成されるタスク実行は、
tekton.dev/task
ラベルではなくtekton.dev/clusterTask
ラベルを追加するようになりました。 -
kube config writer は、kubeconfig-creator タスクでパイプラインリソースタイプクラスターの置き換えを有効にするために
ClientKeyData
およびClientCertificateData
設定をリソース構造に追加できるようになりました。 -
feature-flags
およびconfig-defaults
設定マップの名前はカスタマイズ可能になりました。 - タスク実行で使用される Pod テンプレートのホストネットワークのサポートが追加されました。
- Affinity Assistant が、ワークスペースボリュームを共有するタスク実行のノードのアフィニティーをサポートするようになりました。デフォルトで、これは OpenShift Pipelines で無効にされます。
-
Pod テンプレートは、Pod の起動時にコンテナーイメージのプルを許可するためにコンテナーランタイムが使用するシークレットを特定するために
imagePullSecrets
を指定するように更新されました。 - コントローラーがタスク実行の更新に失敗した場合にタスク実行コントローラーから警告イベントを出すためのサポート。
- アプリケーションまたはコンポーネントに属するリソースを特定するために、すべてのリソースに標準または推奨される k8s ラベルが追加されました。
-
Entrypoint
プロセスがシグナルについて通知されるようになり、これらのシグナルはEntrypoint
プロセスの専用の PID グループを使用して伝播されるようになりました。 - Pod テンプレートはタスク実行仕様を使用してランタイム時にタスクレベルで設定できるようになりました。
Kubernetes イベントを生成するサポート。
-
コントローラーは、追加のタスク実行ライフサイクルイベント (
taskrun started
およびtaskrun running
) のイベントを生成するようになりました。 - パイプライン実行コントローラーは、パイプラインの起動時に毎回イベントを生成するようになりました。
-
コントローラーは、追加のタスク実行ライフサイクルイベント (
- デフォルトの Kubernetes イベントのほかに、タスク実行のクラウドイベントのサポートが利用可能になりました。コントローラーは、クラウドイベントとして create、started、および failed などのタスク実行イベントを送信するように設定できます。
-
パイプライン実行およびタスク実行の場合に適切な名前を参照するための
$context.<taskRun|pipeline|pipelineRun>.name
変数を使用するサポート。 - パイプライン実行パラメーターの検証が、パイプラインで必要なすべてのパラメーターがパイプライン実行によって提供できるようにするために利用可能になりました。これにより、パイプライン実行は必要なパラメーターに加えて追加のパラメーターを指定することもできます。
-
パイプライン YAML ファイルの
finally
フィールドを使用して、すべてのタスクが正常に終了するか、パイプラインのタスクの失敗後、パイプラインが終了する前に常に実行されるパイプライン内でタスクを指定できるようになりました。 -
git-clone
クラスタータスクが利用できるようになりました。
1.17.1.2. Pipelines CLI
-
組み込まれた Trigger バインディングのサポートが、
tkn evenlistener describe
コマンドで利用できるようになりました。 - 正しくないサブコマンドが使用される場合にサブコマンドを推奨し、提案するためのサポート。
-
tkn task describe
コマンドは、1 つのタスクのみがパイプラインに存在する場合にタスクを自動的に選択できるようになりました。 -
--use-param-defaults
フラグをtkn task start
コマンドに指定することにより、デフォルトのパラメーター値を使用してタスクを起動できるようになりました。 -
--workspace
オプションをtkn pipeline start
またはtkn task start
コマンドで使用して、パイプライン実行またはタスク実行のボリューム要求テンプレートを指定できるようになりました。 -
tkn pipelinerun logs
コマンドに、finally
セクションにリスト表示される最終タスクのログが表示されるようになりました。 -
インタラクティブモードのサポートが、
pipeline
、pipelinerun
、task
、taskrun
、clustertask
およびpipelineresource
のtkn
リソース向けにtkn task start
コマンドおよびdescribe
サブコマンドに追加されました。 -
tkn version
コマンドで、クラスターにインストールされているトリガーのバージョンが表示されるようになりました。 -
tkn pipeline describe
コマンドで、パイプラインで使用されるタスクに指定されたパラメーター値およびタイムアウトが表示されるようになりました。 -
最近のパイプライン実行またはタスク実行をそれぞれ記述できるように、
tkn pipelinerun describe
およびtkn taskrun describe
コマンドの--last
オプションのサポートが追加されました。 -
tkn pipeline describe
コマンドに、パイプラインのタスクに適用される各種の状態が表示されるようになりました。 -
--no-headers
および--all-namespaces
フラグをtkn resource list
コマンドで使用できるようになりました。
1.17.1.3. トリガー
以下の Common Expression Language (CEL) 機能が利用できるようになりました。
-
parseURL
: URL の一部を解析し、抽出します。 -
parseJSON
:deployment
webhook のpayload
フィールドの文字列に埋め込まれた JSON 値タイプを解析します。
-
- Bitbucket からの Webhook の新規インターセプターが追加されました。
-
イベントリスナーは、
kubectl get
コマンドでリスト表示される際の追加フィールドとしてAddress URL
およびAvailable status
を表示します。 -
トリガーテンプレートパラメーターは、
$(params.<paramName>)
ではなく$(tt.params.<paramName>)
構文を使用するようになり、トリガーテンプレートとリソーステンプレートパラメーター間で生じる混乱が軽減されました。 -
EventListener
CRD にtolerations
を追加し、セキュリティーや管理上の問題によりすべてのノードにテイントのマークが付けられる場合でもイベントリスナーが同じ設定でデプロイされるようにできるようになりました。 -
イベントリスナー Deployment の Readiness Probe を
URL/live
に追加できるようになりました。 -
イベントリスナートリガーでの
TriggerBinding
仕様の埋め込みのサポート。 -
Trigger リソースに推奨される
app.kubernetes.io
ラベルでアノテーションが付けられるようになりました。
1.17.2. 非推奨の機能
本リリースでは、以下の項目が非推奨になりました。
-
clustertask
コマンドおよびclustertriggerbinding
コマンドを含む、クラスター全体のすべてのコマンドの--namespace
または-n
フラグが非推奨になりました。これは今後のリリースで削除されます。 -
ref
フィールドが優先されるため、イベントリスナー内のtriggers.bindings
のname
フィールドは非推奨となり、今後のリリースで削除されます。 -
$(tt.params)
が優先されるため、$(params)
を使用したトリガーテンプレートの変数の補間が非推奨となり、これにより、パイプライン変数の補間構文に関連した混乱が軽減されました。$(params.<paramName>)
構文は今後のリリースで削除されます。 -
tekton.dev/task
ラベルはクラスタータスクで非推奨になりました。 -
TaskRun.Status.ResourceResults.ResourceRef
フィールドは非推奨となり、今後削除されます。 -
tkn pipeline create
、tkn task create
、およびtkn resource create -f
サブコマンドが削除されました。 -
namespace の検証が
tkn
コマンドから削除されました。 -
tkn ct start
コマンドのデフォルトタイムアウトの1h
および-t
フラグが削除されました。 -
s2i
クラスタータスクが非推奨になりました。
1.17.3. 既知の問題
- 各種の状態はワークスペースには対応しません。
-
--workspace
オプションとおよびインタラクティブモードはtkn clustertask start
コマンドではサポートされていません。 -
$(params.<paramName>)
構文の後方互換性のサポートにより、トリガーテンプレートがパイプライン固有のパラメーターで強制的に使用されます。 トリガー webhook がトリガーパラメーターとパイプラインパラメーターを区別できないためです。 -
Pipeline メトリクスは、
tekton_taskrun_count
およびtekton_taskrun_duration_seconds_count
の promQL を実行する際に正しくない値を報告します。 -
パイプライン実行およびタスク実行は、存在しない PVC 名がワークスペースに指定されている場合でも、それぞれ
Running
およびRunning(Pending)
の状態のままになります。
1.17.4. 修正された問題
-
以前のバージョンでは、タスクおよびクラスタータスクの名前が同じ場合、
tkn task delete <name> --trs
コマンドは、タスクとクラスタータスクの両方を削除しました。今回の修正により、コマンドはタスク<name>
で作成されるタスク実行のみを削除するようになりました。 -
以前のバージョンでは、
tkn pr delete -p <name> --keep 2
コマンドは、--keep
フラグと共に使用する場合に-p
フラグを無視し、最新の 2 つのパイプライン実行を除きすべてのパイプライン実行を削除しました。今回の修正により、コマンドは最新の 2 つのパイプライン実行を除き、パイプライン<name>
で作成されるパイプライン実行のみを削除するようになりました。 -
tkn triggertemplate describe
出力には、YAML 形式ではなくテーブル形式でリソーステンプレートが表示されるようになりました。 -
以前のバージョンでは、
buildah
クラスタータスクは、新規ユーザーがコンテナーに追加されると失敗していました。今回の修正により、この問題は解決されています。