3장. 해결자를 사용하여 원격 파이프라인 및 작업 지정
파이프라인 및 작업은 CI/CD 프로세스에 재사용 가능한 블록입니다. 이전에 개발했거나 다른 사용자가 개발한 파이프라인 또는 작업을 재사용하여 정의를 복사하여 붙여넣을 필요 없이 재사용할 수 있습니다. 이러한 파이프라인 또는 작업은 클러스터의 다른 네임스페이스에서 공용 카탈로그에 이르기까지 여러 유형의 소스에서 사용할 수 있습니다.
파이프라인 실행 리소스에서 기존 소스의 파이프라인을 지정할 수 있습니다. 파이프라인 리소스 또는 작업 실행 리소스에서 기존 소스의 작업을 지정할 수 있습니다.
이러한 경우 Red Hat OpenShift Pipelines 의 해결자는 런타임 시 지정된 소스에서 파이프라인 또는 작업 정의를 검색합니다.
다음 해결자는 Red Hat OpenShift Pipelines의 기본 설치 프로그램에서 사용할 수 있습니다.
- hub resolver
- Artifact Hub 또는 Tekton Hub에서 사용할 수 있는 Pipelines Catalog에서 작업 또는 파이프라인을 검색합니다.
- bundles resolver
- OpenShift 컨테이너 리포지토리와 같은 OCI 리포지토리에서 사용할 수 있는 OCI 이미지인 Tekton 번들에서 작업 또는 파이프라인을 검색합니다.
- 클러스터 확인자
- 특정 네임스페이스의 동일한 OpenShift Container Platform 클러스터에서 이미 생성된 작업 또는 파이프라인을 검색합니다.
- git resolver
- Git 리포지토리에서 작업 또는 파이프라인 바인딩을 검색합니다. 리포지토리, 분기 및 경로를 지정해야 합니다.
OpenShift Pipelines 설치에는 파이프라인에서 사용할 수 있는 표준 작업 세트가 포함되어 있습니다. 이러한 작업은 일반적으로 openshift-pipelines
네임스페이스인 OpenShift Pipelines 설치 네임스페이스에 있습니다. 클러스터 확인자를 사용하여 작업에 액세스할 수 있습니다.
3.1. Tekton 카탈로그에서 원격 파이프라인 또는 작업 지정
hub resolver를 사용하여 Artifact Hub 의 공용 Tekton 카탈로그 또는 Tekton Hub 인스턴스에 정의된 원격 파이프라인 또는 작업을 지정할 수 있습니다.
Artifact Hub 프로젝트는 Red Hat OpenShift Pipelines에서 지원되지 않습니다. Artifact Hub의 구성만 지원됩니다.
3.1.1. hub resolver 구성
hub resolver를 구성하여 리소스 가져오기에 대한 기본 허브와 기본 카탈로그 설정을 변경할 수 있습니다.
프로세스
TektonConfig
사용자 지정 리소스를 편집하려면 다음 명령을 입력합니다.$ oc edit TektonConfig config
TektonConfig
사용자 정의 리소스에서pipeline.hub-resolver-config
사양을 편집합니다.apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: pipeline: hub-resolver-config: default-tekton-hub-catalog: Tekton 1 default-artifact-hub-task-catalog: tekton-catalog-tasks 2 default-artifact-hub-pipeline-catalog: tekton-catalog-pipelines 3 defailt-kind: pipeline 4 default-type: tekton 5 tekton-hub-api: "https://my-custom-tekton-hub.example.com" 6 artifact-hub-api: "https://my-custom-artifact-hub.example.com" 7
- 1
- 리소스를 가져오는 기본 Tekton Hub 카탈로그입니다.
- 2
- 작업 리소스를 가져오는 기본 Artifact Hub 카탈로그입니다.
- 3
- 파이프라인 리소스를 가져오는 기본 Artifact Hub 카탈로그입니다.
- 4
- 참조의 기본 오브젝트 종류입니다.
- 5
- Artifact Hub의
아티팩트
또는 Tekton Hub의 경우tekton
중 하나로 리소스를 가져오는 기본 허브입니다. - 6
default-type
옵션이tekton
로 설정된 경우 사용되는 Tekton Hub API입니다.- 7
- 선택 사항:
default-type
옵션이artifact
로 설정된 경우 사용되는 Artifact Hub API입니다.
중요default-type
옵션을 tekton 로 설정하는 경우tekton
-hub-apidefault-type
옵션을artifact
로 설정하면 확인자는 기본적으로 https://artifacthub.io/ 에서 공용 허브 API를 사용합니다.artifact-hub-api
값을 설정하여 고유한 Artifact Hub API를 구성할 수 있습니다.
3.1.2. hub resolver를 사용하여 원격 파이프라인 또는 작업 지정
파이프라인 실행을 생성할 때 Artifact Hub 또는 Tekton Hub에서 원격 파이프라인을 지정할 수 있습니다. 파이프라인 또는 작업 실행을 생성할 때 Artifact Hub 또는 Tekton Hub에서 원격 작업을 지정할 수 있습니다.
프로세스
Artifact Hub 또는 Tekton Hub에서 원격 파이프라인 또는 작업을 지정하려면
pipelineRef
또는taskRef
사양에 다음 참조 형식을 사용합니다.# ... resolver: hub params: - name: catalog value: <catalog> - name: type value: <catalog_type> - name: kind value: [pipeline|task] - name: name value: <resource_name> - name: version value: <resource_version> # ...
표 3.1. hub resolver에 대해 지원되는 매개변수 매개변수 설명 예시 값 catalog
리소스를 가져올 카탈로그입니다.
기본값:
tekton-catalog-tasks
(작업
종류용),tekton-catalog-
(파이너 종류용).pipeline
stype
리소스를 가져오는 카탈로그 유형입니다. Artifact Hub의
아티팩트
또는 Tekton Hub의tekton
중 하나입니다.기본값:
artifact
kind
작업
또는파이프라인 중 하나입니다
.기본값:
task
name
허브에서 가져올 작업 또는 파이프라인의 이름입니다.
golang-build
version
허브에서 가져올 작업 또는 파이프라인 버전입니다. 숫자 주위에 따옴표(
'
)를 사용해야 합니다."0.5.0"
파이프라인 또는 작업에 추가 매개변수가 필요한 경우 파이프라인, 파이프라인 실행 또는 작업 실행 사양의
params
섹션에 이러한 매개변수 값을 지정합니다.pipelineRef
또는taskRef
사양의params
섹션에는 해결자가 지원하는 매개변수만 포함되어야 합니다.
다음 예제 파이프라인 실행은 카탈로그의 원격 파이프라인을 참조합니다.
apiVersion: tekton.dev/v1 kind: PipelineRun metadata: name: hub-pipeline-reference-demo spec: pipelineRef: resolver: hub params: - name: catalog value: tekton-catalog-pipelines - name: type value: artifact - name: kind value: pipeline - name: name value: example-pipeline - name: version value: "0.1" params: - name: sample-pipeline-parameter value: test
카탈로그의 원격 작업을 참조하는 다음 예제 파이프라인입니다.
apiVersion: tekton.dev/v1 kind: Pipeline metadata: name: pipeline-with-cluster-task-reference-demo spec: tasks: - name: "cluster-task-reference-demo" taskRef: resolver: hub params: - name: catalog value: tekton-catalog-tasks - name: type value: artifact - name: kind value: task - name: name value: example-task - name: version value: "0.6" params: - name: sample-task-parameter value: test
카탈로그의 원격 작업을 참조하는 다음 예제 작업 실행
apiVersion: tekton.dev/v1 kind: TaskRun metadata: name: cluster-task-reference-demo spec: taskRef: resolver: hub params: - name: catalog value: tekton-catalog-tasks - name: type value: artifact - name: kind value: task - name: name value: example-task - name: version value: "0.6" params: - name: sample-task-parameter value: test