1.2. Tekton 체인 구성
Red Hat OpenShift Pipelines Operator는 기본적으로 Tekton 체인을 설치합니다. TektonConfig
사용자 정의 리소스를 수정하여 Tekton 체인을 구성할 수 있습니다. Operator는 이 사용자 정의 리소스에서 변경한 사항을 자동으로 적용합니다.
사용자 정의 리소스를 편집하려면 다음 명령을 사용합니다.
oc edit TektonConfig config
$ oc edit TektonConfig config
사용자 정의 리소스에는 체인 배열이 포함됩니다
. 다음 예와 같이 지원되는 모든 구성 매개변수를 이 배열에 추가할 수 있습니다.
apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: addon: {} chain: artifacts.taskrun.format: tekton 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"
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
이라는 시크릿을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create secret generic mongo-url -n tekton-chains \ --from-file=MONGO_SERVER_URL=<path>/MONGO_SERVER_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
시크릿 마운트 구성 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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 # ...
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
라는 시크릿을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create secret generic kms-secrets -n tekton-chains \ --from-file=KMS_AUTH_TOKEN=<path_and_name>
$ 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
시크릿 마운트 구성 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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 # ...
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 체인 컨트롤러에 대한 구성을 보여줍니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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 name: tekton-chains-controller
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
인수가 제공되지 않거나 비어 있는 경우 컨트롤러는 기본적으로 모든 네임스페이스를 감시합니다.