1.2. Tekton Chains の設定


Red Hat OpenShift Pipelines Operator は、デフォルトで Tekton Chains をインストールします。TektonConfig カスタムリソースを変更することで、Tekton Chains を設定できます。Operator は、このカスタムリソースに加えた変更を自動的に適用します。

カスタムリソースを編集するには、次のコマンドを使用します。

$ oc edit TektonConfig config

カスタムリソースには、chain: 配列が含まれます。次の例に示すように、サポートされている設定パラメーターをこの配列に追加できます。

apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:
  name: config
spec:
  addon: {}
  chain:
    artifacts.taskrun.format: tekton
  config: {}

1.2.1. Tekton Chains 設定でサポートされているパラメーター

クラスター管理者は、サポートされているさまざまなパラメーターのキーと値を使用して、タスクの実行、OCI イメージ、およびストレージに関する仕様を設定できます。

1.2.1.1. タスク実行アーティファクトでサポートされているパラメーター

表1.1 チェーン設定: タスク実行アーティファクトでサポートされているパラメーター
キー説明サポート対象の値デフォルト値

artifacts.taskrun.format

タスク実行ペイロードを保存するための形式。

in-toto, slsa/v1

in-toto

artifacts.taskrun.storage

タスク実行署名のストレージバックエンド。“tekton,oci" のように、複数のバックエンドをコンマ区切りのリストとして指定できます。タスク実行アーティファクトの保存を無効にするには、空の文字列 “” を指定します。

tekton, oci, gcs, docdb, grafeas

oci

artifacts.taskrun.signer

タスク実行ペイロードに署名するための署名バックエンド。

x509, kms

x509

注記

slsa/v1 は、下位互換性のための in-toto のエイリアスです。

1.2.1.2. パイプライン実行アーティファクトでサポートされているパラメーター

表1.2 チェーン設定: パイプライン実行アーティファクトでサポートされているパラメーター
パラメーター説明サポート対象の値デフォルト値

artifacts.pipelinerun.format

パイプライン実行ペイロードを保存する形式。

in-toto, slsa/v1

in-toto

artifacts.pipelinerun.storage

パイプライン実行署名を保存するためのストレージバックエンド。“tekton,oci" のように、複数のバックエンドをコンマ区切りのリストとして指定できます。パイプライン実行アーティファクトの保存を無効にするには、空の文字列 "" を指定します。

tekton, oci, gcs, docdb, grafeas

oci

artifacts.pipelinerun.signer

パイプライン実行ペイロードに署名するための署名バックエンド。

x509, kms

x509

artifacts.pipelinerun.enable-deep-inspection

このパラメーターが true の場合、Tekton Chains はパイプライン実行の子タスク実行の結果を記録します。このパラメーターが false の場合、Tekton Chains はパイプラインの実行結果を記録しますが、子タスクの実行結果は記録しません。

"true", "false"

"false"

注記
  • slsa/v1 は、下位互換性のための in-toto のエイリアスです。
  • Grafeas ストレージバックエンドの場合、Container Analysis のみがサポートされます。Tekton Chains の現在のバージョンでは、grafeas サーバーアドレスを設定できません。

1.2.1.3. OCI アーティファクトでサポートされているパラメーター

表1.3 チェーン設定: OCI アーティファクトでサポートされているパラメーター
パラメーター説明サポート対象の値デフォルト値

artifacts.oci.format

OCI ペイロードを保存するための形式。

simplesigning

simplesigning

artifacts.oci.storage

OCI 署名を保存するためのストレージバックエンド。“oci,tekton" のように、複数のバックエンドをコンマ区切りのリストとして指定できます。OCI アーティファクトの保存を無効にするには、空の文字列 “” を指定します。

tekton, oci, gcs, docdb, grafeas

oci

artifacts.oci.signer

OCI ペイロードに署名するための署名バックエンド。

x509, kms

x509

1.2.1.4. KMS 署名者でサポートされているパラメーター

表1.4 チェーン設定: KMS 署名者用にサポートされているパラメーター
パラメーター説明サポート対象の値デフォルト値

signers.kms.kmsref

kms 署名者で使用する KMS サービスへの URI 参照。

サポートされているスキーム: gcpkms://awskms://azurekms://hashivault://。詳細は、Sigstore ドキュメントの KMS サポート を参照してください。

 

