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)
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)
Copy to Clipboard Copied! TriggerBinding
리소스를 생성합니다.oc create -f <triggerbinding-yaml-file-name.yaml>
$ oc create -f <triggerbinding-yaml-file-name.yaml>
Copy to Clipboard Copied! 또는
pipelines-tutorial
Git 리포지토리에서 직접TriggerBinding
리소스를 생성할 수 있습니다.oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.17/03_triggers/01_binding.yaml
$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.17/03_triggers/01_binding.yaml
Copy to Clipboard Copied! 다음 샘플
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.17 - 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
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.17 - 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
Copy to Clipboard Copied! 템플릿은 작업 영역의 스토리지 볼륨을 정의하기 위해 영구 볼륨 클레임을 생성하는 볼륨 클레임 템플릿을 지정합니다. 따라서 데이터 스토리지를 제공하기 위해 영구 볼륨 클레임을 생성할 필요가 없습니다.
TriggerTemplate
리소스를 생성합니다.oc create -f <triggertemplate-yaml-file-name.yaml>
$ oc create -f <triggertemplate-yaml-file-name.yaml>
Copy to Clipboard Copied! 또는
pipelines-tutorial
Git 리포지토리에서 직접TriggerTemplate
리소스를 생성할 수도 있습니다.oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.17/03_triggers/02_template.yaml
$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.17/03_triggers/02_template.yaml
Copy to Clipboard Copied! 다음 샘플
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
apiVersion: triggers.tekton.dev/v1beta1 kind: Trigger metadata: name: vote-trigger spec: taskRunTemplate: serviceAccountName: pipeline bindings: - ref: vote-app template: ref: vote-app
Copy to Clipboard Copied! Trigger
리소스를 생성합니다.oc create -f <trigger-yaml-file-name.yaml>
$ oc create -f <trigger-yaml-file-name.yaml>
Copy to Clipboard Copied! 또는
pipelines-tutorial
Git 리포지토리에서 직접Trigger
리소스를 생성할 수도 있습니다.oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.17/03_triggers/03_trigger.yaml
$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.17/03_triggers/03_trigger.yaml
Copy to Clipboard Copied! 다음 샘플
EventListener
YAML 파일의 내용을 복사하여 저장합니다.apiVersion: triggers.tekton.dev/v1beta1 kind: EventListener metadata: name: vote-app spec: taskRunTemplate: serviceAccountName: pipeline triggers: - triggerRef: vote-trigger
apiVersion: triggers.tekton.dev/v1beta1 kind: EventListener metadata: name: vote-app spec: taskRunTemplate: serviceAccountName: pipeline triggers: - triggerRef: vote-trigger
Copy to Clipboard Copied! 또는 트리거 사용자 정의 리소스를 정의하지 않은 경우 트리거 이름을 참조하는 대신 바인딩 및 템플릿 사양을
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
apiVersion: triggers.tekton.dev/v1beta1 kind: EventListener metadata: name: vote-app spec: taskRunTemplate: serviceAccountName: pipeline triggers: - bindings: - ref: vote-app template: ref: vote-app
Copy to Clipboard Copied! 다음 단계를 수행하여
EventListener
리소스를 생성합니다.보안 HTTPS 연결을 사용하여
EventListener
리소스를 생성하려면 다음을 수행합니다.Eventlistener
리소스에 대한 보안 HTTPS 연결을 활성화하려면 레이블을 추가합니다.oc label namespace <ns-name> operator.tekton.dev/enable-annotation=enabled
$ oc label namespace <ns-name> operator.tekton.dev/enable-annotation=enabled
Copy to Clipboard Copied! EventListener
리소스를 생성합니다.oc create -f <eventlistener-yaml-file-name.yaml>
$ oc create -f <eventlistener-yaml-file-name.yaml>
Copy to Clipboard Copied! 또는
pipelines-tutorial
Git 리포지토리에서 직접EvenListener
리소스를 생성할 수도 있습니다.oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.17/03_triggers/04_event_listener.yaml
$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.17/03_triggers/04_event_listener.yaml
Copy to Clipboard Copied! 재암호화 TLS 종료로 경로를 생성합니다.
oc create route reencrypt --service=<svc-name> --cert=tls.crt --key=tls.key --ca-cert=ca.crt --hostname=<hostname>
$ oc create route reencrypt --service=<svc-name> --cert=tls.crt --key=tls.key --ca-cert=ca.crt --hostname=<hostname>
Copy to Clipboard Copied! 또는 재암호화 TLS 종료 YAML 파일을 만들어 보안 경로를 만들 수도 있습니다.
보안 경로의 TLS 종료 YAML에 대한 재암호화의 예
apiVersion: route.openshift.io/v1 kind: Route metadata: name: route-passthrough-secured spec: host: <hostname> to: kind: Service name: frontend tls: termination: reencrypt key: [as in edge termination] certificate: [as in edge termination] caCertificate: [as in edge termination] destinationCACertificate: |- -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE-----
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-----
Copy to Clipboard Copied! 자세한 옵션은
oc create route reencrypt --help
를 참조하십시오.
비보안 HTTP 연결을 사용하여
EventListener
리소스를 생성하려면 다음을 수행합니다.-
EventListener
리소스를 생성합니다. EventListener
서비스에 공개 액세스가 가능하도록 이 서비스를 OpenShift Container Platform 경로로 노출합니다.oc expose svc el-vote-app
$ oc expose svc el-vote-app
Copy to Clipboard Copied!
-