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. 작업 실행 아티팩트에 지원되는 매개변수

표 1.1. 체인 구성: 작업 실행 아티팩트에 대해 지원되는 매개변수
설명지원되는 값기본값

artifacts.taskrun.format

작업 실행 페이로드를 저장하는 형식입니다.

in-toto, slsa/v1

in-toto

artifacts.taskrun.storage

작업 실행 서명을 위한 스토리지 백엔드입니다. "tekton,oci" 와 같이 쉼표로 구분된 목록으로 여러 백엔드를 지정할 수 있습니다. 작업 실행 아티팩트 저장을 비활성화하려면 빈 문자열 "" 를 제공합니다.

Tekton,oci,gcs,docdb,grafeas

OCI

artifacts.taskrun.signer

작업 실행 페이로드에 서명하기 위한 서명 백엔드입니다.

x509,kms

x509

참고

slsa/v1 은 이전 버전과의 호환성을 위해 In-to 의 별칭입니다.

1.2.1.2. 파이프라인 실행 아티팩트에 지원되는 매개변수

표 1.2. 체인 구성: 파이프라인 실행 아티팩트에 대해 지원되는 매개변수
매개변수설명지원되는 값기본값

artifacts.pipelinerun.format

파이프라인 실행 페이로드를 저장하는 형식입니다.

in-toto, slsa/v1

in-toto

artifacts.pipelinerun.storage

파이프라인 실행 서명을 저장하기 위한 스토리지 백엔드입니다. "tekton,oci" 와 같이 쉼표로 구분된 목록으로 여러 백엔드를 지정할 수 있습니다. 파이프라인 실행 아티팩트 저장을 비활성화하려면 빈 문자열 "" 를 제공합니다.

Tekton,oci,gcs,docdb,grafeas

OCI

artifacts.pipelinerun.signer

파이프라인 실행 페이로드에 서명하기 위한 서명 백엔드입니다.

x509, kms

x509

artifacts.pipelinerun.enable-deep-inspection

이 매개변수가 true 이면 Tekton 체인은 파이프라인 실행의 하위 작업 실행 결과를 기록합니다. 이 매개변수가 false 이면 Tekton 체인은 하위 작업 실행의 결과가 아니라 파이프라인 실행 결과를 기록합니다.

"true", "false"

"false"

참고
  • slsa/v1 은 이전 버전과의 호환성을 위해 In-to 의 별칭입니다.
  • grafeas 스토리지 백엔드의 경우 컨테이너 분석만 지원됩니다. Tekton 체인의 현재 버전에서는 grafeas 서버 주소를 구성할 수 없습니다.

1.2.1.3. OCI 아티팩트에 지원되는 매개변수

표 1.3. 체인 구성: OCI 아티팩트에 대해 지원되는 매개변수
매개변수설명지원되는 값기본값

artifacts.oci.format

OCI 페이로드를 저장하는 형식입니다.

단순 서명

단순 서명

artifacts.oci.storage

OCI 서명을 저장하기 위한 스토리지 백엔드입니다. "oci,tekton" 와 같이 쉼표로 구분된 목록으로 여러 백엔드를 지정할 수 있습니다. OCI 아티팩트 저장을 비활성화하려면 빈 문자열 "" 를 제공합니다.

Tekton,oci,gcs,docdb,grafeas

OCI

artifacts.oci.signer

OCI 페이로드에 서명하기 위한 서명 백엔드입니다.

x509, kms

x509

1.2.1.4. KMS 서명자에서 지원되는 매개변수

표 1.4. 체인 설정: KMS 서명자에 대해 지원되는 매개변수
매개변수설명지원되는 값기본값

signers.kms.kmsref

kms 서명자에서 사용할 KMS 서비스에 대한 URI 참조입니다.

지원되는 스키마: gcpkms://, awskms://, azurekms://, hashivault://. 자세한 내용은 Sigstore 설명서의 KMS 지원을 참조하십시오.

 

1.2.1.5. 스토리지에 지원되는 매개변수

표 1.5. 체인 구성: 스토리지에 지원되는 매개변수
매개변수설명지원되는 값기본값

storage.gcs.bucket

스토리지를 위한 GCS 버킷

  

storage.oci.repository

OCI 서명 및 인증을 저장하기 위한 OCI 리포지토리입니다.

