検索

1.14. Red Hat OpenShift Pipelines General Availability (GA) 1.4 のリリースノート

download PDF

Red Hat OpenShift Pipelines General Availability (GA) 1.4 が OpenShift Container Platform 4.7 で利用可能になりました。

注記

stable および preview Operator チャネルのほかに、Red Hat OpenShift Pipelines Operator 1.4.0 には ocp-4.6、ocp-4.5、および ocp-4.4 の非推奨チャネルが同梱されます。これらの非推奨チャネルおよびそれらのサポートは、Red Hat OpenShift Pipelines の以下のリリースで削除されます。

1.14.1. 互換性およびサポート表

現在、今回のリリースに含まれる機能には テクノロジープレビュー のものがあります。これらの実験的機能は、実稼働環境での使用を目的としていません。

以下の表では、機能は以下のステータスでマークされています。

TP

テクノロジープレビュー

GA

一般公開 (GA)

これらの機能に関しては、Red Hat カスタマーポータルの以下のサポート範囲を参照してください。

表1.6 互換性およびサポート表
機能バージョンサポートステータス

Pipelines

0.22

GA

CLI

0.17

GA

カタログ

0.22

GA

トリガー

0.12

TP

パイプラインリソース

-

TP

質問やフィードバックについては、製品チームに pipelines-interest@redhat.com 宛のメールを送信してください。

1.14.2. 新機能

以下のセクションでは、修正および安定性の面での改善点に加え、OpenShift Pipelines 1.4 の主な新機能を説明します。

  • カスタムタスクには、以下の機能強化が含まれます。

    • パイプラインの結果として、カスタムタスクで生成される結果を参照できるようになりました。
    • カスタムタスクはワークスペース、サービスアカウント、および Pod テンプレートを使用して、より複雑なカスタムタスクをビルドできるようになりました。
  • finally タスクには、以下の機能強化が含まれます。

    • when 式は 最後 のタスクでサポートされます。これにより、効率的に保護された実行が可能になり、タスクの再利用性が向上します。
    • finally タスクは、同じパイプライン内のタスクの結果を使用するように設定できます。

      注記

      when 式および finally タスクのサポートは OpenShift Container Platform 4.7 Web コンソールでは利用できません。

  • dockercfg または dockerconfigjson タイプの複数のシークレットのサポートがランタイム時に認証用に追加されました。
  • git-clone タスクでスパースチェックをサポートする機能が追加されました。これにより、ローカルコピーとしてリポジトリーのサブセットのみをクローンすることができ、これはクローン作成したリポジトリーのサイズを制限するのに便利です。
  • 実際に起動せずに、パイプライン実行を保留中の状態で作成できます。負荷が大きいクラスターでは、これにより、Operator はパイプライン実行の開始時間を制御することができます。
  • コントローラー用に SYSTEM_NAMESPACE 環境変数を手動で設定していることを確認します。これは以前はデフォルトで設定されていました。
  • root 以外のユーザーがパイプラインのビルドベースイメージに追加され、git-init がリポジトリーのクローンを root 以外のユーザーとして作成できるようになりました。
  • パイプライン実行の開始前に解決されたリソース間で依存関係を検証するサポートが追加されています。パイプラインのすべての結果変数は有効でなければならず、パイプラインからのオプションのワークスペースは、パイプライン実行の開始に使用することが予想されているタスクにのみ渡すことができます。
  • コントローラーおよび Webhook は root 以外のグループとして実行され、それらの必要以上の機能は削除され、よりセキュアになりました。
  • tkn pr logs コマンドを使用して、再試行されたタスク実行のログストリームを表示できます。
  • tkn tr delete コマンドで --clustertask オプションを使用して、特定のクラスタータスクに関連付けられたすべてのタスク実行を削除できます。
  • EventListener リソースでの Knative サービスのサポートは、新規の customResource フィールドを導入して追加されます。
  • イベントペイロードが JSON 形式を使用しない場合にエラーメッセージが表示されます。
  • GitLab、BitBucket、GitHub などのソース制御インターセプターは、新規の InterceptorRequest または InterceptorResponse を使用できるようになりました。
  • 新しい CEL 関数の marshalJSON が実装され、JSON オブジェクトまたは配列を文字列にエンコードできます。
  • CEL およびソース制御コアインターセプターを提供する HTTP ハンドラーが追加されました。これは、tekton-pipelines namespace にデプロイされる単一の HTTP サーバーに 4 つのコアインターセプターをパッケージ化します。EventListener オブジェクトは、HTTP サーバー経由でイベントをインターセプターに転送します。それぞれのインターセプターは異なるパスで利用できます。たとえば、CEL インターセプターは /cel パスで利用できます。
  • pipelines-scc SCC (Security Context Constraint) は、パイプラインのデフォルト pipeline サービスアカウントで使用されます。この新規サービスアカウントは anyuid と似ていますが、OpenShift Container Platform 4.7 の SCC について YAML に定義されるように若干の違いがあります。

    fsGroup:
      type: MustRunAs

