3.4. 인증된 Git API를 사용하여 원격 파이프라인, 작업 또는 단계 작업 지정


Git 확인자를 사용하여 Git 리포지토리에서 원격 파이프라인, 작업 또는 StepAction 정의를 지정할 수 있습니다. 리포지토리에는 파이프라인 또는 작업을 정의하는 YAML 파일이 포함되어야 합니다. 사용자 인증을 지원하는 인증된 API를 사용하여 리포지토리에 안전하게 액세스할 수 있습니다.

3.4.1. 인증된 API에 대한 Git 확인 프로그램 구성

인증된 SCM(소스 제어 관리) API의 경우 인증된 Git 연결에 대한 구성을 설정해야 합니다.

go-scm 라이브러리에서 지원하는 Git 리포지토리 공급자를 사용할 수 있습니다. 모든 go-scm 구현이 Git 리졸버에서 테스트된 것은 아니지만 다음 공급자가 작동하는 것으로 알려져 있습니다.

  • GitHub.com 및 GitHub Enterprise
  • GitLab.com 및 자체 호스팅 Gitlab
  • Gitea
  • Bitbucket 서버
  • Bitbucket 클라우드
참고
  • 인증된 SCM API를 사용하여 Git 연결을 구성할 수 있습니다. 클러스터의 모든 사용자가 하나의 리포지토리에 액세스할 수 있도록 하는 보안 토큰을 제공할 수 있습니다. 또한 특정 파이프라인 또는 작업에 대해 다양한 SCM 공급자 및 토큰을 지정할 수 있습니다.
  • 인증된 SCM API를 사용하도록 Git 확인자를 구성하는 경우 익명 Git 복제 참조를 사용하여 파이프라인 및 작업을 검색할 수도 있습니다.

프로세스

  1. TektonConfig 사용자 지정 리소스를 편집하려면 다음 명령을 입력합니다.

    $ oc edit TektonConfig config
  2. TektonConfig 사용자 정의 리소스에서 pipeline.git-resolver-config 사양을 편집합니다.

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      pipeline:
        git-resolver-config:
          default-revision: main 1
          fetch-timeout: 1m 2
          scm-type: github 3
          server-url: api.internal-github.com 4
          api-token-secret-name: github-auth-secret 5
          api-token-secret-key: github-auth-key 6
          api-token-secret-namespace: github-auth-namespace 7
          default-org: tektoncd 8
    1
    지정되지 않은 경우 사용할 기본 Git 버전입니다.
    2
    단일 Git 복제 확인에 최대 시간이 걸릴 수 있습니다(예: 1m,2s,700ms ). Red Hat OpenShift Pipelines는 모든 해결 요청에 대해 글로벌 최대 시간 초과를 1분으로 적용합니다.
    3
    SCM 공급자 유형입니다.
    4
    인증된 SCM API와 함께 사용할 기본 URL입니다. github.com,gitlab.com 또는 BitBucket Cloud를 사용하는 경우에는 이 설정이 필요하지 않습니다.
    5
    SCM 공급자 API 토큰이 포함된 시크릿의 이름입니다.
    6
    토큰이 포함된 토큰 시크릿 내의 키입니다.
    7
    토큰 시크릿이 포함된 네임스페이스가 기본값이 아닌 경우입니다.
    8
    선택 사항: 인증된 API를 사용하는 경우 리포지토리의 기본 조직입니다. 이 조직은 확인자 매개변수에 조직을 지정하지 않는 경우 사용됩니다.
참고

인증된 SCM API를 사용하려면 scm-type,api-token-secret-name, api-token-secret-key 설정이 필요합니다.

3.4.2. 여러 Git 공급자 구성

여러 Git 공급자를 구성하거나 동일한 Git 공급자에 대한 여러 구성을 추가하여 다른 작업 실행 및 파이프라인 실행에 사용할 수 있습니다.

고유 ID 키 접두사를 사용하여 TektonConfig CR(사용자 정의 리소스)에 세부 정보를 추가합니다.

