지속적 통합 작업 및 사용자 지정 작업을 실행하려면 Code Stream 파이프라인에 대한 업무 공간을 구성해야 합니다. 업무 공간은 Docker 및 Kubernetes 끝점을 지원합니다. 파이프라인 업무 공간을 구성할 때는 빌더 이미지를 포함해야 합니다.

파이프라인 업무 공간에서 Docker 또는 Kubernetes를 선택하고 Docker 호스트 끝점 또는 Kubernetes 호스트 끝점을 포함합니다. Docker 및 Kubernetes 플랫폼은 CI(지속적 통합) 작업 또는 사용자 지정 작업을 실행하기 위해 Code Stream에서 배포하는 컨테이너의 전체 수명 주기를 관리합니다.

  • Docker 업무 공간에는 Docker 호스트 끝점, 빌더 이미지 URL, 이미지 레지스트리, 작업 디렉토리, 캐시, 환경 변수, CPU 제한 및 메모리 제한이 필요합니다. Git 저장소의 복제본을 생성할 수도 있습니다.
  • Kubernetes 업무 공간에는 Kubernetes 호스트 끝점, 빌더 이미지 URL, 이미지 레지스트리, 네임스페이스, NodePort, PVC(영구 볼륨 할당), 작업 디렉토리, 환경 변수, CPU 제한 및 메모리 제한이 필요합니다. Git 저장소의 복제본을 생성할 수도 있습니다.

파이프라인 업무 공간 구성에는 다음 표에 설명된 것처럼 많은 공통 매개 변수와 업무 공간 유형과 관련된 기타 매개 변수가 있습니다.

표 1. 작업 공간 영역, 세부 정보 및 가용성
선택 설명 세부 정보 및 가용성
유형 업무 공간의 유형입니다. Docker 또는 Kubernetes와 함께 사용할 수 있습니다.
호스트 끝점 CI(지속적 통합)및 사용자 지정 작업이 실행되는 호스트 끝점입니다.

Docker 호스트 끝점을 선택하면 Docker 업무 공간에서 사용할 수 있습니다.

Kubernetes 호스트 끝점을 선택하면 Kubernetes 업무 공간에서 사용할 수 있습니다.

빌더 이미지 URL 빌더 이미지의 이름 및 위치입니다. 컨테이너는 Docker 호스트 및 Kubernetes 클러스터에서 이 이미지를 사용하여 생성됩니다. CI(지속적 통합) 작업 및 사용자 지정 작업은 이 컨테이너 내에서 실행됩니다.

예: fedora:latest

빌더 이미지에는 curl 또는 wget이 있어야 합니다.

이미지 레지스트리 빌더 이미지를 레지스트리에서 사용할 수 있고 레지스트리에 자격 증명이 필요한 경우에는 레지스트리에서 이미지를 가져올 수 있도록 먼저 이미지 레지스트리 끝점을 생성한 다음 여기에서 선택해야 합니다. Docker 및 Kubernetes 업무 공간에서 사용할 수 있습니다.
작업 디렉토리 작업 디렉토리는 CI(지속적 통합) 작업의 단계가 실행되는 컨테이너 내부의 위치이며 Git Webhook가 파이프라인 실행을 트리거할 때 코드가 복제되는 위치입니다. Docker 또는 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 업무 공간을 사용하면 일련의 디렉토리 또는 파일을 캐시하여 후속 파이프라인 실행 속도를 높일 수 있습니다. 이러한 디렉토리의 예로는 .m2npm_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 끝점을 사용하는 경우 Code Stream은 CI(지속적 통합) 작업 또는 사용자 지정 작업을 실행하는 데 필요한 Kubernetes 리소스(예: ConfigMap, Secret 및 포드)를 생성합니다. Code Stream은 NodePort를 사용하여 컨테이너와 통신합니다.

파이프라인 실행 간에 데이터를 공유하려면 영구 볼륨 할당을 제공해야 합니다. 그러면 Code Stream은 영구 볼륨 할당을 컨테이너에 마운트하여 데이터를 저장하고 후속 파이프라인 실행에 사용합니다.

Kubernetes 업무 공간에서 인증서 기반 인증과 함께 온-프레미스 Kubernetes 호스트 끝점을 사용하는 경우에는 클라우드 프록시가 최신 버전인지 확인해야 합니다. 그렇지 않으면 인증에 실패할 수 있습니다.