1.14.3. 非推奨の機能

  • パイプラインリソースストレージの build-gcs サブタイプ、および gcs-fetcher イメージは、サポートされていません。
  • クラスタータスクの taskRun フィールドで、tekton.dev/task ラベルが削除されます。
  • Webhook の場合、フィールド admissionReviewVersions に対応する値 v1beta1 は削除されます。
  • ビルドおよびデプロイ用の creds-init ヘルパーイメージが削除されます。
  • トリガー仕様およびバインディングでは、template.ref が優先されるため、非推奨フィールドの template.name が削除されます。ref フィールドを使用するには、eventListener のすべての定義を更新する必要があります。

    注記

    OpenShift Pipelines 1.3.x 以前のバージョンから OpenShift Pipelines 1.4.0 にアップグレードすると、template.name フィールドが使用できないため、イベントリスナーが壊れます。このような場合、OpenShift Pipelines 1.4.1 を使用して、復元された template.name フィールドを利用します。

  • EventListener カスタムリソース/オブジェクトの場合、Resource が優先されるために、PodTemplate および ServiceType フィールドは非推奨になりました。
  • 非推奨の仕様スタイルの埋め込みバインディングは削除されています。
  • spec フィールドは triggerSpecBinding から削除されています。
  • イベント ID 表現は、5 文字のランダムな文字列から UUID に変更されています。

1.14.4. 既知の問題

  • Developer パースペクティブでは、Pipeline メトリクスおよびトリガー機能は OpenShift Container Platform 4.7.6 以降のバージョンでのみ利用できます。
  • IBM Power Systems、IBM Z、および LinuxONE では、tkn hub コマンドはサポートされません。
  • IBM Power Systems (ppc64le)、IBM Z、および LinuxONE (s390x) クラスターで Maven および Jib Maven クラスタータスクを実行する場合、MAVEN_IMAGE パラメーターの値を maven:3.6.3-adoptopenjdk-11 に設定します。
  • トリガーは、トリガーバインディングに以下の設定がある場合は、JSON 形式の正しくない処理によって生じるエラーを出力します。

    params:
      - name: github_json
        value: $(body)

    この問題を解決するには、以下を実行します。

    • トリガー v0.11.0 以降を使用している場合、marshalJSON 関数を使用して JSON オブジェクトまたは配列を取得し、そのオブジェクトまたは配列の JSON エンコーディングを文字列として返します。
    • 古いバージョンのトリガーを使用している場合は、以下のアノテーションをトリガーテンプレートに追加します。

      annotations:
        triggers.tekton.dev/old-escape-quotes: "true"
  • OpenShift Pipelines 1.3.x から 1.4.x にアップグレードする場合、ルートを再作成する必要があります。

