1.7. 파이프라인에 트리거 추가
트리거를 사용하면 파이프라인에서 내보내기 이벤트 및 가져오기 요청 등의 외부 GitHub 이벤트에 응답할 수 있습니다. 애플리케이션에 대한 파이프라인을 어셈블하고 시작한 후 TriggerBinding
, TriggerTemplate
, Trigger
, EventListener
리소스를 추가하여 GitHub 이벤트를 캡처합니다.
프로세스
다음 샘플
TriggerBinding
YAML 파일의 내용을 복사하여 저장합니다.apiVersion: triggers.tekton.dev/v1beta1 kind: TriggerBinding metadata: name: vote-app spec: params: - name: git-repo-url value: $(body.repository.url) - name: git-repo-name value: $(body.repository.name) - name: git-revision value: $(body.head_commit.id)
TriggerBinding
리소스를 생성합니다.$ oc create -f <triggerbinding-yaml-file-name.yaml>
또는
pipelines-tutorial
Git 리포지토리에서 직접TriggerBinding
리소스를 생성할 수 있습니다.$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.15/03_triggers/01_binding.yaml
다음 샘플
TriggerTemplate
YAML 파일의 내용을 복사하여 저장합니다.apiVersion: triggers.tekton.dev/v1beta1 kind: TriggerTemplate metadata: name: vote-app spec: params: - name: git-repo-url description: The git repository url - name: git-revision description: The git revision default: pipelines-1.15 - name: git-repo-name description: The name of the deployment to be created / patched resourcetemplates: - apiVersion: tekton.dev/v1 kind: PipelineRun metadata: generateName: build-deploy-$(tt.params.git-repo-name)- spec: taskRunTemplate: serviceAccountName: pipeline pipelineRef: name: build-and-deploy params: - name: deployment-name value: $(tt.params.git-repo-name) - name: git-url value: $(tt.params.git-repo-url) - name: git-revision value: $(tt.params.git-revision) - name: IMAGE value: image-registry.openshift-image-registry.svc:5000/pipelines-tutorial/$(tt.params.git-repo-name) workspaces: - name: shared-workspace volumeClaimTemplate: spec: accessModes: - ReadWriteOnce resources: requests: storage: 500Mi
템플릿은 작업 영역의 스토리지 볼륨을 정의하기 위해 영구 볼륨 클레임을 생성하는 볼륨 클레임 템플릿을 지정합니다. 따라서 데이터 스토리지를 제공하기 위해 영구 볼륨 클레임을 생성할 필요가 없습니다.
TriggerTemplate
리소스를 생성합니다.$ oc create -f <triggertemplate-yaml-file-name.yaml>
또는
pipelines-tutorial
Git 리포지토리에서 직접TriggerTemplate
리소스를 생성할 수도 있습니다.$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.15/03_triggers/02_template.yaml
다음 샘플
Trigger
YAML 파일의 콘텐츠를 복사하여 저장합니다.apiVersion: triggers.tekton.dev/v1beta1 kind: Trigger metadata: name: vote-trigger spec: taskRunTemplate: serviceAccountName: pipeline bindings: - ref: vote-app template: ref: vote-app
Trigger
리소스를 생성합니다.$ oc create -f <trigger-yaml-file-name.yaml>
또는
pipelines-tutorial
Git 리포지토리에서 직접Trigger
리소스를 생성할 수도 있습니다.$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.15/03_triggers/03_trigger.yaml
다음 샘플
EventListener
YAML 파일의 내용을 복사하여 저장합니다.apiVersion: triggers.tekton.dev/v1beta1 kind: EventListener metadata: name: vote-app spec: taskRunTemplate: serviceAccountName: pipeline triggers: - triggerRef: vote-trigger
또는 트리거 사용자 정의 리소스를 정의하지 않은 경우 트리거 이름을 참조하는 대신 바인딩 및 템플릿 사양을
EventListener
YAML 파일에 추가합니다.apiVersion: triggers.tekton.dev/v1beta1 kind: EventListener metadata: name: vote-app spec: taskRunTemplate: serviceAccountName: pipeline triggers: - bindings: - ref: vote-app template: ref: vote-app
다음 단계를 수행하여
EventListener
리소스를 생성합니다.보안 HTTPS 연결을 사용하여
EventListener
리소스를 생성하려면 다음을 수행합니다.Eventlistener
리소스에 대한 보안 HTTPS 연결을 활성화하려면 레이블을 추가합니다.$ oc label namespace <ns-name> operator.tekton.dev/enable-annotation=enabled
EventListener
리소스를 생성합니다.$ oc create -f <eventlistener-yaml-file-name.yaml>
또는
pipelines-tutorial
Git 리포지토리에서 직접EvenListener
리소스를 생성할 수도 있습니다.$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.15/03_triggers/04_event_listener.yaml
재암호화 TLS 종료로 경로를 생성합니다.
$ oc create route reencrypt --service=<svc-name> --cert=tls.crt --key=tls.key --ca-cert=ca.crt --hostname=<hostname>
또는 재암호화 TLS 종료 YAML 파일을 만들어 보안 경로를 만들 수도 있습니다.
보안 경로의 TLS 종료 YAML에 대한 재암호화의 예
apiVersion: route.openshift.io/v1 kind: Route metadata: name: route-passthrough-secured 1 spec: host: <hostname> to: kind: Service name: frontend 2 tls: termination: reencrypt 3 key: [as in edge termination] certificate: [as in edge termination] caCertificate: [as in edge termination] destinationCACertificate: |- 4 -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE-----
자세한 옵션은
oc create route reencrypt --help
를 참조하십시오.
비보안 HTTP 연결을 사용하여
EventListener
리소스를 생성하려면 다음을 수행합니다.-
EventListener
리소스를 생성합니다. EventListener
서비스에 공개 액세스가 가능하도록 이 서비스를 OpenShift Container Platform 경로로 노출합니다.$ oc expose svc el-vote-app
-