지속적 통합 작업 및 사용자 지정 작업을 실행하려면 Code Stream 파이프라인에 대한 업무 공간을 구성해야 합니다.
파이프라인 업무 공간에서 Docker 또는 Kubernetes로 유형을 선택하고 해당 끝점을 제공합니다. Docker 및 Kubernetes 플랫폼은 CI(지속적 통합) 작업 또는 사용자 지정 작업을 실행하기 위해 Code Stream에서 배포하는 컨테이너의 전체 수명 주기를 관리합니다.
- Docker 업무 공간에는 Docker 호스트 끝점, 빌더 이미지 URL, 이미지 레지스트리, 작업 디렉토리, 캐시, 환경 변수, CPU 제한 및 메모리 제한이 필요합니다. Git 저장소의 복제본을 생성할 수도 있습니다.
- Kubernetes 업무 공간에는 Kubernetes API 끝점, 빌더 이미지 URL, 이미지 레지스트리, 네임스페이스, NodePort, PVC(영구 볼륨 할당), 작업 디렉토리, 환경 변수, CPU 제한 및 메모리 제한이 필요합니다. Git 저장소의 복제본을 생성할 수도 있습니다.
파이프라인 업무 공간 구성에는 다음 표에 설명된 것처럼 많은 공통 매개 변수와 업무 공간 유형과 관련된 기타 매개 변수가 있습니다.
선택 | 설명 | 세부 정보 및 가용성 |
---|---|---|
유형 | 업무 공간의 유형입니다. | Docker 또는 Kubernetes와 함께 사용할 수 있습니다. |
호스트 끝점 | CI(지속적 통합)및 사용자 지정 작업이 실행되는 호스트 끝점입니다. | Docker 호스트 끝점을 선택하면 Docker 업무 공간에서 사용할 수 있습니다. Kubernetes API 끝점을 선택하면 Kubernetes 업무 공간에서 사용할 수 있습니다. |
빌더 이미지 URL | 빌더 이미지의 이름 및 위치입니다. 컨테이너는 Docker 호스트 및 Kubernetes 클러스터에서 이 이미지를 사용하여 생성됩니다. CI(지속적 통합) 작업 및 사용자 지정 작업은 이 컨테이너 내에서 실행됩니다. | 예: fedora:latest 빌더 이미지에는 curl 또는 wget이 있어야 합니다. |
이미지 레지스트리 | 빌더 이미지를 레지스트리에서 사용할 수 있고 레지스트리에 자격 증명이 필요한 경우에는 레지스트리에서 이미지를 가져올 수 있도록 이미지 레지스트리 끝점을 생성한 다음 여기에서 선택해야 합니다. | Docker 및 Kubernetes 업무 공간에서 사용할 수 있습니다. |
작업 디렉토리 | 작업 디렉토리는 CI(지속적 통합) 작업의 단계가 실행되는 컨테이너 내부의 위치이며 Git Webhook가 파이프라인 실행을 트리거할 때 코드가 복제되는 위치입니다. | Docker 또는 Kubernetes와 함께 사용할 수 있습니다. |
네임스페이스 | 네임스페이스를 입력하지 않으면 Code Stream은 사용자가 제공한 Kubernetes 클러스터에 고유한 이름을 생성합니다. | Kubernetes 업무 공간에만 해당됩니다. |
프록시 | Kubernetes 클러스터의 업무 공간 포드와 통신하기 위해 Code Stream은 각 Kubernetes 클러스터의 네임스페이스 선택하는 옵션은 배포된 Kubernetes 클러스터의 특성에 따라 달라집니다.
|
|
NodePort | Code Stream은 NodePort를 사용하여 Kubernetes 클러스터 내에서 실행되는 컨테이너와 통신합니다. 포트를 선택하지 않으면 Code Stream은 Kubernetes가 할당하는 사용 후 삭제 포트를 사용합니다. 방화벽 규칙의 구성이 사용 후 삭제 포트 범위(30000-32767)에 대한 수신을 허용하는지 확인해야 합니다. 포트를 입력하는 경우 클러스터의 다른 서비스가 해당 포트를 이미 사용하고 있지 않으며 방화벽 규칙이 해당 포트를 허용하는지 확인해야 합니다. |
Kubernetes 업무 공간에만 해당됩니다. |
영구 볼륨 할당 | Kubernetes 업무 공간이 파이프라인 실행 간에 파일을 유지하는 방법을 제공합니다. 영구 볼륨 할당 이름을 제공하면 로그, 아티팩트 및 캐시를 저장할 수 있습니다. 영구 볼륨 할당 생성에 대한 자세한 내용은 Kubernetes 설명서(https://kubernetes.io/docs/concepts/storage/persistent-volumes/)를 참조하십시오. |
Kubernetes 업무 공간에만 해당됩니다. |
환경 변수 | 여기에 전달된 키-값 쌍은 파이프라인이 실행될 때 파이프라인의 모든 CI(지속적 통합) 작업 및 사용자 지정 작업에서 사용할 수 있습니다. | Docker 또는 Kubernetes와 함께 사용할 수 있습니다. 변수에 대한 참조를 여기에 전달할 수 있습니다. 업무 공간에 제공된 환경 변수는 파이프라인의 모든 CI(지속적 통합) 작업 및 사용자 지정 작업에 전달됩니다. 환경 변수가 여기에 전달되지 않으면 해당 변수는 파이프라인의 각 CI(지속적 통합) 작업 및 사용자 지정 작업에 명시적으로 전달되어야 합니다. |
CPU 제한 | CI(지속적 통합) 컨테이너 또는 사용자 지정 작업 컨테이너에 대한 CPU 리소스 제한입니다. | 기본값은 1입니다. |
메모리 제한 | CI(지속적 통합) 컨테이너 또는 사용자 지정 작업 컨테이너에 대한 메모리 제한입니다. | 단위는 MB입니다. |
Git 클론 | Git 클론을 선택하고 Git Webhook가 파이프라인을 호출하면 코드가 업무 공간(컨테이너)에 복제됩니다. | Git 클론을 사용하도록 설정하지 않은 경우 먼저 코드를 복제한 다음 빌드 및 테스트와 같은 다른 단계를 수행하도록 파이프라인에서 또 다른 명시적 CI(지속적 통합)작업을 구성해야 합니다. |
캐시 | Code Stream 업무 공간을 사용하면 일련의 디렉토리 또는 파일을 캐시하여 후속 파이프라인 실행 속도를 높일 수 있습니다. 이러한 디렉토리의 예로는 .m2 및 npm_modules가 있습니다. 파이프라인 실행 간에 데이터 캐싱이 필요하지 않은 경우 영구 볼륨 할당이 필요하지 않습니다. 컨테이너의 파일 또는 디렉토리와 같은 아티팩트는 파이프라인 실행 전반에서 재사용할 수 있도록 캐시됩니다. 예: node_modules 또는 .m2 폴더를 캐시할 수 있습니다. 캐시는 경로 목록을 허용합니다. 예를 들면 다음과 같습니다. workspace: type: K8S endpoint: K8S-Micro image: fedora:latest registry: Docker Registry path: '' cache: - /path/to/m2 - /path/to/node_modules |
업무 공간 유형에 따라 다릅니다. Docker 업무 공간에서 캐시된 데이터, 아티팩트 및 로그를 유지하기 위해 Docker 호스트의 공유 경로를 사용하여 캐시가 수행됩니다. Kubernetes 업무 공간에서 캐시를 사용할 수 있도록 설정하려면 영구 볼륨 할당을 제공해야 합니다. 그렇지 않으면 캐시를 사용할 수 없습니다. |
파이프라인 업무 공간에서 Kubernetes API 끝점을 사용하는 경우 Code Stream은 CI(지속적 통합) 작업 또는 사용자 지정 작업을 실행하는 데 필요한 Kubernetes 리소스(예: ConfigMap, Secret 및 포드)를 생성합니다. Code Stream은 NodePort를 사용하여 컨테이너와 통신합니다.
파이프라인 실행 간에 데이터를 공유하려면 영구 볼륨 할당을 제공해야 합니다. 그러면 Code Stream은 영구 볼륨 할당을 컨테이너에 마운트하여 데이터를 저장하고 후속 파이프라인 실행에 사용합니다.