1.4. 파이프라인 조립
파이프라인은 CI/CD 흐름을 나타내며 실행할 작업들로 정의됩니다. 여러 애플리케이션 및 환경에서 포괄적으로 적용되고 재사용 가능하도록 설계되었습니다.
파이프라인은 from
및 runAfter
매개변수를 사용하여 작업들이 상호 작용하는 방법과 실행 순서를 지정합니다. 그리고 workspaces
필드를 사용하여 파이프라인의 각 작업 실행 중 필요한 하나 이상의 볼륨을 지정합니다.
이 섹션에서는 GitHub에서 애플리케이션의 소스 코드를 가져와 OpenShift Container Platform에서 빌드 및 배포하는 파이프라인을 생성합니다.
파이프라인은 백엔드 애플리케이션 pipelines-vote-api
및 프런트 엔드 애플리케이션 pipelines-vote-ui
에 대해 다음 작업을 수행합니다.
-
git-url
및git-revision
매개변수를 참조하여 Git 리포지토리에서 애플리케이션의 소스 코드를 복제합니다. -
openshift-pipelines
네임스페이스에 제공된buildah
작업을 사용하여 컨테이너 이미지를 빌드합니다. -
image 매개변수를 참조하여 OpenShift 이미지 레지스트리에
이미지를
푸시합니다. -
apply-manifests
및update-deployment
작업을 사용하여 OpenShift Container Platform에 새 이미지를 배포합니다.
프로세스
다음 샘플 파이프라인 YAML 파일의 내용을 복사하여 저장합니다.
apiVersion: tekton.dev/v1 kind: Pipeline metadata: name: build-and-deploy spec: workspaces: - name: shared-workspace params: - name: deployment-name type: string description: name of the deployment to be patched - name: git-url type: string description: url of the git repo for the code of deployment - name: git-revision type: string description: revision to be used from repo of the code for deployment default: "pipelines-1.15" - name: IMAGE type: string description: image to be built from the code tasks: - name: fetch-repository taskRef: resolver: cluster params: - name: kind value: task - name: name value: git-clone - name: namespace value: openshift-pipelines workspaces: - name: output workspace: shared-workspace params: - name: URL value: $(params.git-url) - name: SUBDIRECTORY value: "" - name: DELETE_EXISTING value: "true" - name: REVISION value: $(params.git-revision) - name: build-image taskRef: resolver: cluster params: - name: kind value: task - name: name value: buildah - name: namespace value: openshift-pipelines workspaces: - name: source workspace: shared-workspace params: - name: IMAGE value: $(params.IMAGE) runAfter: - fetch-repository - name: apply-manifests taskRef: name: apply-manifests workspaces: - name: source workspace: shared-workspace runAfter: - build-image - name: update-deployment taskRef: name: update-deployment params: - name: deployment value: $(params.deployment-name) - name: IMAGE value: $(params.IMAGE) runAfter: - apply-manifests
파이프라인 정의는 Git 소스 리포지토리 및 이미지 레지스트리의 세부 사항을 요약합니다. 이러한 세부 사항은 파이프라인이 트리거되고 실행될 때
params
로 추가됩니다.파이프라인을 생성합니다.
$ oc create -f <pipeline-yaml-file-name.yaml>
또는 Git 리포지토리에서 직접 YAML 파일을 실행할 수도 있습니다.
$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.15/01_pipeline/04_pipeline.yaml
tkn pipeline list
명령을 사용하여 파이프라인이 애플리케이션에 추가되었는지 확인합니다.$ tkn pipeline list
출력에서
build-and-deploy
파이프라인이 생성되었는지 확인합니다.NAME AGE LAST RUN STARTED DURATION STATUS build-and-deploy 1 minute ago --- --- --- ---