아티팩트 스토리지 백엔드 중 하나를 oci 로 구성하고 이 키를 정의하지 않으면 Tekton 체인은 저장된 OCI 아티팩트 자체와 함께 인증 정보를 저장합니다. 이 키를 정의하면 인증 정보는 OCI 아티팩트와 함께 저장되지 않으며 대신 지정된 위치에 저장됩니다. 자세한 내용은 cosign 문서를 참조하십시오.

 

builder.id

인증 정보용으로 설정할 빌더 ID

 

https://tekton.dev/chains/v2

builddefinition.buildtype

In-totestation의 빌드 유형입니다. 이 매개변수가 https://tekton.dev/chains/v2/slsa 이면 Tekton 체인은 SLSA v1.0 사양을 엄격하게 준수하여 인증 정보를 기록합니다. 이 매개변수가 https://tekton.dev/chains/v2/slsa-tekton 이면 Tekton 체인은 각 TaskRunPipelineRun 오브젝트의 라벨 및 주석과 같은 추가 정보를 사용하여 In-toto Attestations를 기록하고 resolvedDependencies 아래의 PipelineRun 오브젝트에 각 작업을 추가합니다.

https://tekton.dev/chains/v2/slsa,https://tekton.dev/chains/v2/slsa-tekton

https://tekton.dev/chains/v2/slsa

docdb 스토리지 방법이 아티팩트에 해당하는 경우 docstore 스토리지 옵션을 구성합니다. go-cloud docstore URI 형식에 대한 자세한 내용은 docstore 패키지 설명서 를 참조하십시오. Red Hat OpenShift Pipelines는 다음 문서 서비스를 지원합니다.

  • Firestore
  • dynamodb
표 1.6. 체인 구성: docstore 스토리지에 대해 지원되는 매개변수
매개변수설명지원되는 값기본값

storage.docdb.url

docstore 컬렉션에 대한 go-cloud URI 참조입니다. 모든 아티팩트에 대해 docdb 스토리지 방법이 활성화된 경우 사용됩니다.

firestore://projects/[PROJECT]/databases/(default)/documents/[COLLECTION]?name_field=name

 

storage.docdb.mongo-server-url

docdb 스토리지(MONGO_SERVER_URL)에 사용할 Mongo 서버 URL의 값입니다. 이 URL에는 인증 정보가 포함될 수 있습니다. 프로덕션 환경의 경우 인증 정보를 일반 텍스트 구성으로 제공하는 것이 안전하지 않을 수 있습니다. 프로덕션 환경에 대체 storage.docdb.mongo-server-url-dir 구성 설정을 사용합니다.

  

storage.docdb.mongo-server-url-dir

MONGO_SERVER_URL 이라는 파일이 있는 디렉터리입니다. 이 파일에는 docdb 스토리지(MONGO_SERVER_URL)에 사용할 Mongo 서버 URL이 포함되어 있습니다. 이 파일을 시크릿으로 제공하고 Mongo 서버 URL 시크릿 생성 및 마운트에 설명된 대로 Tekton 체인 컨트롤러에 대해 이 파일 마운트를 구성합니다.

예제 값: /tmp/mongo-url

 

아티팩트에 대해 grafeas 스토리지 방법을 활성화하면 Grafeas 스토리지 옵션을 구성합니다. Grafeas 노트 및 발생에 대한 자세한 내용은 Grafeas 개념을 참조하십시오.

발생을 생성하기 위해 Red Hat OpenShift Pipelines는 먼저 발생을 연결하는 데 사용되는 노트를 생성해야 합니다. Red Hat OpenShift Pipelines는 두 가지 유형인 ATTESTATION Occurrence 및 BUILD Occurrence를 생성합니다.

Red Hat OpenShift Pipelines는 구성 가능한 noteid 를 노트 이름의 접두사로 사용합니다. ATTESTATION 노트에 대한 접미사 -simplesigningBUILD note의 접미사 -intoto 를 추가합니다. noteid 필드가 구성되지 않은 경우 Red Hat OpenShift Pipelines는 tekton-<NAMESPACE >를 접두사로 사용합니다.

표 1.7. 체인 구성: Grafeas 스토리지에 지원되는 매개변수
매개변수설명지원되는 값기본값

storage.grafeas.projectid

발생을 저장하기 위한 Grafeas 서버가 있는 OpenShift Container Platform 프로젝트입니다.

  

storage.grafeas.noteid

선택 사항: 생성된 모든 노트의 이름에 사용할 접두사입니다.

공백이 없는 문자열입니다.

 

storage.grafeas.notehint