프로세스

  1. 다음 명령을 실행하여 TektonConfig CR을 편집합니다.

    $ oc edit TektonConfig config
  2. TektonConfig CR에서 pipeline.git-resolver-config 사양을 편집합니다.

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
    # ...
      pipeline:
        git-resolver-config:
          # configuration 1 1
          fetch-timeout: "1m"
          default-url: "https://github.com/tektoncd/catalog.git"
          default-revision: "main"
          scm-type: "github"
          server-url: ""
          api-token-secret-name: ""
          api-token-secret-key: ""
          api-token-secret-namespace: "default"
          default-org: ""
          # configuration 2 2
          test1.fetch-timeout: "5m"
          test1.default-url: ""
          test1.default-revision: "stable"
          test1.scm-type: "github"
          test1.server-url: "api.internal-github.com"
          test1.api-token-secret-name: "test1-secret"
          test1.api-token-secret-key: "token"
          test1.api-token-secret-namespace: "test1"
          test1.default-org: "tektoncd"
          # configuration 3 3
          test2.fetch-timeout: "10m"
          test2.default-url: ""
          test2.default-revision: "stable"
          test2.scm-type: "gitlab"
          test2.server-url: "api.internal-gitlab.com"
          test2.api-token-secret-name: "test2-secret"
          test2.api-token-secret-key: "pat"
          test2.api-token-secret-namespace: "test2"
          test2.default-org: "tektoncd-infra"
    # ...
    1
    configKey 키가 제공되지 않거나 키가 기본값인 경우 사용할 기본 구성이 제공됩니다.
    2
    configKey 키가 test1 값과 함께 전달되는 경우 사용되는 구성입니다.
    3
    configKey 키가 test2 값과 함께 전달되는 경우 사용되는 구성입니다.
    주의

    . 기호가 있는 configKey 값은 지원되지 않습니다. . 기호가 포함된 configKey 값을 전달하려고 하면 값을 통과한 TaskRun 또는 PipelineRun 리소스가 실행되지 않습니다.

3.4.3. 인증된 SCM API와 Git 확인자를 사용하여 원격 파이프라인, 작업 또는 단계 작업 지정

파이프라인 실행을 생성할 때 인증된 SCM API를 사용하여 Git 리포지토리에서 원격 파이프라인을 지정할 수 있습니다. 파이프라인 또는 작업 실행을 생성할 때 Git 리포지토리에서 원격 작업을 지정할 수 있습니다. 작업 내에서 단계를 생성할 때 Git 리포지토리에서 원격 StepAction 정의를 참조할 수 있습니다.

사전 요구 사항

  • 인증된 SCM API를 사용하려면 Git 확인자에 대해 인증된 Git 연결을 구성해야 합니다.

프로세스

  • Git 리포지토리의 원격 파이프라인, 작업 또는 StepAction 정의를 지정하려면 pipelineRef,taskRef 또는 step.ref 사양에 다음 참조 형식을 사용합니다.

    # ...
      resolver: git
      params:
      - name: org
        value: <git_organization_name>
      - name: repo
        value: <git_repository_name>
      - name: revision
        value: <branch_name>
      - name: pathInRepo
        value: <path_in_repository>
    # ...
    표 3.4. Git 확인자에 지원되는 매개변수
    매개변수설명예시 값

    조직

    인증된 SCM API를 사용하는 경우 리포지토리의 조직입니다.

    tektoncd

    리포지토리

    인증된 SCM API를 사용하는 경우 리포지토리 이름입니다.

    test-infra

    버전

    리포지토리의 Git 버전입니다. 분기 이름, 태그 이름 또는 커밋 SHA 해시를 지정할 수 있습니다.

    aeb957601cf41c012be462827053a21a420befca
    main
    v0.38.2

    pathInRepo

    리포지토리에 있는 YAML 파일의 경로 이름입니다.

    task/golang-build/0.3/golang-build.yaml

    참고

    리포지토리를 복제 및 가져오려면 url 매개변수를 사용합니다. 인증된 SCM API를 사용하려면 repo 매개변수를 사용합니다. url 매개변수와 repo 매개변수를 함께 지정하지 마십시오.

    파이프라인 또는 작업에 추가 매개변수가 필요한 경우 파이프라인, 파이프라인 실행 또는 작업 실행 사양의 params 섹션에 이러한 매개변수 값을 지정합니다. pipelineRef 또는 taskRef 사양의 params 섹션에는 해결자가 지원하는 매개변수만 포함되어야 합니다.

다음 예제 파이프라인 실행은 Git 리포지토리의 원격 파이프라인을 참조합니다.

apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
  name: git-pipeline-reference-demo
spec:
  pipelineRef:
    resolver: git
    params:
    - name: org
      value: tektoncd
    - name: repo
      value: catalog
    - name: revision
      value: main
    - name: pathInRepo
      value: pipeline/simple/0.1/simple.yaml
  params:
  - name: name
    value: "testPipelineRun"
  - name: sample-pipeline-parameter
    value: test

다음 예제 파이프라인은 Git 리포지토리의 원격 작업을 참조합니다.

apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: pipeline-with-git-task-reference-demo
spec:
  tasks:
  - name: "git-task-reference-demo"
    taskRef:
      resolver: git
      params:
      - name: org
        value: tektoncd
      - name: repo
        value: catalog
      - name: revision
        value: main
      - name: pathInRepo
        value: task/git-clone/0.6/git-clone.yaml
    params:
    - name: sample-task-parameter
      value: test

다음 예제 작업 실행에서는 Git 리포지토리의 원격 작업을 참조합니다.

apiVersion: tekton.dev/v1
kind: TaskRun
metadata:
  name: git-task-reference-demo
spec:
  taskRef:
    resolver: git
    params:
    - name: org
      value: tektoncd
    - name: repo
      value: catalog
    - name: revision
      value: main
    - name: pathInRepo
      value: task/git-clone/0.6/git-clone.yaml
  params:
  - name: sample-task-parameter
    value: test

다음 예제 작업에는 Git 리포지토리의 StepAction 정의를 참조하는 단계가 포함되어 있습니다.

apiVersion: tekton.dev/v1
kind: Task
metadata:
  name: git-stepaction-reference-demo
spec:
  steps:
  - name: example-step
    ref:
      resolver: git
      - name: org
        value: openshift-pipelines
      - name: repo
        value: tektoncd-catalog
      - name: revision
        value: p
      - name: pathInRepo
        value: stepactions/stepaction-git-clone/0.4.1/stepaction-git-clone.yaml
    params:
    - name: sample-stepaction-parameter
      value: test

3.4.4. 여러 Git 공급자 지정

TaskRunPipelineRun 리소스를 생성할 때 고유한 configKey 매개변수를 전달하여 여러 Git 공급자를 지정할 수 있습니다.

configKey 매개변수가 전달되지 않으면 기본 구성이 사용됩니다. configKey 값을 기본값으로 설정하여 기본 구성을 지정할 수도 있습니다.

주의

. 기호가 있는 configKey 값은 지원되지 않습니다. . 기호가 포함된 configKey 값을 전달하려고 하면 값을 통과한 TaskRun 또는 PipelineRun 리소스가 실행되지 않습니다.

사전 요구 사항

  • Tektonconfig 사용자 정의 리소스를 통해 여러 Git 공급자를 구성합니다. 자세한 내용은 "여러 Git 공급자 구성"을 참조하십시오.

프로세스

  • Git 공급자를 지정하려면 pipelineReftaskRef 사양에 다음 참조 형식을 사용합니다.

    # ...
      resolver: git
      params:
      # ...
      - name: configKey
        value: <your_unique_key> 1
    # ...
    1
    구성 키 중 하나와 일치하는 고유 키(예: test1 )

3.4.5. Git 확인자 구성을 재정의하는 인증된 SCM API와 함께 Git 확인자를 사용하여 원격 파이프라인 또는 작업 지정

특정 파이프라인 실행 또는 작업에서 초기 구성 설정을 재정의하여 다양한 사용 사례에 따라 동작을 사용자 지정할 수 있습니다. 이 방법을 사용하여 TektonConfig CR(사용자 정의 리소스)에 구성되지 않은 인증된 공급자에 액세스할 수 있습니다.

다음 예제 작업 실행에서는 이전 확인자 구성을 재정의하는 Git 리포지토리의 원격 작업을 참조합니다.

apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
  name: git-task-reference-demo
spec:
  taskRef:
    resolver: git
    params:
    - name: org
      value: tektoncd
    - name: repo
      value: catalog
    - name: revision
      value: main
    - name: pathInRepo
      value: task/git-clone/0.6/git-clone.yaml
    - name: token
      value: my-secret-token
    - name: tokenKey
      value: token
    - name: scmType
      value: github
    - name: serverURL
      value: https://ghe.mycompany.com
표 3.5. Git 확인자를 덮어쓰는 데 지원되는 매개변수
매개변수설명예시 값

조직

리포지토리의 조직입니다.

tektoncd

리포지토리

리포지토리 이름입니다.

catalog

버전

리포지토리의 Git 버전입니다. 분기 이름, 태그 이름 또는 커밋 SHA 해시를 지정할 수 있습니다.

main

pathInRepo

리포지토리에 있는 YAML 파일의 경로 이름입니다.

task/git-clone/0.6/git-clone.yaml

token

인증에 사용되는 시크릿 이름입니다.

my-secret-token

tokenKey

토큰의 키 이름입니다.

token

scmType

SCM(소스 제어 관리) 시스템의 유형입니다.

github

serverURL

리포지토리를 호스팅하는 서버의 URL입니다.

https://ghe.mycompany.com

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.