1.2. Tekton 체인 구성
Red Hat OpenShift Pipelines Operator는 기본적으로 Tekton 체인을 설치합니다. TektonConfig
사용자 정의 리소스를 수정하여 Tekton 체인을 구성할 수 있습니다. Operator는 이 사용자 정의 리소스에서 변경한 사항을 자동으로 적용합니다.
사용자 정의 리소스를 편집하려면 다음 명령을 사용합니다.
$ oc edit TektonConfig config
사용자 정의 리소스에는 체인 배열이 포함됩니다
. 다음 예와 같이 지원되는 모든 구성 매개변수를 이 배열에 추가할 수 있습니다.
apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: addon: {} chain: artifacts.taskrun.format: tekton config: {}
1.2.1. Tekton 체인 구성에 지원되는 매개변수
클러스터 관리자는 지원되는 다양한 매개변수 키와 값을 사용하여 작업 실행, OCI 이미지 및 스토리지에 대한 사양을 구성할 수 있습니다.
1.2.1.1. 작업 실행 아티팩트에 지원되는 매개변수
키 | 설명 | 지원되는 값 | 기본값 |
---|---|---|---|
| 작업 실행 페이로드를 저장하는 형식입니다. |
|
|
|
작업 실행 서명을 위한 스토리지 백엔드입니다. |
|
|
| 작업 실행 페이로드에 서명하기 위한 서명 백엔드입니다. |
|
|
slsa/v1
은 이전 버전과의 호환성을 위해 In-to
의 별칭입니다.
1.2.1.2. 파이프라인 실행 아티팩트에 지원되는 매개변수
매개변수 | 설명 | 지원되는 값 | 기본값 |
---|---|---|---|
| 파이프라인 실행 페이로드를 저장하는 형식입니다. |
|
|
|
파이프라인 실행 서명을 저장하기 위한 스토리지 백엔드입니다. |
|
|
| 파이프라인 실행 페이로드에 서명하기 위한 서명 백엔드입니다. |
|
|
|
이 매개변수가 |
|
|
-
slsa/v1
은 이전 버전과의 호환성을 위해In-to
의 별칭입니다. -
grafeas
스토리지 백엔드의 경우 컨테이너 분석만 지원됩니다. Tekton 체인의 현재 버전에서는grafeas
서버 주소를 구성할 수 없습니다.
1.2.1.3. OCI 아티팩트에 지원되는 매개변수
매개변수 | 설명 | 지원되는 값 | 기본값 |
---|---|---|---|
| OCI 페이로드를 저장하는 형식입니다. |
|
|
|
OCI 서명을 저장하기 위한 스토리지 백엔드입니다. |
|
|
| OCI 페이로드에 서명하기 위한 서명 백엔드입니다. |
|
|
1.2.1.4. KMS 서명자에서 지원되는 매개변수
매개변수 | 설명 | 지원되는 값 | 기본값 |
---|---|---|---|
|
|
지원되는 스키마: |
1.2.1.5. 스토리지에 지원되는 매개변수
매개변수 | 설명 | 지원되는 값 | 기본값 |
---|---|---|---|
| 스토리지를 위한 GCS 버킷 | ||
| OCI 서명 및 인증을 저장하기 위한 OCI 리포지토리입니다. |
아티팩트 스토리지 백엔드 중 하나를 | |
| 인증 정보용으로 설정할 빌더 ID |
| |
|
In-totestation의 빌드 유형입니다. 이 매개변수가 |
|
docdb
스토리지 방법이 아티팩트에 해당하는 경우 docstore 스토리지 옵션을 구성합니다. go-cloud docstore URI 형식에 대한 자세한 내용은 docstore 패키지 설명서 를 참조하십시오. Red Hat OpenShift Pipelines는 다음 문서 서비스를 지원합니다.
-
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
note의 접미사 -intoto
를 추가합니다. noteid
필드가 구성되지 않은 경우 Red Hat OpenShift Pipelines는 tekton-<NAMESPACE
>를 접두사로 사용합니다.
매개변수 | 설명 | 지원되는 값 | 기본값 |
---|---|---|---|
| 발생을 저장하기 위한 Grafeas 서버가 있는 OpenShift Container Platform 프로젝트입니다. | ||
| 선택 사항: 생성된 모든 노트의 이름에 사용할 접두사입니다. | 공백이 없는 문자열입니다. | |
|
선택 사항: Grafeas |
|
선택적으로 바이너리 투명성 증명의 추가 업로드를 활성화할 수 있습니다.
매개변수 | 설명 | 지원되는 값 | 기본값 |
---|---|---|---|
| 자동 바이너리 투명도 업로드를 활성화하거나 비활성화합니다. |
|
|
| 활성화된 경우 바이너리 투명도를 업로드하기 위한 URL입니다. |
|
transparency.enabled
를 수동
으로 설정하면 다음 주석이 있는 작업 실행 및 파이프라인 실행만 투명 로그에 업로드됩니다.
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입니다(예: | ||
| SVID를 Spire에서 요청하는 대상입니다. |
1.2.2. Mongo 서버 URL 시크릿 생성 및 마운트
보안을 사용하여 docdb
스토리지(MONGO_SERVER_URL
)에 사용할 Mongo 서버 URL 값을 제공할 수 있습니다. 이 시크릿을 생성하고 Tekton 체인 컨트롤러에 마운트한 다음 storage.docdb.mongo-server-url-dir
매개변수를 시크릿이 마운트된 디렉터리로 설정해야 합니다.
사전 요구 사항
-
OpenShift CLI(
oc
) 유틸리티를 설치했습니다. -
openshift-pipelines
네임스페이스에 대한 관리 권한이 있는 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(사용자 정의 리소스)의체인
섹션에서 Tekton 체인 컨트롤러에서 시크릿 마운트를 구성하고 다음 예와 같이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 체인 컨트롤러에 마운트하고 signers.kms.auth.token-path
매개변수를 인증 토큰 파일의 전체 경로 이름으로 설정해야 합니다.
사전 요구 사항
-
OpenShift CLI(
oc
) 유틸리티를 설치했습니다. -
openshift-pipelines
네임스페이스에 대한 관리 권한이 있는 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(사용자 정의 리소스)의체인
섹션에서 Tekton 체인 컨트롤러에서 시크릿 마운트를 구성하고 다음 예와 같이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. Tekton 체인이 선택한 네임 스페이스에서만 작동 가능
기본적으로 Tekton 체인 컨트롤러는 모든 네임스페이스의 리소스를 모니터링합니다. Tekton 체인은 특정 네임스페이스에서만 실행되도록 사용자 지정할 수 있으므로 해당 작업을 세부적으로 제어할 수 있습니다.
사전 요구 사항
-
cluster-admin
권한으로 OpenShift Container Platform 클러스터에 로그인되어 있습니다.
프로세스
TektonConfig
CR의chain
섹션에서--namespace=
인수를 추가하여 컨트롤러가 모니터링해야 하는 네임스페이스를 포함합니다.다음 예제에서는
dev
및test
네임스페이스 내의 리소스만 모니터링하여PipelineRun
및TaskRun
오브젝트를 필터링하도록 Tekton 체인 컨트롤러에 대한 구성을 보여줍니다.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
인수가 제공되지 않거나 비어 있는 경우 컨트롤러는 기본적으로 모든 네임스페이스를 감시합니다.