1.4. OCI 레지스트리에 인증
클러스터 관리자는 OCI 레지스트리로 서명을 푸시하기 전에 레지스트리에 인증하도록 Tekton 체인을 구성해야 합니다. Tekton 체인 컨트롤러는 작업이 실행되는 동일한 서비스 계정을 사용합니다. 서명을 OCI 레지스트리로 내보내는 데 필요한 자격 증명으로 서비스 계정을 설정하려면 다음 단계를 수행합니다.
프로세스
Kubernetes 서비스 계정의 네임스페이스 및 이름을 설정합니다.
$ export NAMESPACE=<namespace> 1 $ export SERVICE_ACCOUNT_NAME=<service_account> 2
Kubernetes 시크릿을 생성합니다.
$ oc create secret registry-credentials \ --from-file=.dockerconfigjson \ 1 --type=kubernetes.io/dockerconfigjson \ -n $NAMESPACE
- 1
- Docker 구성 파일의 경로로 바꿉니다. 기본 경로는
~/.docker/config.json
입니다.
서비스 계정에 시크릿에 대한 액세스 권한을 부여합니다.
$ oc patch serviceaccount $SERVICE_ACCOUNT_NAME \ -p "{\"imagePullSecrets\": [{\"name\": \"registry-credentials\"}]}" -n $NAMESPACE
Red Hat OpenShift Pipelines가 모든 작업 실행에 할당하는 기본
파이프라인
서비스 계정을 패치하면 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
- 새로 생성된 서비스 계정의 이름으로 바꿉니다.