승격 단계 병합: product promotion append
apollo-cli product promotion append는 YAML 템플릿의 승격 단계를 제품의 기존 파이프라인에 병합합니다. 하나의 제품 또는 배포 환경에 속한 모든 제품을 대상으로 사용할 수 있습니다.
실험 단계(Experimental)의 명령으로 V2 experimental commands 활성화가 필요합니다.
apollo-cli product promotion append [product-id] [flags]
단계의 식별과 충돌
단계는 출발 릴리스 채널과 도착 릴리스 채널의 조합으로 식별합니다. 같은 조합이 기존 파이프라인에 있으면 충돌로 취급하며, 충돌하지 않는 단계는 기존 파이프라인에 추가합니다.
| 실행 방식 | 충돌 처리 |
|---|---|
| 기본 실행 | 충돌마다 덮어쓸지 대화형으로 확인 |
--override | 확인 없이 모든 충돌 덮어쓰기 |
--dry-run | 적용 없이 변경을 보여줌. 충돌에는 would override 표시 |
옵션
| 옵션 | 의미 |
|---|---|
-f, --file | 읽을 YAML 템플릿 파일 하나 |
-e, --environment | 일괄 적용할 제품을 선택할 배포 환경 |
--space-id | 대상 공간 ID |
--override | 충돌 확인 없이 덮어쓰기 |
--dry-run | 변경을 적용하지 않고 수행할 작업 확인 |
-h, --help | 명령 도움말 |
템플릿에 담을 단계 정보
템플릿의 stages는 단계 목록입니다. 각 단계에 sourceReleaseChannel, targetReleaseChannel로 출발 및 도착 채널을 지정하고, stage에서 단계 유형과 조건을 정의합니다.
가상의 사용자 지정 채널 BETA와 STABLE을 미리 만든 뒤, 다음 조건으로 승격 단계를 구성한다고 가정하겠습니다.
| 설정 | 예시 값과 의미 |
|---|---|
sourceReleaseChannel | BETA |
targetReleaseChannel | STABLE |
단계의 type | zeroCanary |
zeroCanary의 soakTime | PT1440M: 1,440분의 안정성 관찰 기간 |
productLabelConditions의 labelId | security.palantir.build/approved |
레이블 조건의 onlyPossibleLabelValues | 문자열 목록 ["true"] |
이 조건은 BETA에서 STABLE로 넘어갈 때 안정성 관찰 기간과 제품 릴리스의 승인 레이블 조건을 사용하도록 구성합니다.
적용 예시
다음 명령은 준비한 stages.yaml을 가상의 제품에 병합하기 전에 변경을 확인합니다.
./apollo-cli product promotion append com.example:service-a \
--file stages.yaml --dry-run
제품 하나에 적용하려면 다음과 같이 실행합니다.
./apollo-cli product promotion append com.example:service-a --file stages.yaml
배포 환경의 모든 제품에 적용하려면 다음과 같이 실행합니다.
./apollo-cli product promotion append --environment test-spoke --file stages.yaml
확인 없이 충돌을 덮어써야 하는 경우에는 --override를 추가합니다.
./apollo-cli product promotion append --environment test-spoke \
--file stages.yaml --override
일괄 모드에서는 배포 환경 안의 제품 전체가 선택됩니다. 적용 전에 대상 제품과 충돌 내용을 확인해야 합니다.