3.3. Git 리포지토리에서 원격 파이프라인 또는 작업 지정
Git 확인자를 사용하여 Git repostory에서 원격 파이프라인 또는 작업을 지정할 수 있습니다. 리포지토리에는 파이프라인 또는 작업을 정의하는 YAML 파일이 포함되어야 합니다. Git 확인자는 익명 복제 또는 인증된 SCM API를 사용하여 리포지토리에 액세스할 수 있습니다.
3.3.1. 익명 Git 복제에 대한 Git 확인자 구성
익명 Git 복제를 사용하려면 Git 리포지토리에서 원격 파이프라인 및 작업을 가져오기 위해 기본 Git 버전, 시간 초과 및 기본 리포지토리 URL을 구성할 수 있습니다.
프로세스
TektonConfig
사용자 지정 리소스를 편집하려면 다음 명령을 입력합니다.$ oc edit TektonConfig config
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 default-url: https://github.com/tektoncd/catalog.git 3
3.3.2. 인증된 SCM API에 대한 Git 확인 프로그램 구성
인증된 SCM API의 경우 인증된 Git 연결에 대한 구성을 설정해야 합니다.
go-scm
라이브러리에서 지원하는 Git 리포지토리 공급자를 사용할 수 있습니다. 모든 go-scm
구현이 Git 리졸버에서 테스트된 것은 아니지만 다음 공급자가 작동하는 것으로 알려져 있습니다.
-
GitHub.com
및 GitHub Enterprise -
GitLab.com
및 자체 호스팅 Gitlab - Gitea
- BitBucket Server
- Bitbucket 클라우드
- 클러스터에 대해 인증된 SCM API를 사용하여 하나의 Git 연결만 구성할 수 있습니다. 이 연결은 클러스터의 모든 사용자가 사용할 수 있게 됩니다. 클러스터의 모든 사용자는 연결에 대해 구성하는 보안 토큰을 사용하여 리포지토리에 액세스할 수 있습니다.
- 인증된 SCM API를 사용하도록 Git 확인자를 구성하는 경우 익명 Git 복제 참조를 사용하여 파이프라인 및 작업을 검색할 수도 있습니다.
프로세스
TektonConfig
사용자 지정 리소스를 편집하려면 다음 명령을 입력합니다.$ oc edit TektonConfig config
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.3.3. Git 확인자를 사용하여 원격 파이프라인 또는 작업 지정
파이프라인 실행을 생성할 때 Git 리포지토리에서 원격 파이프라인을 지정할 수 있습니다. 파이프라인 또는 작업 실행을 생성할 때 Git 리포지토리에서 원격 작업을 지정할 수 있습니다.
사전 요구 사항
- 인증된 SCM API를 사용하려면 Git 확인자에 대해 인증된 Git 연결을 구성해야 합니다.
프로세스
Git 리포지토리에서 원격 파이프라인 또는 작업을 지정하려면
pipelineRef
또는taskRef
사양에 다음 참조 형식을 사용합니다.# ... resolver: git params: - name: url value: <git_repository_url> - name: revision value: <branch_name> - name: pathInRepo value: <path_in_repository> # ...
표 3.3. Git 확인자에 지원되는 매개변수 매개변수 설명 예시 값 url
익명 복제를 사용하는 경우 리포지토리의 URL입니다.
https://github.com/tektoncd/catalog.git
repo
인증된 SCM API를 사용하는 경우 리포지토리 이름입니다.
test-infra
조직
인증된 SCM API를 사용하는 경우 리포지토리의 조직입니다.
tektoncd
버전
리포지토리의 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: url value: https://github.com/tektoncd/catalog.git - 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: url value: https://github.com/tektoncd/catalog.git - 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: url value: https://github.com/tektoncd/catalog.git - name: revision value: main - name: pathInRepo value: task/git-clone/0.6/git-clone.yaml params: - name: sample-task-parameter value: test