5.3. 코드 확인자 주석로서의 파이프라인
Pipeline을 코드 확인자 주석으로 사용하여 Task
및 Pipeline
CR(사용자 정의 리소스) 정의를 참조할 수 있습니다. Code resolver로서 Pipeline은 주석에 지정한 위치에서 정의를 가져옵니다. 원격 작업을 가져오거나 구문 분석하는 동안 오류가 있는 경우 코드로 파이프라인은 작업 처리를 중지합니다.
파이프라인 실행 또는 PipelineRun
또는 PipelineSpec
오브젝트의 파이프라인에서 원격 작업을 참조하는 경우 Code resolver인 Pipeline은 참조된 리소스를 자동으로 확인하고 결과 PipelineRun
사용자 정의 리소스(CR)에 포함합니다.
5.3.1. 원격 작업 주석
원격 작업을 포함하려면 다음 주석 예제를 참조하십시오.
Tekton Hub에서 원격 작업 참조
Tekton Hub에서 단일 원격 작업을 참조합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ... pipelinesascode.tekton.dev/task: "git-clone" ...
... pipelinesascode.tekton.dev/task: "git-clone"
1 ...
- 1
- Code로서의 파이프라인에는 Tekton Hub의 최신 작업 버전이 포함됩니다.
Tekton Hub에서 여러 원격 작업 참조
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ... pipelinesascode.tekton.dev/task: "[git-clone, golang-test, tkn]" ...
... pipelinesascode.tekton.dev/task: "[git-clone, golang-test, tkn]" ...
-<NUMBER
> 접미사를 사용하여 Tekton Hub에서 여러 원격 작업을 참조합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow ... pipelinesascode.tekton.dev/task: "git-clone" pipelinesascode.tekton.dev/task-1: "golang-test" pipelinesascode.tekton.dev/task-2: "tkn" ...
... pipelinesascode.tekton.dev/task: "git-clone" pipelinesascode.tekton.dev/task-1: "golang-test" pipelinesascode.tekton.dev/task-2: "tkn"
1 ...
- 1
- 기본적으로 Code로 Pipeline은 문자열을 Tekton Hub에서 가져올 최신 작업으로 해석합니다.
Tekton Hub에서 특정 버전의 원격 작업을 참조합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ... pipelinesascode.tekton.dev/task: "[git-clone:0.1]" ...
... pipelinesascode.tekton.dev/task: "[git-clone:0.1]"
1 ...
- 1
- Tekton Hub에서
git-clone
원격 작업의0.1
버전을 나타냅니다.
URL을 사용하는 원격 작업
... pipelinesascode.tekton.dev/task: "<https://remote.url/task.yaml>" ...
...
pipelinesascode.tekton.dev/task: "<https://remote.url/task.yaml>"
...
- 1
- 원격 작업의 공용 URL입니다.참고
GitHub를 사용하고 원격 작업 URL이
Repository
CRD(사용자 정의 리소스 정의)와 동일한 호스트를 사용하는 경우 Code와 Pipeline은 GitHub 토큰을 사용하고 GitHub API를 사용하여 URL을 가져옵니다.예를 들어
https://github.com/<organization>/<repository>와 유사한 리포지토리 URL이 있고 원격 HTTP URL이
을 참조하는 경우 코드로서의 Pipeline은 GitHub 앱 토큰을 사용하여 해당 프라이빗 리포지토리에서 해당 개인 리포지터리에서 작업 정의 파일을 가져옵니다.https://github.com/<organization>/<repository>/
blob/<mainbranch>/<path>/<file>과 유사한 GitHub Blob공용 GitHub 리포지토리에서 작업하는 경우 Code로서의 Pipeline은
https://raw.githubusercontent.com/<organization>/<repository>/<mainbranch>/<path>/<file
>과 같은 GitHub 원시 URL에서 유사하게 작동합니다.- GitHub 앱 토큰의 범위는 리포지토리가 있는 소유자 또는 조직에 따라 지정됩니다. GitHub Webhook 방법을 사용하는 경우 개인 토큰이 허용되는 모든 조직에서 개인 또는 공용 리포지토리를 가져올 수 있습니다.
리포지토리 내부의 YAML 파일에서 작업 참조
... pipelinesascode.tekton.dev/task: "<share/tasks/git-clone.yaml>" ...
...
pipelinesascode.tekton.dev/task: "<share/tasks/git-clone.yaml>"
...
- 1
- 작업 정의가 포함된 로컬 파일의 상대 경로입니다.
5.3.2. 원격 파이프라인 주석
원격 파이프라인 주석을 사용하여 여러 리포지토리에서 파이프라인 정의를 공유할 수 있습니다.
... pipelinesascode.tekton.dev/pipeline: "<https://git.provider/raw/pipeline.yaml>" ...
...
pipelinesascode.tekton.dev/pipeline: "<https://git.provider/raw/pipeline.yaml>"
...
- 1
- 원격 파이프라인 정의에 대한 URL입니다. 동일한 리포지토리 내에 파일의 위치를 제공할 수도 있습니다.
주석을 사용하여 하나의 파이프라인 정의만 참조할 수 있습니다.
5.3.2.1. 원격 파이프라인의 작업 덮어쓰기
기본적으로 파이프라인 실행에서 원격 파이프라인 주석을 사용하면 코드로서 Pipeline은 원격 파이프라인의 일부인 모든 작업을 사용합니다.
파이프라인 실행에 작업 주석을 추가하여 원격 파이프라인의 작업을 덮어쓸 수 있습니다. 추가된 작업에는 원격 파이프라인의 작업과 동일한 이름이 있어야 합니다.
예를 들어 다음 파이프라인 실행 정의를 사용할 수 있습니다.
원격 파이프라인을 참조하는 파이프라인 실행 정의의 예 및 작업 덮어쓰기
apiVersion: tekton.dev/v1 kind: PipelineRun metadata: annotations: pipelinesascode.tekton.dev/pipeline: "https://git.provider/raw/pipeline.yaml" pipelinesascode.tekton.dev/task: "./my-git-clone-task.yaml"
apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
annotations:
pipelinesascode.tekton.dev/pipeline: "https://git.provider/raw/pipeline.yaml"
pipelinesascode.tekton.dev/task: "./my-git-clone-task.yaml"
이 예제에서는 https://git.provider/raw/pipeline.yaml
에 있는 원격 작업에 git-clone이라는 작업과 my-
라고도 하는 작업이 포함되어 있다고 가정합니다.
git-clone
-task.yaml 파일의 이름이 git-clone
이 경우 파이프라인 실행이 원격 파이프라인을 실행하지만 파이프라인의 git-clone
작업을 정의한 작업으로 교체합니다.