1.2. Red Hat OpenShift Pipelines 개념
Red Hat OpenShift Pipelines는 애플리케이션에 대한 CI/CD 파이프라인을 어셈블할 수 있는 빌드 블록 역할을 하는 표준 CRD(Custom Resource Definitions) 집합을 제공합니다.
- Task
- Task는 Pipeline에서 구성 가능한 최소 단위입니다. 근본적으로 Pipeline 빌드를 형성하는 입력 및 출력의 기능입니다. 개별적으로 또는 Pipeline의 일부로 Task를 실행할 수 있습니다. Pipeline에 하나 이상의 Task가 포함되며, 각 Task는 하나 이상의 단계(Step)로 구성됩니다. 단계(Step)는 Task에서 순차적으로 실행되는 일련의 명령 집합입니다.
- Pipeline
- Pipeline은 애플리케이션 빌드, 배포 및 제공 작업을 자동화하는 복잡한 워크플로를 구성하기 위해 실행되는 일련의 Task로 구성됩니다. PipelineResources와 매개변수, 그리고 하나 이상의 Task로 구성된 집합체가 Pipeline입니다. Pipeline은 입력 및 출력으로서 Task에 추가되는 PipelineResources를 사용하여 외부 세계와 상호 작용합니다.
- PipelineRun
- PipelineRun은 Pipeline의 실행 중 인스턴스입니다. PipelineRun에 의해 Pipeline이 시작되고, Pipeline에서 실행되는 각 Task에 대한 TaskRun 생성이 관리됩니다.
- TaskRun
- TaskRun은 Pipeline의 각 Task에 대한 PipelineRun에 의해 자동으로 생성되며, Pipeline에서 Task 인스턴스를 실행한 결과입니다. Pipeline 밖에서 Task를 실행하는 경우, 수동으로 생성해야 할 수도 있습니다.
- Workspace
- Workspace는 런타임 시 입력을 수신하거나 출력을 제공하기 위해 Task에 필요한 스토리지 볼륨입니다. Task 또는 Pipeline은 Workspace를 선언하고, TaskRun 또는 PipelineRun은 선언된 Workspace에 마운트되는 스토리지 볼륨의 실제 위치를 제공합니다. 그 결과 유연하고 재사용 가능한 Task가 되며, 여러 Task에서 Workspace를 공유할 수 있게 됩니다.
- Trigger
- Trigger는 Git pull 요청과 같은 외부 이벤트를 캡처하고, 이벤트 페이로드를 처리하여 주요 정보를 추출합니다. 추출된 정보는 사전 정의된 매개변수 세트에 맵핑되고, 이 매개변수 세트는 Kubernetes 리소스 생성 및 배포와 관련된 일련의 Task를 트리거합니다. Pipeline과 함께 Trigger를 사용하여 Kubernetes 리소스를 통해 실행이 전체적으로 정의된 완전한 CI/CD 시스템을 생성할 수 있습니다.
- Condition
-
Condition은 Pipeline에서 Task를 실행하기 전에 수행되는 검증 또는 검사를 나타냅니다. Condition은 반환 값이
True
또는False
인 논리 테스트를 수행하는if
문과 같습니다. 모든 Condition에서True
가 반환된면 Task가 실행되지만 Condition 중 하나라도 실패하면 해당 Task와 모든 후속 Task를 건너 뜁니다. Pipeline에서 Condition을 사용하여 여러 가지 시나리오를 다루는 복잡한 워크플로를 생성할 수 있습니다.