1.4. 对 OCI registry 进行身份验证
在将签名推送到 OCI Registry 之前,集群管理员必须配置 Tekton 链,以便与 registry 进行身份验证。Tekton Chains 控制器使用与任务运行相同的服务帐户。要设置具有所需凭证(push)到 OCI registry 的服务帐户,请执行以下步骤:
流程
设置 Kubernetes 服务帐户的命名空间和名称。
$ export NAMESPACE=<namespace> 1 $ export SERVICE_ACCOUNT_NAME=<service_account> 2
创建 Kubernetes secret。
$ oc create secret registry-credentials \ --from-file=.dockerconfigjson \ 1 --type=kubernetes.io/dockerconfigjson \ -n $NAMESPACE
- 1
- 使用 Docker 配置文件的路径替换。默认路径为
~/.docker/config.json
。
授予服务帐户对 secret 的访问权限。
$ oc patch serviceaccount $SERVICE_ACCOUNT_NAME \ -p "{\"imagePullSecrets\": [{\"name\": \"registry-credentials\"}]}" -n $NAMESPACE
如果对 Red Hat OpenShift Pipelines 分配到所有任务的默认
pipeline
服务帐户进行补丁,Red Hat OpenShift Pipelines Operator 将覆盖服务帐户。作为最佳实践,您可以执行以下步骤:创建单独的服务帐户,以分配给用户的任务运行。
$ oc create serviceaccount <service_account_name>
通过设置任务运行模板中的
serviceaccountname
字段的值,将服务帐户关联到运行任务。apiVersion: tekton.dev/v1 kind: TaskRun metadata: name: build-push-task-run-2 spec: taskRunTemplate: serviceAccountName: build-bot 1 taskRef: name: build-push ...
- 1
- 使用新创建的服务帐户的名称替换。