4.5. 사용자 정의 매개변수 확장
Pipeline을 코드로 사용하여 params
필드를 사용하여 PipelineRun
리소스 내에서 사용자 정의 매개변수를 확장할 수 있습니다. Repository
CR(사용자 정의 리소스) 템플릿 내에 사용자 정의 매개변수 값을 지정할 수 있습니다. 지정된 값은 파이프라인 실행의 사용자 정의 매개변수를 대체합니다.
다음 시나리오에서는 사용자 지정 매개변수를 사용할 수 있습니다.
- 푸시 또는 가져오기 요청에 따라 다른 레지스트리 URL과 같은 URL 매개변수를 정의하려면 다음을 수행합니다.
-
관리자가 Git 리포지토리에서
PipelineRun
실행을 변경하지 않고도 관리할 수 있는 계정 UUID와 같은 매개변수를 정의하려면 다음을 수행합니다.
Tekton 매개변수가 Pipeline
리소스에 정의되어 Git 리포지토리 내에서 함께 사용자 정의되므로 Tekton PipelineRun
매개변수를 사용할 수 없는 경우에만 사용자 정의 매개변수 확장 기능을 사용합니다. 그러나 사용자 지정 매개변수는 Repository
CR이 있는 경우 정의 및 사용자 지정됩니다. 따라서 CI/CD 파이프라인을 단일 지점에서 관리할 수 없습니다.
다음 예제에서는 Repository
CR에서 company
라는 사용자 정의 매개변수를 보여줍니다.
... spec: params: - name: company value: "ABC Company" ...
value Cryo stat Company
는 파이프라인 실행 및 원격으로 가져온 작업에서 매개 변수 이름 회사로
대체됩니다.
다음 예와 같이 Kubernetes 시크릿에서 사용자 정의 매개변수 값을 검색할 수도 있습니다.
... spec: params: - name: company secretRef: name: my-secret key: companyname ...
코드화로 파이프라인은 다음과 같은 방식으로 사용자 지정 매개변수를 구문 분석하고 사용합니다.
-
값
과secretRef
가 정의된 경우 코드로 Pipeline은값을
사용합니다. -
params
섹션에이름이
없는 경우 Code로 Pipeline이 매개변수를 구문 분석하지 않습니다. -
이름이
붙은매개변수가
여러 개 있는 경우 Code와 Pipelines는 마지막 매개변수를 사용합니다.
사용자 지정 매개변수를 정의하고 지정된 조건이 CEL 필터에 일치하는 경우에만 확장을 사용할 수 있습니다. 다음 예제에서는 pull request 이벤트가 트리거될 때 company
라는 사용자 지정 매개변수에 적용 가능한 CEL 필터를 보여줍니다.
... spec: params: - name: company value: "ABC Company" filter: - name: event value: | pac.event_type == "pull_request" ...
이름과 다른 필터가 여러 개 있는 경우 Code와 Pipeline은 필터와 일치하는 첫 번째 매개변수를 사용합니다. 따라서 Pipeline as Code를 사용하면 다양한 이벤트 유형에 따라 매개변수를 확장할 수 있습니다. 예를 들어 push 및 pull request 이벤트를 결합할 수 있습니다.