1.2.1.5. ストレージでサポートされているパラメーター

表1.5 Chains 設定: ストレージでサポートされているパラメーター
パラメーター説明サポート対象の値デフォルト値

storage.gcs.bucket

ストレージ用の GCS バケット

  

storage.oci.repository

OCI 署名と証明書を保存するための OCI リポジトリー。

アーティファクトストレージバックエンドの 1 つを oci に設定し、このキーを定義しない場合、Tekton Chains は、保存された OCI アーティファクト自体と一緒に証明書を保存します。このキーを定義すると、証明書は OCI アーティファクトと一緒に保存されず、指定された場所に保存されます。追加情報は、署名のドキュメント を参照してください。

 

builder.id

in-toto 証明書に設定するビルダー ID

 

https://tekton.dev/chains/v2

builddefinition.buildtype

in-toto アテステーションのビルドタイプ。このパラメーターが https://tekton.dev/chains/v2/slsa の場合、Tekton Chains は SLSA v1.0 仕様に厳密に準拠して in-toto 証明書を記録します。このパラメーターが https://tekton.dev/chains/v2/slsa-tekton の場合、Tekton Chains は各 TaskRun および PipelineRun オブジェクトのラベルやアノテーションなどの追加情報を含む完全なアテステーションを記録し、また、resolvedDependencies の下の PipelineRun オブジェクトに各タスクを追加します。

https://tekton.dev/chains/v2/slsahttps://tekton.dev/chains/v2/slsa-tekton

https://tekton.dev/chains/v2/slsa

任意のアーティファクトに対して docdb ストレージ方法を有効にする場合は、docstore ストレージオプションを設定します。go-cloud docstore URI 形式の詳細は、docstore パッケージのドキュメント を参照してください。Red Hat OpenShift Pipelines は、次の docstore サービスをサポートしています。

  • firestore
  • dynamodb
表1.6 Chains 設定: docstore ストレージでサポートされているパラメーター
パラメーター説明サポート対象の値デフォルト値

storage.docdb.url

docstore コレクションへの go-cloud URI 参照。アーティファクトに対して docdb ストレージ方式が有効になっている場合に使用されます。

firestore://projects/[PROJECT]/databases/(default)/documents/[COLLECTION]?name_field=name

 

storage.docdb.mongo-server-url

docdb ストレージに使用する Mongo サーバー URL の値 (MONGO_SERVER_URL)。この URL には認証情報を含めることができます。実稼働環境では、認証情報をプレーンテキスト設定として提供すると安全でない可能性があります。実稼働環境では、代わりの storage.docdb.mongo-server-url-dir 設定を使用します。

  

storage.docdb.mongo-server-url-dir

MONGO_SERVER_URL という名前のファイルが配置されているディレクトリー。このファイルには、docdb ストレージに使用する Mongo サーバー URL (MONGO_SERVER_URL) が含まれています。このファイルをシークレットとして提供し、Mongo サーバー URL シークレットの作成とマウント の説明に従って、Tekton Chains コントローラー用にこのファイルのマウントを設定します。

例の値: /tmp/mongo-url

 

アーティファクトに対して Grafeas ストレージ方式を有効にする場合は、Grafeas ストレージオプションを設定します。Grafeas のメモとオカレンスの詳細は、Grafeas の概念 を参照してください。

オカレンスを作成するには、Red Hat OpenShift Pipelines はまずオカレンスのリンクに使用されるノートを作成する必要があります。Red Hat OpenShift Pipelines は、ATTESTATION オカレンスと BUILD オカレンスの 2 種類のオカレンスを作成します。

Red Hat OpenShift Pipelines は、設定可能な noteid をノート名の接頭辞として使用します。ATTESTATION ノートには接尾辞 -simplesigning が、BUILD ノートには接尾辞 -intoto が追加されます。noteid フィールドが設定されていない場合、Red Hat OpenShift Pipelines は接頭辞として tekton-<NAMESPACE> を使用します。

表1.7 Chains 設定: Grafeas ストレージでサポートされているパラメーター
パラメーター説明サポート対象の値デフォルト値

storage.grafeas.projectid

オカレンスを保存する Grafeas サーバーが配置されている OpenShift Container Platform プロジェクト。

  

storage.grafeas.noteid

