検索

第3章 リゾルバーを使用したリモートパイプラインとタスクの指定

download PDF

パイプラインとタスクは、CI/CD プロセスの再利用可能なブロックです。以前に開発したパイプラインやタスク、または他の人が開発したパイプラインやタスクを、定義をコピーして貼り付けることなく再利用できます。これらのパイプラインまたはタスクは、クラスター上の他の namespace からパブリックカタログに至るまで、いくつかの種類のソースから利用できます。

パイプライン実行リソースでは、既存のソースからパイプラインを指定できます。パイプラインリソースまたはタスク実行リソースでは、既存のソースからタスクを指定できます。

このような場合、Red Hat OpenShift Pipelines の リゾルバー は、実行時に指定されたソースからパイプラインまたはタスク定義を取得します。

以下のリゾルバーは、Red Hat OpenShift Pipelines のデフォルトのインストールで使用できます。

ハブリゾルバー
Artifact Hub または Tekton Hub で利用可能な Pipelines Catalog からタスクまたはパイプラインを取得します。
バンドルリゾルバー
Tekton バンドルからタスクまたはパイプラインを取得します。Tekton バンドルは、OpenShift コンテナーリポジトリーなどの任意の OCI リポジトリーから利用できる OCI イメージです。
クラスターリゾルバー
特定の namespace の同じ OpenShift Container Platform クラスター上にすでに作成されているタスクまたはパイプラインを取得します。
Git リゾルバー
Git リポジトリーからタスクまたはパイプラインバインディングを取得します。リポジトリー、ブランチ、パスを指定する必要があります。

OpenShift Pipelines のインストールには、パイプラインで使用できる一連の標準タスクが含まれています。これらのタスクは、OpenShift Pipelines インストール namespace (通常は openshift-pipelines namespace) にあります。クラスターリゾルバーを使用してタスクにアクセスできます。

3.1. Tekton カタログからのリモートパイプラインまたはタスクの指定

ハブリゾルバーを使用して、Artifact Hub のパブリック Tekton カタログまたは Tekton Hub のインスタンスで定義されたリモートパイプラインまたはタスクを指定できます。

重要

Artifact Hub プロジェクトは、Red Hat OpenShift Pipelines ではサポートされていません。Artifact Hub の設定のみがサポートされます。

3.1.1. ハブリゾルバーの設定

ハブリゾルバーを設定することで、リソースをプルするためのデフォルトのハブとデフォルトのカタログ設定を変更できます。

手順

  1. TektonConfig カスタムリソースを編集するには、次のコマンドを入力します。

    $ oc edit TektonConfig config
  2. 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 からリモートパイプラインまたはタスクを指定するには、pipelineRef または taskRef 仕様で次の参照形式を使用します。

    # ...
      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-cluster-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: cluster-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
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.