3장. 해결자를 사용하여 원격 파이프라인, 작업 및 단계 작업 지정
파이프라인 및 작업은 CI/CD 프로세스에 재사용 가능한 블록입니다. 이전에 개발했거나 다른 사용자가 개발한 파이프라인 또는 작업을 재사용하여 정의를 복사하여 붙여넣을 필요 없이 재사용할 수 있습니다. 이러한 파이프라인 또는 작업은 클러스터의 다른 네임스페이스에서 공용 카탈로그에 이르기까지 여러 유형의 소스에서 사용할 수 있습니다.
파이프라인 실행 리소스에서 기존 소스의 파이프라인을 지정할 수 있습니다. 파이프라인 리소스 또는 작업 실행 리소스에서 기존 소스의 작업을 지정할 수 있습니다.
StepAction
CR(사용자 정의 리소스)에 정의된 단계 작업은 작업 내의 단일 단계가 완료하는 재사용 가능한 작업입니다. 단계를 지정할 때 기존 소스의 StepAction
정의를 참조할 수 있습니다.
이러한 경우 Red Hat OpenShift Pipelines 의 해결자는 런타임 시 지정된 소스에서 파이프라인, 작업 또는 StepAction
정의를 검색합니다.
다음 해결자는 Red Hat OpenShift Pipelines의 기본 설치 프로그램에서 사용할 수 있습니다.
- hub resolver
-
Artifact Hub 또는 Tekton Hub에서 사용할 수 있는 Pipelines 카탈로그에서 작업, 파이프라인 또는
StepAction
정의를 검색합니다. - bundles resolver
-
OpenShift 컨테이너 리포지토리와 같은 OCI 리포지토리에서 사용할 수 있는 OCI 이미지인 Tekton 번들에서 작업, 파이프라인 또는
StepAction
정의를 검색합니다. - git resolver
-
Git 리포지토리에서 작업, 파이프라인 또는
StepAction
정의를 검색합니다. 리포지토리, 분기 및 경로를 지정해야 합니다. - HTTP 확인자
-
원격 HTTP 또는 HTTPS URL에서 작업, 파이프라인 또는
StepAction
정의를 검색합니다. 인증을 위해 URL을 지정해야 합니다. - 클러스터 확인자
-
특정 네임스페이스의 동일한 OpenShift Container Platform 클러스터에서 이미 생성된 작업, 파이프라인 또는
StepAction
정의를 검색합니다.
OpenShift Pipelines 설치에는 파이프라인에서 사용할 수 있는 표준 작업 세트가 포함되어 있습니다. 이러한 작업은 일반적으로 openshift-pipelines
네임스페이스인 OpenShift Pipelines 설치 네임스페이스에 있습니다. 클러스터 확인자를 사용하여 작업에 액세스할 수 있습니다.
OpenShift Pipelines는 표준 StepAction
정의도 제공합니다. 클러스터 확인자를 사용하여 이 정의에 액세스할 수 있습니다.
3.1. Tekton 카탈로그에서 원격 파이프라인, 작업 또는 단계 작업 지정
hub resolver를 사용하여 Artifact Hub 의 공용 Tekton 카탈로그 또는 Tekton Hub 인스턴스에 정의된 원격 파이프라인, 작업 또는 StepAction
정의를 지정할 수 있습니다.
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의 원격 StepAction
정의를 참조할 수 있습니다.
프로세스
Artifact Hub 또는 Tekton Hub의 원격 파이프라인, 작업 또는
StepAction
정의를 지정하려면pipelineRef
,taskRef
또는step.ref
사양에 다음 참조 형식을 사용합니다.# ... 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-hub-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: hub-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
다음 예제 작업에는 카탈로그의 StepAction
정의를 참조하는 단계가 포함되어 있습니다.
apiVersion: tekton.dev/v1 kind: Task metadata: name: hub-stepaction-reference-demo spec: steps: - name: example-step ref: - resolver: hub - params: - name: catalog value: tekton-catalog-stepactions - name: type value: artifact - name: kind value: StepAction - name: name value: example-stepaction - name: version value: "0.6" params: - name: sample-stepaction-parameter value: test