オプション: 作成されたすべてのメモの名前に使用する接頭辞。

スペースなしの文字列。

 

storage.grafeas.notehint

オプション: Grafeas ATTESTATION メモの human_readable_name フィールド。

 

This attestation note was generated by Tekton Chains

オプションで、バイナリー透明性証明書の追加アップロードを有効にできます。

表1.8 Chains 設定: 透明性証明書ストレージでサポートされているパラメーター
パラメーター説明サポート対象の値デフォルト値

transparency.enabled

自動バイナリー透明性アップロードを有効または無効にします。

truefalsemanual

false

transparency.url

バイナリー透明性証明書をアップロードするための URL (有効な場合)。

 

https://rekor.sigstore.dev

注記

transparency.enabledmanual に設定すると、次のアノテーションが付いたタスク実行とパイプライン実行のみが透過性ログにアップロードされます。

chains.tekton.dev/transparency-upload: "true"

x509 署名バックエンドを設定する場合、オプションで Fulcio を使用したキーレス署名を有効にできます。

表1.9 チェーン設定: Fulcio を使用した x509 キーレス署名でサポートされているパラメーター
パラメーター説明サポート対象の値デフォルト値

signers.x509.fulcio.enabled

Fulcio からの自動証明書の要求を有効または無効にします。

truefalse

false

signers.x509.fulcio.address

証明書を要求するための Fulcio アドレス (有効な場合)。

 

https://v1.fulcio.sigstore.dev

signers.x509.fulcio.issuer

予想される OIDC 発行者。

 

https://oauth2.sigstore.dev/auth

signers.x509.fulcio.provider

ID トークンを要求するプロバイダー。

googlespiffegithubfilesystem

Red Hat OpenShift Pipelines はすべてのプロバイダーの使用を試みます

signers.x509.identity.token.file

ID トークンを含むファイルへのパス。

  

signers.x509.tuf.mirror.url

TUF サーバーの URL。$TUF_URL/root.json が存在する必要があります。

 

https://sigstore-tuf-root.storage.googleapis.com

kms 署名バックエンドを設定する場合は、必要に応じて OIDC や Spire を含む KMS 設定を行います。

表1.10 Chains 設定: KMS 署名でサポートされているパラメーター
パラメーター説明サポート対象の値デフォルト値

signers.kms.auth.address

KMS サーバーの URI (VAULT_ADDR の値)。

  

signers.kms.auth.token

KMS サーバーの認証トークン (VAULT_TOKEN の値)。トークンをプレーンテキスト設定として提供すると、安全でない可能性があります。実稼働環境では、代わりの signers.kms.auth.token-path 設定を使用します。

  

signers.kms.auth.token-path

KMS サーバーの認証トークン (VAULT_TOKEN の値) を含むファイルのフルパス名。このファイルをシークレットとして提供し、KMS 認証トークンシークレットの作成とマウント の説明に従って、Tekton Chains コントローラー用にこのファイルのマウントを設定します。

値の例: /etc/kms-secrets/KMS_AUTH_TOKEN

 

signers.kms.auth.oidc.path

OIDC 認証のパス (Vault の場合は jwt など)。

  

signers.kms.auth.oidc.role

OIDC 認証のロール。

  

signers.kms.auth.spire.sock