1.14.5. 修正された問題

  • 以前のバージョンでは、tekton.dev/task ラベルがクラスタータスクのタスク実行から削除され、tekton.dev/clusterTask ラベル が導入されました。この変更により生じる問題は clustertask describe および delete コマンドを修正して解決されています。さらに、タスクの lastrun 機能は変更され、古いバージョンのパイプラインでタスクとクラスタータスクの両方のタスク実行に適用される tekton.dev/task ラベルの問題を修正できるになりました。
  • 対話的な tkn pipeline start pipelinename を実行する場合、PipelineResource が対話的に作成されます。tkn p start コマンドは、リソースのステータスが nil ではない場合にリソースのステータスを出力します。
  • 以前のバージョンでは、tekton.dev/task=name ラベルは、クラスタータスクから作成されるタスク実行から削除されました。今回の修正により、--last フラグの指定される tkn clustertask start コマンドが変更され、作成されたタスク実行で tekton.dev/task=name ラベルの有無がチェックされるようになりました。
  • タスクがインラインのタスク仕様を使用する場合、対応するタスク実行は tkn pipeline describe コマンドの実行時にパイプラインに組み込まれ、タスク名は埋め込まれた状態で返されます。
  • tkn version コマンドは、設定された kubeConfiguration namespace やクラスターへのアクセスなしに、インストールされた Tekton CLI ツールのバージョンを表示するように修正されています。
  • 引数が予期せずに使用されるか、複数の引数が使用される場合、tkn completion コマンドでエラーが発生します。
  • 以前のバージョンでは、パイプライン仕様でネスト化された finally タスクのあるパイプライン実行は、v1alpha1 バージョンに変換され、v1beta1 バージョンに戻されると、それらの finally タスクを失うことがあります。変換中に発生するこのエラーは修正され、潜在的データ損失を防ぐことができます。finally タスクがパイプライン仕様でネスト化されたパイプライン実行はシリアライズされ、アルファバージョンに保存されてデシリアライズは後に実行されるようになりました。
  • 以前のバージョンでは、サービスアカウントで secrets フィールドに {} があると、Pod の生成でエラーが発生しました。空のシークレット名を持つ GET 要求がエラーがリソース名が空ではないことを示すエラーを返すため、タスク実行は CouldntGetTask で失敗しました。この問題は、kubeclient GET 要求で空のシークレット名を使用しないことで解決されています。
  • v1beta1 API バージョンのあるパイプラインは、finally タスクを失うことなく、v1alpha1 バージョンと共に要求できるようになりました。返される v1alpha1 バージョンを適用すると、リソースが v1beta1 として保存され、finally セクションがその元の状態に戻ります。
  • 以前のバージョンでは、コントローラーの selfLink フィールドが設定されていないと、Kubernetes v1.20 クラスターでエラーが発生しました。一時的な修正として、CloudEvent ソースフィールドは、自動設定される selfLink フィールドの値なしに現在のソース URI に一致する値に設定されます。
  • 以前のバージョンでは、gcr.io などのドットの付いたシークレット名により、タスク実行の作成が失敗しました。これは、シークレット名がボリュームマウント名の一部として内部で使用されるために生じました。ボリュームマウント名は RFC1123 DNS ラベルに準拠し、名前の一部として使用されるドットを許可しません。この問題は、ドットをダッシュに置き換えることで解決し、これにより名前の読み取りが可能になりました。
  • コンテキスト変数は、finally タスクで検証されるようになりました。
  • 以前のバージョンでは、タスク実行リコンサイラーが渡され、作成した Pod の名前を含む直前のステータス更新を持たないタスク実行があると、タスク実行リコンサイラーはタスク実行に関連付けられた Pod をリスト表示しました。タスク実行リコンサイラーは、Pod を検索するために、Pod に伝播されるタスク実行のラベルを使用しました。タスク実行の実行中にこれらのラベルを変更すると、コードが既存の Pod を見つけることができませんでした。その結果、重複した Pod が作成されました。この問題は、Pod の検索時に tekton.dev/taskRun の Tekton で制御されるラベルのみを使用するようにタスク実行リコンサイラーを変更することで修正されています。
  • 以前のバージョンでは、パイプラインがオプションのワークスペースを受け入れ、これをパイプラインタスクに渡すと、パイプライン実行リコンサイラーは、ワークスペースが提供されておらず、欠落しているワークスペースのバインディングがオプションのワークスペースについて有効な場合でも、エラーを出して停止しました。この問題は、オプションのワークスペースが指定されていない場合でも、パイプライン実行リコンサイラーがタスク実行の作成に失敗しないようにすることで修正されています。
  • ステップのステータスの並び順は、ステップコンテナーの順序と一致します。
  • 以前のバージョンでは、Pod で CreateContainerConfigError の理由が出されると、タスク実行のステータスは unknown に設定されました。これは、タスクおよびパイプラインが Pod がタイムアウトするまで実行されることを意味しました。この問題は、Pod で CreateContainerConfigError の理由が出される際にタスクを失敗 (failed) として設定できるようにタスク実行ステータスを false に設定することで解決されています。
  • 以前のバージョンでは、パイプライン実行の完了後に、パイプラインの結果は最初の調整で解決されました。これにより解決が失敗し、パイプライン実行の Succeeded 状態が上書きされる可能性がありました。その結果、最終のステータス情報が失われ、パイプライン実行の状態を監視するすべてのサービスに混乱を生じさせる可能性がありました。この問題は、パイプライン実行が Succeeded または True 状態になる際に、パイプラインの結果の解決を調整の最後に移行することにで解決されました。
  • 実行ステータス変数が検証されるようになりました。これにより、実行ステータスにアクセスするためのコンテキスト変数の検証中に、タスク結果が検証されることを防ぐことができます。
  • 以前のバージョンでは、無効な変数を含むパイプラインの結果は、変数のリテラル式はそのままの状態でパイプライン実行に追加されます。そのため、結果が正しく設定されているかどうかを評価することは容易ではありませんでした。この問題は、失敗したタスク実行を参照するパイプライン実行結果でフィルタリングすることで解決されています。無効な変数を含むパイプラインの結果は、パイプライン実行によって出されなくなりました。
  • tkn eventlistener describe コマンドは、テンプレートなしでクラッシュを回避できるように修正されています。また、トリガーの参照に関する情報も表示します。
  • OpenShift Pipelines 1.3.x 以前のバージョンから OpenShift Pipelines 1.4.0 にアップグレードすると、template.name が利用できないため、イベントリスナーが壊れます。OpenShift Pipelines 1.4.1 では、template.name が復元され、トリガーのイベントリスナーが壊れないようになりました。
  • OpenShift Pipelines 1.4.1 では、ConsoleQuickStart カスタムリソースが更新され、OpenShift Container Platform 4.7 の機能および動作と一致するようになりました。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.