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. タスク実行アーティファクトでサポートされているパラメーター
キー | 説明 | サポート対象の値 | デフォルト値 |
---|---|---|---|
| タスク実行ペイロードを保存するための形式。 |
|
|
|
タスク実行署名のストレージバックエンド。 |
|
|
| タスク実行ペイロードに署名するための署名バックエンド。 |
|
|
slsa/v1
は、下位互換性のための in-toto
のエイリアスです。
1.2.1.2. パイプライン実行アーティファクトでサポートされているパラメーター
パラメーター | 説明 | サポート対象の値 | デフォルト値 |
---|---|---|---|
| パイプライン実行ペイロードを保存する形式。 |
|
|
|
パイプライン実行署名を保存するためのストレージバックエンド。 |
|
|
| パイプライン実行ペイロードに署名するための署名バックエンド。 |
|
|
|
このパラメーターが |
|
|
-
slsa/v1
は、下位互換性のためのin-toto
のエイリアスです。 -
Grafeas
ストレージバックエンドの場合、Container Analysis のみがサポートされます。Tekton Chains の現在のバージョンでは、grafeas
サーバーアドレスを設定できません。
1.2.1.3. OCI アーティファクトでサポートされているパラメーター
パラメーター | 説明 | サポート対象の値 | デフォルト値 |
---|---|---|---|
| OCI ペイロードを保存するための形式。 |
|
|
|
OCI 署名を保存するためのストレージバックエンド。 |
|
|
| OCI ペイロードに署名するための署名バックエンド。 |
|
|
1.2.1.4. KMS 署名者でサポートされているパラメーター
パラメーター | 説明 | サポート対象の値 | デフォルト値 |
---|---|---|---|
|
|
サポートされているスキーム: |
1.2.1.5. ストレージでサポートされているパラメーター
パラメーター | 説明 | サポート対象の値 | デフォルト値 |
---|---|---|---|
| ストレージ用の GCS バケット | ||
| OCI 署名と証明書を保存するための OCI リポジトリー。 |
アーティファクトストレージバックエンドの 1 つを | |
| in-toto 証明書に設定するビルダー ID |
| |
|
in-toto アテステーションのビルドタイプ。このパラメーターが |
|
任意のアーティファクトに対して docdb
ストレージ方法を有効にする場合は、docstore ストレージオプションを設定します。go-cloud docstore URI 形式の詳細は、docstore パッケージのドキュメント を参照してください。Red Hat OpenShift Pipelines は、次の docstore サービスをサポートしています。
-
firestore
-
dynamodb
パラメーター | 説明 | サポート対象の値 | デフォルト値 |
---|---|---|---|
|
|
| |
|
| ||
|
|
例の値: |
アーティファクトに対して 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>
を使用します。
パラメーター | 説明 | サポート対象の値 | デフォルト値 |
---|---|---|---|
| オカレンスを保存する Grafeas サーバーが配置されている OpenShift Container Platform プロジェクト。 | ||
| オプション: 作成されたすべてのメモの名前に使用する接頭辞。 | スペースなしの文字列。 | |
|
オプション: Grafeas |
|
オプションで、バイナリー透明性証明書の追加アップロードを有効にできます。
パラメーター | 説明 | サポート対象の値 | デフォルト値 |
---|---|---|---|
| 自動バイナリー透明性アップロードを有効または無効にします。 |
|
|
| バイナリー透明性証明書をアップロードするための URL (有効な場合)。 |
|
transparency.enabled
を manual
に設定すると、次のアノテーションが付いたタスク実行とパイプライン実行のみが透過性ログにアップロードされます。
chains.tekton.dev/transparency-upload: "true"
x509
署名バックエンドを設定する場合、オプションで Fulcio を使用したキーレス署名を有効にできます。
パラメーター | 説明 | サポート対象の値 | デフォルト値 |
---|---|---|---|
| Fulcio からの自動証明書の要求を有効または無効にします。 |
|
|
| 証明書を要求するための Fulcio アドレス (有効な場合)。 |
| |
| 予想される OIDC 発行者。 |
| |
| ID トークンを要求するプロバイダー。 |
| Red Hat OpenShift Pipelines はすべてのプロバイダーの使用を試みます |
| ID トークンを含むファイルへのパス。 | ||
|
TUF サーバーの URL。 |
|
kms
署名バックエンドを設定する場合は、必要に応じて OIDC や Spire を含む KMS 設定を行います。
パラメーター | 説明 | サポート対象の値 | デフォルト値 |
---|---|---|---|
|
KMS サーバーの URI ( | ||
|
KMS サーバーの認証トークン ( | ||
|
KMS サーバーの認証トークン ( |
値の例: | |
|
OIDC 認証のパス (Vault の場合は | ||
| OIDC 認証のロール。 | ||
|
KMS トークンの Spire ソケットの URI (例: | ||
| 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 クラスターにログインしている。
手順
次のコマンドを入力して、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
ファイルの完全なパスと名前。
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 クラスターにログインしている。
手順
次のコマンドを入力して、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
の代わりに別のファイル名を使用することもできます。
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 を監視します。