3.8. OpenShift Pipelines 네임스페이스에서 제공되는 커뮤니티 작업
기본적으로 OpenShift Pipelines 설치에는 파이프라인에서 사용할 수 있는 일련의 커뮤니티 작업이 포함되어 있습니다. 이러한 작업은 일반적으로 openshift-pipelines 네임스페이스인 OpenShift Pipelines 설치 네임스페이스에 있습니다.
argocd-task-sync-and-wait
argocd-task-sync-and-wait 커뮤니티 작업은 Argo CD 애플리케이션을 배포하고 정상이 될 때까지 기다립니다.
이를 위해서는 다음 구성이 필요합니다. * argocd-env-configmap 구성 맵에 구성된 Argo CD 서버의 주소입니다. * argocd-env-secret 시크릿에 구성된 인증 정보입니다.
주소 정보가 있는 구성 맵의 예
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-env-configmap
data:
ARGOCD_SERVER: https://argocd.example.com
# ...
인증 정보가 있는 시크릿의 예
apiVersion: v1
kind: Secret
metadata:
name: argocd-env-secret
data:
# Option 1
ARGOCD_USERNAME: example_username
ARGOCD_PASSWORD: example_password
# Option 2
ARGOCD_AUTH_TOKEN: exmaple_token
- 1
- 사용자 이름 및 암호 또는 인증 토큰을 구성합니다.
argocd-task-sync-and-wait 커뮤니티 작업 사용 예
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
name: argocd-task-sync-and-wait
spec:
tasks:
- name: argocd-task-sync-and-wait
params:
- name: application-name
value: example_app_name
- name: revision
value: HEAD
- name: flags
value: '--'
- name: argocd-version
value: v2.2.2
taskRef:
kind: Task
name: argocd-task-sync-and-wait
| 매개변수 | 설명 | 기본값 |
|---|---|---|
|
| 배포할 애플리케이션의 이름입니다. | |
|
| 배포할 버전입니다. |
|
|
|
| |
|
| Argo CD 버전입니다. |
|
Helm-upgrade-from-repo
helm-upgrade-from-repo 커뮤니티 작업은 지정된 Helm 리포지토리 및 차트를 기반으로 OpenShift Container Platform 클러스터의 Helm 차트를 설치하거나 업그레이드합니다.
helm-upgrade-from-repo 커뮤니티 작업 사용 예
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
name: helm-upgrade-from-repo
spec:
tasks:
- name: helm-upgrade-from-repo
params:
- name: helm_repo
value: example_helm_repository
- name: chart_name
value: example_chart_name
- name: release_version
value: v1.0.0
- name: release_name
value: helm-release
- name: release_namespace
value: ''
- name: overwrite_values
value: ''
- name: helm_image
value: 'docker.io/lachlanevenson/k8s-helm@sha256:5c792f29950b388de24e7448d378881f68b3df73a7b30769a6aa861061fd08ae'
taskRef:
kind: Task
name: helm-upgrade-from-repo
| 매개변수 | 설명 | 기본값 |
|---|---|---|
|
| Helm 리포지토리. | |
|
| 배포할 Helm 차트 이름입니다. | |
|
| 의미 체계 버전 관리 형식의 Helm 릴리스 버전입니다. |
|
|
| Helm 릴리스 이름입니다. |
|
|
| Helm 릴리스 네임스페이스입니다. |
|
|
|
덮어쓸 구성 매개변수, 쉼표로 구분되어 있습니다. 예: |
|
|
| 사용할 Helm 이미지입니다. |
|
helm-upgrade-from-source
helm-upgrade-from-source 커뮤니티 작업은 지정된 차트 및 소스 작업 공간을 기반으로 OpenShift Container Platform 클러스터의 Helm 차트를 설치하고 업그레이드합니다.
helm-upgrade-from-source 커뮤니티 작업 사용 예
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
name: helm-upgrade-from-source
spec:
tasks:
- name: helm-upgrade-from-source
params:
- name: charts_dir
value: example_directory_path
- name: release_version
value: v1.0.0
- name: release_name
value: helm-release
- name: release_namespace
value: ''
- name: overwrite_values
value: ''
- name: values_file
value: values.yaml
- name: helm_image
value: 'docker.io/lachlanevenson/k8s-helm@sha256:5c792f29950b388de24e7448d378881f68b3df73a7b30769a6aa861061fd08ae'
- name: upgrade_extra_params
value: ''
taskRef:
kind: Task
name: helm-upgrade-from-source
workspaces:
- name: source
workspace: shared-workspace
#...
| 매개변수 | 설명 | 기본값 |
|---|---|---|
|
| Helm 차트가 포함된 소스 작업 공간의 디렉터리입니다. | |
|
| 의미 체계 버전 관리 형식의 Helm 릴리스 버전입니다. |
|
|
| Helm 릴리스 이름입니다. |
|
|
| Helm 릴리스 네임스페이스입니다. |
|
|
|
덮어쓸 구성 매개변수, 쉼표로 구분되어 있습니다. 예: |
|
|
| Helm의 구성 매개변수가 포함된 파일입니다. |
|
|
| 사용할 Helm 이미지입니다. |
|
|
| Helm upgrade 명령에 전달된 추가 매개변수입니다. |
|
| Workspace | 설명 |
|---|---|
|
| Helm 차트가 포함된 작업 공간입니다. |
Jib-maven
jib-maven 커뮤니티 작업은 Maven 프로젝트의 Jib 툴을 사용하여 Java, Cryostat, Groovy 및 Scala 소스를 컨테이너 이미지로 빌드합니다.
jib-maven 커뮤니티 작업 사용 예
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
name: jib-maven
spec:
tasks:
- name: jib-maven
params:
- name: IMAGE
value: example_image
- name: MAVEN_IMAGE
value: 'registry.redhat.io/ubi9/openjdk-17@sha256:78613bdf887530100efb6ddf92d2a17f6176542740ed83e509cdc19ee7c072d6'
- name: DIRECTORY
value: .
- name: CACHE
value: empty-dir-volume
- name: INSECUREREGISTRY
value: 'false'
- name: CACERTFILE
value: service-ca.crt
taskRef:
kind: Task
name: jib-maven
workspaces:
- name: source
workspace: shared-workspace
#...
| 매개변수 | 설명 | 기본값 |
|---|---|---|
|
| 빌드할 이미지의 이름입니다. | |
|
| Maven 기본 이미지. |
|
|
| 소스 리포지토리 루트를 기준으로 앱이 포함된 디렉터리입니다. |
|
|
| Maven 아티팩트 및 기본 이미지 계층을 캐싱하기 위한 볼륨 이름입니다. |
|
|
| 비보안 레지스트리를 허용합니다. |
|
|
| 비보안 레지스트리 서비스의 CA(인증 기관) 번들 파일 이름입니다. |
|
| Workspace | 설명 |
|---|---|
|
| Maven 프로젝트가 포함된 Workspace입니다. |
|
| SSL 인증서가 포함된 선택적 Workspace입니다. |
| 결과 | 유형 | 설명 |
|---|---|---|
|
|
| 빌드된 이미지의 요약입니다. |
jib-maven 커뮤니티 클러스터 작업의 변경 사항
-
IMAGE및MAVEN_IMAGE매개변수의 기본값이 변경되었습니다.
kubeconfig-creator
kubeconfig-creator 커뮤니티 작업은 파이프라인의 다른 작업에서 다른 클러스터에 액세스하는 데 사용할 수 있는 kubeconfig 파일을 생성합니다.
kubeconfig-creator 커뮤니티 작업 사용 예
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
name: kubeconfig-creator
spec:
tasks:
- name: kubeconfig-creator
params:
- name: name
value: example_cluster
- name: url
value: https://cluster.example.com
- name: username
value: example_username
- name: password
value: example_password
- name: cadata
value: ''
- name: clientKeyData
value: ''
- name: clientCertificateData
value: ''
- name: namespace
value: ''
- name: token
value: ''
- name: insecure
value: 'false'
taskRef:
kind: Task
name: kubeconfig-creator
workspaces:
- name: output
workspace: shared-workspace
#...
| 매개변수 | 설명 | 기본값 |
|---|---|---|
|
| 액세스할 클러스터의 이름입니다. | |
|
| 액세스할 클러스터의 주소입니다. | |
|
| 클러스터에 대한 기본 인증의 사용자 이름입니다. | |
|
| 클러스터에 대한 기본 인증의 암호입니다. |
|
|
| PEM 인코딩 CA(인증 기관) 인증서. |
|
|
| TLS용 클라이언트 키 파일의 PEM 인코딩 데이터입니다. |
|
|
| TLS용 클라이언트 인증 파일의 PEM 인코딩 데이터입니다. |
|
|
| 지정되지 않은 요청에 사용할 기본 네임스페이스입니다. |
|
|
| 클러스터에 대한 인증을 위한 전달자 토큰입니다. |
|
|
| TLS 인증서를 확인하지 않고 서버에 액세스해야 하는지 여부를 나타냅니다. |
|
| Workspace | 설명 |
|---|---|
|
|
|
pull-request
풀 요청 커뮤니티 작업을 사용하여 추상화된 인터페이스를 통해 SCM(소스 제어 관리) 시스템과 상호 작용할 수 있습니다.
이 커뮤니티 작업은 공개 SCM 인스턴스 및 자체 호스팅 또는 엔터프라이즈 GitHub 또는 GitLab 인스턴스와 함께 작동합니다.
다운로드 모드에서 이 작업은 pr 작업 공간을 .MANIFEST 파일을 포함하여 기존 가져오기 요청 상태로 채웁니다.
업로드 모드에서 이 작업은 .MANIFEST 파일을 포함한 pr 작업 공간의 내용을 가져오기 요청의 내용과 비교하고 콘텐츠가 다른 경우 pr 작업 공간에 맞게 가져오기 요청을 업데이트합니다.
pull-request 커뮤니티 작업 사용 예
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
name: pull-request
spec:
spec:
tasks:
- name: pull-request
params:
- name: mode
value: upload
- name: url
value: https://github.com/example/pull/xxxxx
- name: provider
value: github
- name: secret-key-ref
value: example_secret
- name: insecure-skip-tls-verify
value: 'false'
taskRef:
kind: Task
name: pull-request
workspaces:
- name: pr
workspace: shared-workspace
#...
| 매개변수 | 설명 | 기본값 |
|---|---|---|
|
|
| |
|
| 가져오기 요청의 URL입니다. | |
|
|
SCM 시스템의 유형입니다. 지원되는 값은 | |
|
|
base64로 인코딩된 SCM 토큰을 사용하여 | |
|
|
|
|
| Workspace | 설명 |
|---|---|
|
| 가져오기 요청 상태가 포함된 작업 공간입니다. |
trigger-jenkins-job
trigger-jenkins-job 커뮤니티 작업을 사용하여 curl 요청을 사용하여 Jenkins 작업을 트리거할 수 있습니다.
trigger-jenkins-job 커뮤니티 작업 사용 예
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
name: trigger-jenkins-job
spec:
tasks:
- name: trigger-jenkins-job
params:
- name: JENKINS_HOST_URL
value: example_host_URL
- name: JOB_NAME
value: example_job_name
- name: JENKINS_SECRETS
value: jenkins-credentials
- name: JOB_PARAMS
value:
- example_param
taskRef:
kind: Task
name: trigger-jenkins-job
workspaces:
- name: source
workspace: shared-workspace
# ...
| 매개변수 | 설명 | 기본값 |
|---|---|---|
|
| Jenkins가 실행 중인 서버 URL입니다. | |
|
| 트리거해야 하는 Jenkins 작업. | |
|
| 인증 정보가 포함된 Jenkins 시크릿입니다. |
|
|
|
|
|
| Workspace | 설명 |
|---|---|
|
|
|