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. 任务运行工件支持的参数
键 | 描述 | 支持的值 | 默认值 |
---|---|---|---|
| 存储任务运行有效负载的格式。 |
|
|
|
任务运行签名的存储后端。您可以将多个后端指定为用逗号分开的列表,如 |
|
|
| 用于签名任务运行有效负载的签名后端。 |
|
|
slsa/v1
是 in-toto
的别名,用于向后兼容。
1.2.1.2. 管道运行工件支持的参数
参数 | 描述 | 支持的值 | 默认值 |
---|---|---|---|
| 存储管道运行有效负载的格式。 |
|
|
|
用于存储管道运行签名的存储后端。您可以将多个后端指定为用逗号分开的列表,如 |
|
|
| 用于签名管道运行有效负载的签名后端。 |
|
|
|
当此参数为 |
|
|
-
slsa/v1
是in-toto
的别名,用于向后兼容。 -
对于
grafeas
存储后端,只支持 Container Analysis。您无法在 Tekton 链的当前版本中配置grafeas
服务器地址。
1.2.1.3. OCI 工件支持的参数
参数 | 描述 | 支持的值 | 默认值 |
---|---|---|---|
| 存储 OCI 有效负载的格式。 |
|
|
|
用于存储 OCI 签名的存储后端。您可以将多个后端指定为用逗号分开的列表,如 |
|
|
| 用于签名 OCI 有效负载的签名后端。 |
|
|
1.2.1.4. KMS 符号支持的参数
参数 | 描述 | 支持的值 | 默认值 |
---|---|---|---|
|
对要在 |
支持的方案: |
1.2.1.5. 支持的存储参数
参数 | 描述 | 支持的值 | 默认值 |
---|---|---|---|
| 存储的 GCS 存储桶 | ||
| 用于存储 OCI 签名和测试的 OCI 存储库。 |
如果您将其中一个工件存储后端配置为 | |
| 为 in-toto attestations 设置的构建器 ID |
| |
|
in-toto attestation 的构建类型。当此参数为 |
|
|
如果您启用了 docdb
存储方法用于任何工件,请配置 docstore 存储选项。有关 go-cloud docstore URI 格式的更多信息,请参阅文档 存储软件包文档。Red Hat OpenShift Pipelines 支持以下 docstore 服务:
-
firestore
-
dynamodb
参数 | 描述 | 支持的值 | 默认值 |
---|---|---|---|
|
对 |
| |
|
用于 | ||
|
名为 |
示例值: |
如果您为任何工件启用 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>
作为前缀。
参数 | 描述 | 支持的值 | 默认值 |
---|---|---|---|
| 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
签名后端,请根据需要设置 KMS 配置,包括 OIDC 和 Spire。
参数 | 描述 | 支持的值 | 默认值 |
---|---|---|---|
|
KMS 服务器的 URI ( | ||
|
KMS 服务器的身份验证令牌 ( | ||
|
包含 KMS 服务器的身份验证令牌的完整路径名( |
示例值: | |
|
OIDC 身份验证的路径(例如,Vault 为 | ||
| OIDC 身份验证的角色。 | ||
|
KMS 令牌的 Spire 套接字的 URI (例如: | ||
| 从 Spire 请求 SVID 的受众。 |
1.2.2. 创建并挂载 Mongo 服务器 URL secret
您可以使用机密提供用于 docdb
存储(MONGO_SERVER_URL
)的 Mongo 服务器 URL 的值。您必须创建此 secret,将其挂载到 Tekton Chains 控制器上,并将 storage.docdb.mongo-server-url-dir
参数设置为挂载 secret 的目录。
先决条件
-
已安装 OpenShift CLI (
oc
)实用程序。 -
您可以使用
openshift-pipelines
命名空间的管理权限登录到 OpenShift Container Platform 集群。
流程
输入以下命令,使用
MONGO_SERVER_URL
文件创建一个名为mongo-url
的 secret,该文件包含 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 控制器上的 secret,并将storage.docdb.mongo-server-url-dir
参数设置为挂载 secret 的目录,如下例所示:挂载
mongo-url
secret 的配置示例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 身份验证令牌 secret
您可以使用 secret 为 KMS 服务器提供身份验证令牌。例如,如果 KMS 供应商是 Hashicorp Vault,则 secret 必须包含 VAULT_TOKEN
的值。
您必须创建此 secret,将其挂载到 Tekton Chains 控制器上,并将 signers.kms.auth.token-path
参数设置为身份验证令牌文件的完整路径。
先决条件
-
已安装 OpenShift CLI (
oc
)实用程序。 -
您可以使用
openshift-pipelines
命名空间的管理权限登录到 OpenShift Container Platform 集群。
流程
输入以下命令,使用
KMS_AUTH_TOKEN
文件创建一个名为kms-secrets
的 secret,该文件包含 KMS 服务器的身份验证令牌:$ 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 控制器上配置 secret,并将signers.kms.auth.token-path
参数设置为身份验证令牌文件的完整路径,如下例所示:挂载
kms-secrets
secret 的配置示例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. 启用 Tekton 链仅在所选命名空间中运行
默认情况下,Tekton Chains 控制器监控所有命名空间中的所有资源。您可以自定义 Tekton 链,以仅在特定命名空间中运行,这对操作提供了精细的控制。
先决条件
-
使用
cluster-admin
权限登录到 OpenShift Container Platform 集群。
流程
在
TektonConfig
CR 中,在chain
部分中,添加 the-namespace=
参数,使其包含控制器应该监控的命名空间。以下示例显示了 Tekton Chains 控制器的配置,以仅监控
dev
和test
命名空间中的资源,相应地过滤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
- 如果没有提供或留空,则控制器默认监视所有命名空间。