KMS トークンの Spire ソケットの URI (例: unix:///tmp/spire-agent/public/api.sock)。

  

signers.kms.auth.spire.audience

Spire から SVID を要求する対象者。

  

1.2.2. Mongo サーバーの URL シークレットの作成とマウント

シークレットを使用して、docdb ストレージに使用する Mongo サーバー URL (MONGO_SERVER_URL) の値を指定できます。このシークレットを作成し、Tekton Chains コントローラーにマウントして、storage.docdb.mongo-server-url-dir パラメーターをシークレットがマウントされるディレクトリーに設定する必要があります。

前提条件

  • OpenShift CLI (oc) ユーティリティーがインストールされている。
  • openshift-pipelines namespace の管理者権限で OpenShift Container Platform クラスターにログインしている。

手順

  1. 次のコマンドを入力して、Mongo サーバーの URL 値を含む MONGO_SERVER_URL ファイルを使用して、mongo-url という名前のシークレットを作成します。

    $ oc create secret generic mongo-url -n tekton-chains \
      --from-file=MONGO_SERVER_URL=<path>/MONGO_SERVER_URL 1
    1
    Mongo サーバーの URL 値が含まれる MONGO_SERVER_URL ファイルの完全なパスと名前。
  2. TektonConfig カスタムリソース (CR) の chain セクションで、Tekton Chains コントローラーにシークレットをマウントするように設定し、次の例に示すように、storage.docdb.mongo-server-url-dir パラメーターをシークレットがマウントされるディレクトリーに設定します。

    mongo-url シークレットをマウントする設定例

    apiVersion: operator.tekton.dev/v1
    kind: TektonConfig
    metadata:
      name: config
    spec:
    # ...
      chain:
        disabled: false
        storage.docdb.mongo-server-url-dir: /tmp/mongo-url
        options:
          deployments:
            tekton-chains-controller:
              spec:
                template:
                  spec:
                    containers:
                    - name: tekton-chains-controller
                      volumeMounts:
                      - mountPath: /tmp/mongo-url
                        name: mongo-url
                    volumes:
                    -  name: mongo-url
                       secret:
                        secretName: mongo-url
    # ...

1.2.3. KMS 認証トークンシークレットの作成とマウント

シークレットを使用して KMS サーバーの認証トークンを提供できます。たとえば、KMS プロバイダーが Hashicorp Vault の場合、シークレットには VAULT_TOKEN の値が含まれている必要があります。

このシークレットを作成し、Tekton Chains コントローラーにマウントし、signers.kms.auth.token-path パラメーターを認証トークンファイルのフルパス名に設定する必要があります。

前提条件

  • OpenShift CLI (oc) ユーティリティーがインストールされている。
  • openshift-pipelines namespace の管理者権限で OpenShift Container Platform クラスターにログインしている。

手順

  1. 次のコマンドを入力して、KMS サーバーの認証トークンを含む KMS_AUTH_TOKEN ファイルを使用して、kms-secrets という名前のシークレットを作成します。

    $ oc create secret generic kms-secrets -n tekton-chains \
      --from-file=KMS_AUTH_TOKEN=<path_and_name> 1
    1
    KMS サーバーの認証トークンを含むファイルの完全なパスと名前 (例: /home/user/KMS_AUTH_TOKEN)KMS_AUTH_TOKEN の代わりに別のファイル名を使用することもできます。
  2. TektonConfig カスタムリソース (CR) の chain セクションで、Tekton Chains コントローラーにシークレットをマウントするように設定し、signers.kms.auth.token-path パラメーターを認証トークンファイルのフルパス名に設定します (次の例を参照)。

    kms-secrets シークレットをマウントする設定例

    apiVersion: operator.tekton.dev/v1
    kind: TektonConfig
    metadata:
      name: config
    spec:
    # ...
      chain:
        disabled: false
        signers.kms.auth.token-path: /etc/kms-secrets/KMS_AUTH_TOKEN
        options:
          deployments:
            tekton-chains-controller:
              spec:
                template:
                  spec:
                    containers:
                    - name: tekton-chains-controller
                      volumeMounts:
                      - mountPath: /etc/kms-secrets
                        name: kms-secrets
                    volumes:
                    -  name: kms-secrets
                       secret:
                        secretName: kms-secrets
    # ...

1.2.4. 選択された namespace でのみ Tekton Chains が動作するようにする手順

デフォルトでは、Tekton Chains コントローラーはすべての namespace のリソースを監視します。Tekton Chains を特定の namespace でのみ実行するようにカスタマイズできるため、操作を細かく制御できます。

前提条件

  • cluster-admin 権限で OpenShift Container Platform クラスターにログインしている。

手順

  • TektonConfig CR の chain セクションで、コントローラーが監視する namespace を含める --namespace= 引数を追加します。

    次の例は、Tekton Chains コントローラーが dev および test namespace 内のリソースのみを監視し、それに応じて PipelineRun および TaskRun オブジェクトをフィルタリングする設定を示しています。

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      chain:
        disabled: false
        options:
          deployments:
            tekton-chains-controller:
              spec:
                template:
                  spec:
                    containers:
                    - args:
                      - --namespace=dev, test 1
                      name: tekton-chains-controller
    1
    --namespace 引数が指定されていないか空のままの場合、コントローラーはデフォルトですべての namespace を監視します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.