Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

승격 파이프라인 설정: product promotion set

apollo-cli product promotion set은 YAML 파일의 구성으로 제품의 승격 파이프라인을 설정하거나 갱신합니다. 단계별 출발 및 도착 채널, zeroCanary 또는 dynamic 유형, 승격 조건과 임계값을 정의합니다.

실험 단계(Experimental)의 명령으로 V2 experimental commands 활성화가 필요합니다.

apollo-cli product promotion set [product-id] [flags]

적용 범위와 옵션

제품 ID를 위치 인수로 지정하면 그 제품을 대상으로 합니다. --environment를 사용하면 배포 환경의 모든 제품에 일괄 적용합니다.

옵션의미
-f, --fileYAML 설정 파일 하나
-e, --environment일괄 대상 제품을 고를 배포 환경
--space-id대상 공간 ID
--override확인 없이 충돌 덮어쓰기
--dry-run변경을 적용하지 않고 수행할 작업 확인
-h, --help명령 도움말

단계 설정의 구성 요소

stages에 여러 단계를 정의하며, sourceReleaseChannel과 targetReleaseChannel로 각 단계가 연결할 채널을 지정합니다.

구성 요소용도
typezeroCanary 또는 dynamic 선택
zeroCanary카나리 없이 승격할 단계의 설정
soakTimeInMinutes분 단위의 안정성 관찰 기간
productLabelConditions제품 릴리스에 요구할 레이블 조건
labelId, possibleLabelValues조건의 레이블 ID와 허용 값 목록
dynamicConfig동적으로 고르는 카나리 대상과 승격 조건
entityFilters대상으로 삼을 배포 개체 필터
필터의 type: environmentLabel배포 환경 레이블로 대상 선택
promotionConditions승격 여부를 판단할 조건
조건의 type: minHealthy정상 상태의 카나리가 일정 기준을 충족하도록 요구
minHealthyThreshold의 percentage정상 상태 비율의 임계값

구성 시나리오

다음은 가상의 사용자 지정 채널 CANARY, BETA, STABLE을 미리 만든 뒤 구성하는 두 단계의 승격 규칙입니다.

단계유형조건
BETA에서 STABLE로zeroCanarysoakTimeInMinutes를 1440으로 지정하고, security.palantir.build/approved 레이블의 possibleLabelValues를 ["true"]로 설정
CANARY에서 BETA로dynamicenvironmentLabel 필터로 env.palantir.build/tier 값이 production인 대상을 고르고, minHealthy 조건에 60분의 관찰 기간과 percentage: 95.0 임계값을 설정

첫 단계는 관찰 기간과 제품 승인 레이블을 사용하고, 두 번째 단계는 선택한 개체 중 정상 기준을 충족한 개체의 비율을 사용합니다. 기존 파이프라인에 일부 단계를 병합하려면 별도의 append 명령을 사용합니다.

적용 예시

다음은 준비한 promotion-pipeline.yaml의 변경을 가상의 제품에 미리 확인하는 예시입니다.

./apollo-cli product promotion set com.example:service-a \
  --file promotion-pipeline.yaml --dry-run

기본으로 구성한 공간에 적용하거나 실제 공간 ID를 명시할 수 있습니다.

./apollo-cli product promotion set com.example:service-a \
  --file promotion-pipeline.yaml

./apollo-cli product promotion set com.example:service-a \
  --file promotion-pipeline.yaml --space-id "${APOLLO_SPACE_ID}"

배포 환경의 모든 제품에 적용하려면 다음과 같이 실행합니다.

./apollo-cli product promotion set --environment test-spoke \
  --file promotion-pipeline.yaml

확인 없이 덮어쓰려면 --override를 사용합니다.

./apollo-cli product promotion set --environment test-spoke \
  --file promotion-pipeline.yaml --override

배포 환경은 대상 제품을 선택하는 기준입니다. 변경은 해당 제품들의 승격 파이프라인에 적용되므로 일괄 적용 범위를 먼저 확인합니다.