6.2. Red Hat OpenShift Pipeline テクノロジープレビュー 1.1 のリリースノート

6.2.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 をベースとする ClusterTask

以下では、修正および安定性の面での改善点に加え、OpenShift Pipeline 1.1 の主な新機能について説明します。

6.2.1.1. Pipeline

  • Workspace を PipelineResource の代わりに使用できるようになりました。PipelineResource はデバッグが容易ではなく、スコープの制限があり、Task を再利用可能にしないため、OpenShift Pipelines では Workspace を使用することが推奨されます。Workspace の詳細は、OpenShift Pipelines について参照してください。
  • VolumeClaimTemplate の Workspace サポートが追加されました。

    • PipelineRun および TaskRun の VolumeClaimTemplate が Workspace のボリュームソースとして追加できるようになりました。次に、tekton-controller は Pipeline のすべての TaskRun の PVC として表示されるテンプレートを使用して PersistentVolumeClaim (PVC) を作成します。したがって、複数のタスクにまたがる Workspce をバインドするたびに PVC 設定を定義する必要はありません。
    • VolumeClaimTemplate がボリュームソースとして使用される場合の PersistentVolumeClaim の名前検索のサポートが、変数の置換を使用して利用できるようになりました。
  • 監査を強化するサポート:

    • PipelineRun.Status フィールドには、Pipeline のすべての TaskRun のステータスと、PipelineRun の進捗をモニターするために PipelineRun をインスタンス化する際に使用する Pipeline 仕様が含まれるようになりました。
    • Pipeline の結果が Pipeline 仕様および PipelineRun ステータスに追加されました。
    • TaskRun.Status フィールドには、TaskRun のインスタンス化に使用される実際の Task 仕様が含まれるようになりました。
  • デフォルトパラメーターを Condition に適用するサポート。
  • ClusterTask を参照して作成される TaskRun は、tekton.dev/task ラベルではなく tekton.dev/clusterTask ラベルを追加するようになりました。
  • kubeconfigwriter は、kubeconfig-creator Task でパイプラインリソースタイプクラスターの置き換えを有効にするために ClientKeyData および ClientCertificateData 設定を Resource 構造に追加できるようになりました。
  • feature-flags および config-defaults ConfigMap の名前はカスタマイズ可能になりました。
  • TaskRun で使用される PodTemplate の HostNetwork のサポートが利用可能になりました。
  • Affinity Assistant が、Workspace ボリュームを共有する TaskRun のノードのアフィニティーをサポートするようになりました。デフォルトで、これは OpenShift Pipelines で無効にされます。
  • PodTemplate は、Pod の起動時にコンテナーイメージのプルを許可するためにコンテナーランタイムが使用するシークレットを特定するために imagePullSecrets を指定するように更新されました。
  • コントローラーが TaskRun の更新に失敗した場合に TaskRun コントローラーから警告イベントを出すためのサポート。
  • アプリケーションまたはコンポーネントに属するリソースを特定するために、すべてのリソースに標準または推奨される k8s ラベルが追加されました。
  • Entrypoint プロセスがシグナルについて通知されるようになり、これらのシグナルは Entrypoint プロセスの専用の PID グループを使用して伝播されるようになりました。
  • PodTemplate は TaskRunSpecs を使用してランタイム時に Task レベルで設定できるようになりました。
  • Kubernetes イベントを生成するサポート。

    • コントローラーは、追加の TaskRun ライフサイクルイベント (taskrun started および taskrun running) のイベントを生成するようになりました。
    • PipelineRun コントローラーは、Pipeline の起動時に毎回イベントを生成するようになりました。
  • デフォルトの Kubernetes イベントのほかに、TaskRun の CloudEvents のサポートが利用可能になりました。コントローラーは、クラウドイベントとして create、started、および failed などの TaskRun イベントを送信するように設定できます。
  • PipelineRun および TaskRun の場合に適切な名前を参照するための $context.<taskRun|pipeline|pipelineRun>.name 変数を使用するサポート。
  • PipelineRun パラメーターの検証が、Pipeline で必要なすべてのパラメーターが PipelineRun によって提供できるようにするために利用可能になりました。これにより、PipelineRun は必要なパラメーターに加えて追加のパラメーターを指定することもできます。
  • Pipeline YAML ファイルの finally フィールドを使用して、すべてのタスクが正常に終了するか、または Pipeline の Task の失敗後、Pipeline が終了する前に常に実行される Pipeline 内で Task を指定できるようになりました。
  • git-clone ClusterTask が利用できるようになりました。

6.2.1.2. Pipelines CLI

  • 組み込まれた Trigger バインディングのサポートが、tkn evenlistener describe コマンドで利用できるようになりました。
  • 正しくないサブコマンドが使用される場合にサブコマンドを推奨し、提案するためのサポート。
  • tkn task describe コマンドは、1 つのタスクのみが Pipeline に存在する場合にタスクを自動的に選択できるようになりました。
  • --use-param-defaults フラグを tkn task start コマンドに指定することにより、デフォルトのパラメーター値を使用して Task を起動できるようになりました。
  • --workspace オプションを tkn pipeline start または tkn task start コマンドで使用して、PipelineRun または TaskRun の volumeClaimTemplate を指定できるようになりました。
  • tkn pipelinerun logs コマンドに、finally セクションに一覧表示される最終タスクのログが表示されるようになりました。
  • インタラクティブモードのサポートが、以下の tkn リソース向けに tkn task start コマンドおよび describe サブコマンドに追加されました: pipelinepipelineruntasktaskrunclustertask、および pipelineresource
  • tkn version コマンドで、クラスターにインストールされている Trigger のバージョンが表示されるようになりました。
  • tkn pipeline describe コマンドで、Pipeline で使用される Task に指定されたパラメーター値およびタイムアウトが表示されるようになりました。
  • 最近の PipelineRun または TaskRun をそれぞれ記述できるように、tkn pipelinerun describe および tkn taskrun describe コマンドの --last オプションのサポートが追加されました。
  • tkn pipeline describe コマンドに、Pipeline の Task に適用される Condition が表示されるようになりました。
  • --no-headers および --all-namespaces フラグを tkn resource list コマンドで使用できるようになりました。

6.2.1.3. トリガー

  • 以下の Common Expression Language (CEL) 機能が利用できるようになりました。

    • parseURL: URL の一部を解析し、抽出します。
    • parseJSON: deployment webhook の payload フィールドの文字列に埋め込まれた JSON 値タイプを解析します。
  • Bitbucket からの Webhook の新規インターセプターが追加されました。
  • EventListener は、kubectl get コマンドで一覧表示される際の追加フィールドとして Address URL および Available status を表示します。
  • TriggerTemplate パラメーターは、$(params.<paramName>) ではなく $(tt.params.<paramName>) 構文を使用するようになり、TriggerTemplate と ResourceTemplates パラメーター間で生じる混乱が軽減されました。
  • EventListener CRD に tolerations を追加し、セキュリティーや管理上の問題によりすべてのノードにテイントのマークが付けられる場合でも EventListener が同じ設定でデプロイされるようにできるようになりました。
  • EventListener Deployment の Readiness Probe を URL/live に追加できるようになりました。
  • EventListener Trigger での TriggerBinding 仕様の埋め込みのサポート。
  • Trigger リソースに推奨される app.kubernetes.io ラベルでアノテーションが付けられるようになりました。