1.2. Pipelines as Code の概念
Pipelines as Code は、Git リポジトリープロバイダーと対話します。Pipelines as Code を使用するには、最初にこのインテグレーションを設定する必要があります。
Pipelines as Code は、Git リポジトリープロバイダー内の任意の数のリポジトリーで使用できます。各リポジトリーについて、制御する 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 は変更されたバージョンを使用します。
この動作を変更する には、
設定を定義できます。この設定を指定する場合、Pipelines as Code は、Repository
CR で Pipelinerun_provenance: "default_branch"メイン
、マスター
、トランク
など、Git リポジトリープロバイダーで設定されたデフォルトブランチの .tekton
ディレクトリーからの定義を常に使用します。