Helm 차트 제품 초기화: product-release helm-chart init
apollo-cli product-release helm-chart init은 로컬 Helm 차트나 원격 차트 저장소를 입력으로 Apollo 제품 매니페스트를 만듭니다. 초기화 결과를 카탈로그에 등록하려면 이후 제품 릴리스 생성을 실행합니다.
apollo-cli product-release helm-chart init [flags]
차트와 제품 식별
| 옵션 | 의미 |
|---|---|
--chart-path | 로컬의 패키징된 차트 파일 또는 풀어 놓은 차트 디렉터리 경로 |
--name | Helm 차트 이름. 원격 OCI 저장소의 차트는 oci://repo/chartName처럼 전체 OCI URL을 지정 |
--version | Helm 차트 버전 |
--repository-url | 차트를 찾을 Helm 저장소 URL. oci 스킴 필요 |
--maven-coordinate | 아티팩트의 Maven 좌표 |
--output-dir | 생성한 파일을 저장할 디렉터리 |
--as-tgz | 지정한 출력 디렉터리에 확장자가 .config.tgz인 Apollo 제품 TGZ를 생성 |
--values | 차트를 로컬에서 렌더링할 때 사용할 YAML 값 파일 |
-h, --help | 명령 도움말 |
--values는 로컬 템플릿 렌더링에만 사용합니다. 이 옵션만으로 Apollo의 설치용 기본 구성이 등록되지는 않습니다. 설치 전에 Apollo에 기본 구성을 추가해야 하며, 릴리스 등록 시 --default-config를 사용하는 방법도 있습니다.
--chart-path로 로컬 차트를 지정하면 이름과 버전을 차트 메타데이터에서 가져올 수 있습니다. 저장소 URL은 실제 배포 시 차트를 가져올 위치이므로 로컬 차트를 입력하는 경우에도 필요합니다.
차트 저장소 인증과 TLS
| 옵션 | 의미 |
|---|---|
--username | 차트를 가져올 저장소의 사용자 이름 |
--password | 차트를 가져올 저장소의 비밀번호 |
--ca-file | HTTPS 서버 인증서 검증에 사용할 CA 번들 |
--cert-file | HTTPS 클라이언트를 식별할 SSL 인증서 파일 |
--key-file | HTTPS 클라이언트를 식별할 SSL 키 파일 |
--pass-credentials | Helm이 차트를 가져오는 과정에서 모든 도메인에 인증 정보를 전달 |
이 옵션들은 차트 저장소에 접근하기 위한 것입니다. Apollo 허브에 대한 인증은 --apollo-token 또는 클라이언트 인증 정보 같은 공통 옵션으로 별도로 설정합니다.
--pass-credentials는 인증 정보를 전달할 범위를 모든 도메인으로 넓힙니다. 사용할 때는 저장소 접근 경로와 인증 정보를 받을 도메인을 확인해야 합니다.
배포 동작 확장
| 옵션 | 의미와 제한 |
|---|---|
--rollout-strategy | manageRollout 또는 applyChangesNoWait. 기본값은 manageRollout |
--resource-readiness-timeout | 리소스 적용 후 모든 리소스가 준비될 때까지 기다릴 시간. 최소 3분, 최대 4시간. applyChangesNoWait와 함께 사용 불가 |
--image-pre-pull-config-timeout | 컨테이너 이미지 사전 다운로드 타임아웃. 최소 1분, 최대 90분 |
준비 타임아웃은 5m, 1h, 90m처럼 지정할 수 있습니다. Helm이 변경을 적용하고 hook을 실행하는 타임아웃에는 영향을 주지 않으며, 적용 이후 리소스 준비 대기에만 사용합니다. 사전 다운로드 타임아웃의 표기 예시는 3m입니다.
전략별 성공 판단과 롤백 조건은 Helm 배포 전략과 타임아웃에서 설명합니다.
원격 차트 초기화 예시
다음은 허브 인증이 준비된 상태에서 Traefik 차트를 Apollo 제품 TGZ로 만드는 예시입니다.
./apollo-cli product-release helm-chart init \
--as-tgz \
--name "oci://ghcr.io/traefik/helm/traefik" \
--version 41.0.2 \
--repository-url "oci://ghcr.io/traefik/helm" \
--maven-coordinate "io.traefik:traefik:41.0.2" \
--output-dir "./chart"
생성된 결과를 제품 릴리스로 등록하는 단계와 실제 차트를 배포 환경에 설치하는 단계는 별도입니다. 전체 흐름은 CLI 시작하기에서 설명합니다.