第3章 リゾルバーを使用したリモートパイプライン、タスク、およびステップアクションの指定
パイプラインとタスクは、CI/CD プロセスの再利用可能なブロックです。以前に開発したパイプラインやタスク、または他の人が開発したパイプラインやタスクを、定義をコピーして貼り付けることなく再利用できます。これらのパイプラインまたはタスクは、クラスター上の他の namespace からパブリックカタログに至るまで、いくつかの種類のソースから利用できます。
パイプライン実行リソースでは、既存のソースからパイプラインを指定できます。パイプラインリソースまたはタスク実行リソースでは、既存のソースからタスクを指定できます。
StepAction
カスタムリソース (CR) で定義されるステップアクションは、タスク内のステップ 1 つで完了する再利用可能なアクションです。ステップを指定する場合は、既存のソースから StepAction
定義を参照できます。
このような場合、Red Hat OpenShift Pipelines の リゾルバー は、実行時に指定されたソースからパイプライン、タスク、または StepAction
定義を取得します。
以下のリゾルバーは、Red Hat OpenShift Pipelines のデフォルトのインストールで使用できます。
- ハブリゾルバー
-
Artifact Hub または Tekton Hub で利用可能な Pipelines Catalog からタスク、パイプライン、または
StepAction
定義を取得します。 - バンドルリゾルバー
-
OpenShift コンテナーリポジトリーなどの任意の OCI リポジトリーから入手できる OCI イメージである Tekton バンドルからタスク、パイプライン、または
StepAction
定義を取得します。 - Git リゾルバー
-
Git リポジトリーからタスク、パイプライン、または
StepAction
定義を取得します。リポジトリー、ブランチ、パスを指定する必要があります。 - HTTP リゾルバー
-
リモート HTTP または HTTPS の URL からタスク、パイプライン、または
StepAction
定義を取得します。認証の URL を指定する必要があります。 - クラスターリゾルバー
特定の namespace の同じ OpenShift Container Platform クラスター上にすでに作成されているタスクまたはパイプラインを取得します。
注記OpenShift Pipelines バージョン 1.16 では、クラスターリゾルバーによる
StepAction
定義の取得はサポートされません。
OpenShift Pipelines のインストールには、パイプラインで使用できる一連の標準タスクが含まれています。これらのタスクは、OpenShift Pipelines インストール namespace (通常は openshift-pipelines
namespace) にあります。クラスターリゾルバーを使用してタスクにアクセスできます。
OpenShift Pipelines は標準の StepAction
定義も提供します。HTTP リゾルバーを使用してこの定義にアクセスできます。
3.1. Tekton カタログからのリモートパイプライン、タスク、またはステップアクションの指定
ハブリゾルバーを使用して、Artifact Hub のパブリック Tekton カタログまたは Tekton Hub のインスタンスで定義されるリモートパイプライン、タスク、または StepAction
定義を指定できます。
Artifact Hub プロジェクトは、Red Hat OpenShift Pipelines ではサポートされていません。Artifact Hub の設定のみがサポートされます。
3.1.1. ハブリゾルバーの設定
ハブリゾルバーを設定することで、リソースをプルするためのデフォルトのハブとデフォルトのカタログ設定を変更できます。
手順
TektonConfig
カスタムリソースを編集するには、次のコマンドを入力します。$ oc edit TektonConfig config
TektonConfig
カスタムリソースで、pipeline.hub-resolver-config
仕様を編集します。apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: pipeline: hub-resolver-config: default-tekton-hub-catalog: Tekton 1 default-artifact-hub-task-catalog: tekton-catalog-tasks 2 default-artifact-hub-pipeline-catalog: tekton-catalog-pipelines 3 defailt-kind: pipeline 4 default-type: tekton 5 tekton-hub-api: "https://my-custom-tekton-hub.example.com" 6 artifact-hub-api: "https://my-custom-artifact-hub.example.com" 7
- 1
- リソースをプルするためのデフォルトの Tekton Hub カタログ。
- 2
- タスクリソースをプルするためのデフォルトの Artifact Hub カタログ。
- 3
- パイプラインリソースをプルするためのデフォルトの Artifact Hub カタログ。
- 4
- 参照のデフォルトのオブジェクトの種類。
- 5
- リソースをプルするためのデフォルトのハブ。Artifact Hub の場合は
artifact
、Tekton Hub の場合はtekton
です。 - 6
default-type
オプションがtekton
に設定されている場合に使用される Tekton Hub API。- 7
- オプション:
default-type
オプションがartifact
に設定されている場合に使用される Artifact Hub API。
重要default-type
オプションをtekton
に設定する場合は、tekton-hub-api
値を設定して Tekton Hub の独自のインスタンスを設定する必要があります。default-type
オプションをartifact
に設定すると、リゾルバーはデフォルトで https://artifacthub.io/ のパブリックハブ API を使用します。artifact-hub-api
値を設定することで、独自の Artifact Hub API を設定できます。
3.1.2. ハブリゾルバーを使用したリモートパイプライン、タスク、またはステップアクションの指定
パイプライン実行を作成するときに、Artifact Hub または Tekton Hub からリモートパイプラインを指定できます。パイプラインまたはタスク実行を作成するときに、Artifact Hub または Tekton Hub からリモートタスクを指定できます。タスク内でステップを作成するときに、Artifact Hub または Tekton Hub からリモート StepAction
定義を参照できます。
手順
Artifact Hub または Tekton Hub からリモートパイプライン、タスク、または
StepAction
定義を指定するには、pipelineRef
、taskRef
、またはstep.ref
仕様で次の参照形式を使用します。# ... resolver: hub params: - name: catalog value: <catalog> - name: type value: <catalog_type> - name: kind value: [pipeline|task] - name: name value: <resource_name> - name: version value: <resource_version> # ...
表3.1 ハブリゾルバーでサポートされるパラメーター パラメーター 説明 値の例 catalog
リソースを取得するためのカタログ。
デフォルト:
tekton-catalog-tasks
(task
の種類)。tekton-catalog-pipelines
(pipeline
の種類の場合)。type
リソースをプルするカタログのタイプ。Artifact Hub の場合は
Artifact
、Tekton Hub の場合はtekton
のいずれかです。デフォルト:
artifact
kind
task
またはpipeline
のいずれか。デフォルト:
task
name
ハブから取得するタスクまたはパイプラインの名前。
golang-build
version
ハブから取得するタスクまたはパイプラインのバージョン。数値を引用符 (
"
) で囲む必要があります。"0.5.0"
パイプラインまたはタスクに追加のパラメーターが必要な場合は、パイプライン、パイプライン実行、またはタスク実行の仕様の
params
セクションでこれらのパラメーターの値を指定します。pipelineRef
またはtaskRef
仕様のparams
セクションには、リゾルバーがサポートするパラメーターのみを含める必要があります。
例
次のパイプライン実行の例では、カタログからリモートパイプラインを参照します。
apiVersion: tekton.dev/v1 kind: PipelineRun metadata: name: hub-pipeline-reference-demo spec: pipelineRef: resolver: hub params: - name: catalog value: tekton-catalog-pipelines - name: type value: artifact - name: kind value: pipeline - name: name value: example-pipeline - name: version value: "0.1" params: - name: sample-pipeline-parameter value: test
次のパイプラインの例は、カタログからリモートタスクを参照します。
apiVersion: tekton.dev/v1 kind: Pipeline metadata: name: pipeline-with-hub-task-reference-demo spec: tasks: - name: "cluster-task-reference-demo" taskRef: resolver: hub params: - name: catalog value: tekton-catalog-tasks - name: type value: artifact - name: kind value: task - name: name value: example-task - name: version value: "0.6" params: - name: sample-task-parameter value: test
次のタスク実行例では、カタログからリモートタスクを参照します。
apiVersion: tekton.dev/v1 kind: TaskRun metadata: name: hub-task-reference-demo spec: taskRef: resolver: hub params: - name: catalog value: tekton-catalog-tasks - name: type value: artifact - name: kind value: task - name: name value: example-task - name: version value: "0.6" params: - name: sample-task-parameter value: test
次のタスクの例には、カタログから StepAction
定義を参照するステップが含まれています。
apiVersion: tekton.dev/v1 kind: Task metadata: name: hub-stepaction-reference-demo spec: steps: - name: example-step ref: - resolver: hub - params: - name: catalog value: tekton-catalog-stepactions - name: type value: artifact - name: kind value: StepAction - name: name value: example-stepaction - name: version value: "0.6" params: - name: sample-stepaction-parameter value: test