1.3. 자세한 OpenShift Pipeline 개념
이 안내서에서는 다양한 Pipeline 개념을 소개합니다.
1.3.1. Task
Tasks는 Pipeline 구성 블록이며, 순차적으로 실행되는 단계들로 구성됩니다. Task는 재사용이 가능하며 여러 Pipeline에서 사용할 수 있습니다.
Steps는 이미지 빌드와 같은 특정 목표를 달성하는 일련의 명령입니다. 모든 작업은 Pod로 실행되며 각 단계는 동일한 Pod 내의 자체 컨테이너에서 실행됩니다. 동일한 Pod 내에서 단계가 실행되므로 파일, ConfigMap 및 보안을 캐싱하기 위해 동일한 볼륨에 액세스할 수 있습니다.
다음 예는 apply-manifests
Task를 보여줍니다.
apiVersion: tekton.dev/v1beta1 1 kind: Task 2 metadata: name: apply-manifests 3 spec: 4 params: - default: k8s description: The directory in source that contains yaml manifests name: manifest_dir type: string steps: - args: - |- echo Applying manifests in $(inputs.params.manifest_dir) directory oc apply -f $(inputs.params.manifest_dir) echo ----------------------------------- command: - /bin/bash - -c image: quay.io/openshift/origin-cli:latest name: apply workingDir: /workspace/source workspaces: - name: source
이 작업은 Pod를 시작하고 maven:3.6.0-jdk-8-slim
이미지를 사용하여 해당 Pod 내에서 컨테이너를 실행하여 지정된 명령을 실행합니다. 그리고 애플리케이션의 소스 코드가 포함된 입력 디렉토리인 workspace-git
을 수신합니다.
이 Task는 Git 리포지토리의 자리 표시자만 선언하고 사용할 Git 리포지토리는 지정하지 않습니다. 따라서 여러 Pipeline과 목적에 Task를 재사용할 수 있습니다.
TP(기술 프리뷰)의 Red Hat OpenShift Pipelines 1.3 및 이전 버전을 사용하면 사용자가 SCC( 보안 컨텍스트 제약 조건 )를 확인하지 않고도 작업을 생성할 수 있었습니다. 따라서 인증된 사용자는 권한 있는 SCC로 실행되는 컨테이너를 사용하여 작업을 생성할 수 있습니다.
프로덕션 시나리오에서 이러한 보안 문제를 방지하려면 TP에 있는 Pipeline 버전을 사용하지 마십시오. 대신 Pipelines 1.4 이상과 같이 일반적으로 사용 가능한 버전으로 Operator를 업그레이드하는 것이 좋습니다.