1.2. 配置 Tekton 链

Red Hat OpenShift Pipelines Operator 默认安装 Tekton 链。您可以通过修改 TektonConfig 自定义资源来配置 Tekton 链;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

tekton

artifacts.taskrun.signer

用于签名任务运行有效负载的签名后端。

x509,kms

x509

注意

slsa/v1in-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

tekton

artifacts.pipelinerun.signer

用于签名管道运行有效负载的签名后端。

x509,kms

x509

注意
  • slsa/v1in-toto 的别名,用于向后兼容。
  • 对于 grafeas 存储后端,只支持 Container Analysis。您无法在 Tekton 链的当前版本中配置 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. 链配置:存储支持的参数

参数描述支持的值默认值

storage.gcs.bucket

存储的 GCS 存储桶

  

storage.oci.repository

用于存储 OCI 签名和测试的 OCI 存储库。

如果您将其中一个工件存储后端配置为 oci,且没有定义此密钥,Tekton Chains 会将 attestation 与存储的 OCI 工件本身一起存储。如果您定义了这个密钥,则 attestation 不会与 OCI 工件一起存储,而是存储在指定的位置。如需更多信息,请参阅 cosign 文档

 

builder.id

为 in-toto attestations 设置的构建器 ID

 

https://tekton.dev/chains/v2

如果您启用了 docdb 存储方法用于任何工件,请配置 docstore 存储选项。有关 go-cloud docstore URI 格式的更多信息,请参阅文档 存储软件包文档。Red Hat OpenShift Pipelines 支持以下 docstore 服务:

  • firestore
  • dynamodb

表 1.6. 链配置:docstore 存储支持的参数

参数描述支持的值默认值

storage.docdb.url

docstore 集合的 go-cloud URI 引用。在为任何工件启用了 docdb 存储方法时使用。

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

 

如果您为任何工件启用 grafeas 存储方法,请配置 Grafeas 存储选项。有关 Grafeas 备注和发生的更多信息,请参阅 Grafeas 概念

要创建并行,Red Hat OpenShift Pipelines 必须首先创建用于链接并行的备注。Red Hat OpenShift Pipelines 创建两种类型的发生: ATTESTATION Occurrence 和 BUILD Occurrence。

Red Hat OpenShift Pipelines 使用可配置的 noteid 作为备注名称的前缀。它附加 ATTESTATION 备注的后缀 -simplesigning,以及 BUILD 备注的后缀 -intoto。如果没有配置 noteid 字段,Red Hat OpenShift Pipelines 将使用 tekton-<NAMESPACE> 作为前缀。

表 1.7. 链配置:Grafeas 存储支持的参数

参数描述支持的值默认值

storage.grafeas.projectid

Grafeas 服务器用于存储发生的 OpenShift Container Platform 项目。

  

storage.grafeas.noteid

可选:用于所有创建备注的名称的前缀。

没有空格的字符串。

 

storage.grafeas.notehint

可选:Grafeas ATTESTATION 备注的 human_readable_name 字段。

 

此 attestation 备注由 Tekton 链生成

另外,您还可以在测试时启用额外的二进制透明度上传。

表 1.8. 链配置:支持参数,以获得透明测试存储

参数描述支持的值默认值

transparency.enabled

启用或禁用自动二进制透明度上传。

true,false,manual

false

transparency.url

如果启用,用于上传二进制透明度的 URL。

 

https://rekor.sigstore.dev

注意

如果将 transparency.enabled 设置为 manual,则只有带有以下注解的任务和管道运行上传到透明度日志中:

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

如果配置 x509 签名后端,您可以选择使用 Fulcio 启用无密钥签名。

表 1.9. 链配置:使用 Fulcio 进行 x509 密钥无密钥签名的支持参数

参数描述支持的值默认值

signers.x509.fulcio.enabled

从 Fulcio 启用或禁用请求自动证书。

true, false

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 令牌的供应商。

Google,spiffe,github,filesystem

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 签名后端,请根据需要设置 KMS 配置,包括 OIDC 和 Spire。

表 1.10. 链配置: KMS 签名支持的参数

参数描述支持的值默认值

signers.kms.auth.address

KMS 服务器的 URI (VAULT_ADDR 的值)。

signers.kms.auth.token

KMS 服务器的身份验证令牌 (VAULT_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 的受众。