1.2. Pipelines as Code の概念
Pipelines as Code は Git リポジトリープロバイダーと対話します。Pipelines as Code を使用するには、まずこの統合を設定する必要があります。
Git リポジトリープロバイダー内の任意の数のリポジトリーで Pipelines as Code を使用できます。リポジトリーごとに、制御する OpenShift Container Platform namespace 内に Repository
カスタムリソース (CR) を作成する必要があります。この CR には、Pipelines as Code がこのリポジトリーにアクセスするために使用できる情報が含まれています。
Pipelines as Code は、このリポジトリーの Repository
CR が配置されている namespace 内のリポジトリーに対してパイプライン実行を開始します。
Git リポジトリー内に .tekton
ディレクトリーを作成し、そのディレクトリーにパイプライン実行定義を YAML ファイルとして保存する必要があります。定義する各パイプライン実行には、このパイプライン実行をトリガーする必要があるイベントを決定するアノテーションを含めなければなりません。
定義では、同じディレクトリー内の他の YAML ファイルを参照できます。たとえば、別の YAML ファイルでパイプラインを定義し、パイプライン実行ファイルでそのパイプラインを参照できます。パイプライン実行定義でアノテーションを使用して、Tekton Hub、HTTP ロケーション、およびディレクトリー内の他のパスから、タスクおよびパイプラインリソースを参照することもできます。定義内で特殊変数を使用して、ブランチの名前などの実行コンテキストを参照できます。
マッチイベントが発生すると、Pipelines as Code はリポジトリーで指定した定義に基づいて PipelineRun
CR を作成します。PipelineRun
CR の作成により、、パイプライン実行で定義されているパイプラインの実行がトリガーされます。
Pipelines as Code は、Pipelines as Code リゾルバー を使用して、定義に基づき PipelineRun
CR を作成します。Pipelines as Code リゾルバーは、アノテーションを使用して参照したすべてのリソースを取得し、それらを PipelineRun
CR に追加します。Pipelines as Code リゾルバーが参照先リソースの取得に失敗した場合、Pipelines as Code はエラーをログに記録し、パイプライン実行を作成しません。
Pipelines as Code は、パイプライン実行定義内の動的変数をその値に置き換えます。
デフォルトでは、プルリクエストまたはプッシュイベントの PipelineRun
CR を作成するときに、Pipelines as Code はプルリクエストまたはプッシュイベントのソースブランチの .tekton
ディレクトリーの定義を使用します。プルリクエストまたはプッシュイベントによって .tekton
ディレクトリーが変更された場合、Pipelines as Code は変更後のバージョンを使用します。
この動作を変更するには、Repository
CR で pipelinerun_provenance: "default_branch"
設定を定義します。この設定を指定すると、Pipelines as Code は、Git リポジトリープロバイダーで設定されたデフォルトブランチ (main
、master
、trunk
など) の .tekton
ディレクトリーの定義を必ず使用します。