선택 사항: Grafeas ATTESTATION 참고 사항의 human_readable_name 필드입니다.

 

이 인증 노트는 Tekton 체인에 의해 생성되었습니다.

선택적으로 바이너리 투명성 증명의 추가 업로드를 활성화할 수 있습니다.

표 1.8. 체인 구성: 투명성 강화 스토리지를 위한 지원되는 매개변수
매개변수설명지원되는 값기본값

transparency.enabled

자동 바이너리 투명도 업로드를 활성화하거나 비활성화합니다.

true,false,manual

false

transparency.url

활성화된 경우 바이너리 투명도를 업로드하기 위한 URL입니다.

 

https://rekor.sigstore.dev

참고

transparency.enabled수동 으로 설정하면 다음 주석이 있는 작업 실행 및 파이프라인 실행만 투명 로그에 업로드됩니다.

chains.tekton.dev/transparency-upload: "true"

x509 서명 백엔드를 구성하는 경우 Fulcio를 사용하여 키 없이 서명을 선택적으로 활성화할 수 있습니다.

표 1.9. 체인 구성: Fulcio를 사용한 x509 키 없이 서명에 대해 지원되는 매개변수
매개변수설명지원되는 값기본값

signers.x509.fulcio.enabled

Fulcio에서 자동 인증서 요청 요청을 활성화하거나 비활성화합니다.

true,false

false

signers.x509.fulcio.address

활성화된 경우 인증서를 요청하는 Fulcio 주소입니다.

 

https://v1.fulcio.sigstore.dev

signers.x509.fulcio.issuer

예상되는 OIDC 발행자

 

https://oauth2.sigstore.dev/auth

signers.x509.fulcio.provider

ID 토큰을 요청할 공급자입니다.

Google,spiffe,github,파일 시스템

Red Hat OpenShift Pipelines는 모든 공급자를 사용하려고 합니다.

signers.x509.identity.token.file

ID 토큰이 포함된 파일의 경로입니다.

  

signers.x509.tuf.mirror.url

TUF 서버의 URL입니다. $TUF_URL/root.json 이 있어야 합니다.

 

https://sigstore-tuf-root.storage.googleapis.com

kms 서명 백엔드를 구성하는 경우 필요에 따라 OIDC 및 Spire를 포함한 KMS 구성을 설정합니다.

표 1.10. 체인 구성: KMS 서명에 지원되는 매개변수
매개변수설명지원되는 값기본값

signers.kms.auth.address

KMS 서버의 URI( VAULT_ADDR값 ).

  

signers.kms.auth.token

KMS 서버의 인증 토큰( VAULT_TOKEN값 ). 토큰을 일반 텍스트 구성으로 제공하는 것은 안전하지 않을 수 있습니다. 프로덕션 환경에 대체 서명자.kms.auth.token-path 구성 설정을 사용합니다.

  

signers.kms.auth.token-path

KMS 서버의 인증 토큰( VAULT_TOKEN값)이 포함된 파일의 전체 경로 이름입니다. 이 파일을 시크릿으로 제공하고 KMS 인증 토큰 시크릿 생성 및 마운트에 설명된 대로 Tekton 체인 컨트롤러에 대해 이 파일 마운트를 구성합니다.

예제 값: /etc/kms-secrets/KMS_AUTH_TOKEN

 

signers.kms.auth.oidc.path

OIDC 인증 경로(예: Vault의 경우 jwt )입니다.

  

signers.kms.auth.oidc.role

OIDC 인증의 역할입니다.

  

signers.kms.auth.spire.sock

KMS 토큰에 대한 Spire 소켓의 URI입니다(예: unix:///tmp/spire-agent/public/api.sock).

  

signers.kms.auth.spire.audience

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 클러스터에 로그인되어 있습니다.

프로세스

  1. 다음 명령을 입력하여 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 파일의 전체 경로 및 이름입니다.
  2. 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 클러스터에 로그인되어 있습니다.

프로세스

  1. 다음 명령을 입력하여 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 대신 다른 파일 이름을 사용할 수 있습니다.
  2. 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= 인수를 추가하여 컨트롤러가 모니터링해야 하는 네임스페이스를 포함합니다.

    다음 예제에서는 devtest 네임스페이스 내의 리소스만 모니터링하여 PipelineRunTaskRun 오브젝트를 필터링하도록 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 인수가 제공되지 않거나 비어 있는 경우 컨트롤러는 기본적으로 모든 네임스페이스를 감시합니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.