Apollo CLI 명령과 공통 옵션
apollo-cli는 제품 릴리스를 직접 게시하거나, 허브가 관리하는 제품과 배포 환경의 메타데이터를 조회하는 명령행 도구입니다. Linux, macOS(Darwin)와 Windows를 지원합니다.
명령 그룹
| 명령 | 기능 |
|---|---|
artifact-registry | 아티팩트 레지스트리 작업 |
changerequest | 변경 요청 작업 |
configure | 허브 연결과 인증에 사용할 설정 파일 갱신 |
cve | 제품 릴리스의 보안 취약점 확인 |
entity | 배포 개체 관리 |
environment | 배포 환경 관리 |
helm-chart | Apollo 전용 Helm 차트 유틸리티 |
label | 리소스의 레이블 관리 |
module | 모듈 관리 |
product | 제품 작업 |
product-release | 제품 릴리스 관리 |
profile | CLI 설정 프로필 관리 |
release-channel | 릴리스 채널 관리 |
target-hub | 전송 대상 허브 작업 |
terminal | 배포 환경의 대화형 터미널 관리 |
하위 명령의 사용법은 해당 명령 뒤에 --help 또는 -h를 붙여 확인할 수 있습니다.
./apollo-cli --help
./apollo-cli product-release --help
공통 옵션
다음 옵션은 하위 명령에서 상속하여 사용합니다. 개별 명령에서 같은 이름의 옵션을 별도로 정의하면 그 명령의 의미를 따릅니다. 예를 들어 profile export의 --output은 출력 형식이 아니라 파일 경로이고, 형식은 --format으로 지정합니다.
| 옵션 | 의미 |
|---|---|
--apollo-url | API 엔드포인트를 구성하는 기준 Apollo 허브 URL |
--apollo-client-id | Bearer 토큰을 발급받을 때 사용할 클라이언트 ID |
--apollo-client-secret | Bearer 토큰을 발급받을 때 사용할 클라이언트 비밀값 |
--apollo-token | 인증이 필요한 엔드포인트 호출에 사용할 Bearer 토큰 |
--apollo-token-provider | 토큰을 얻는 방식. auto, static, service-user, sso 중 선택하며 기본값은 auto |
-e, --environment | 배포 환경 범위 명령의 대상 ID. 식별자 접미사를 포함한 전체 ID를 사용 |
--space-id | 공간 범위로 동작하는 명령의 대상 공간 ID |
--profile | 설정 파일에서 사용할 프로필 이름 |
--http-timeout | Apollo 요청에 적용할 타임아웃. 단위는 분 |
-o, --output | 출력 형식. json, yaml, pretty |
--debug | 디버그 수준 로그 활성화 |
--quiet | 표준 오류 스트림인 stderr에 로그를 출력하지 않음 |
-k, --insecure-skip-verify | 서버 인증서 검증 생략 |
--sso-callback-port | SSO OAuth 콜백을 받을 로컬 루프백 포트. 0이면 사용할 수 있는 임시 포트를 선택 |
-h, --help | 도움말 표시 |
--environment에는 화면에 보이는 이름 대신 배포 환경의 전체 ID를 지정합니다. --space-id는 공간 단위 요청의 대상을 정하는 별도 옵션입니다.
서버 인증서 검증을 생략하면 연결 대상의 인증서를 확인하지 않습니다. --insecure-skip-verify를 일반적인 연결 설정의 기본값으로 사용하지 않습니다.
토큰 제공 방식과 우선순위
auto에서는 설정된 인증 정보에 따라 다음과 같이 선택합니다.
- Bearer 토큰이 설정되어 있으면
static을 사용합니다. - 클라이언트 ID와 클라이언트 비밀값이 모두 설정되어 있으면
service-user를 사용합니다. - 해당 인증 정보가 없으면 대화형 브라우저 로그인인
sso를 사용합니다.
Bearer 토큰과 클라이언트 ID 또는 클라이언트 비밀값을 함께 설정하면 오류가 발생합니다.
static은 전달한 토큰을 그대로 사용합니다. service-user는 클라이언트 인증 정보로 Multipass에서 토큰을 발급받습니다. sso는 브라우저로 Multipass에 로그인하며 YubiKey 같은 하드웨어 키를 지원합니다.
SSO 토큰은 프로필별로 캐시하고 사용자 조작 없이 갱신할 수 있습니다. 토큰이 필요한 명령을 실행할 때 유효한 캐시 토큰이 없으면 로그인 절차가 자동으로 시작됩니다. 브라우저 로그인을 수행할 수 없는 CI에서는 CI 제품 게시처럼 비대화형 인증 정보를 준비합니다.
제품 릴리스 작업
- 제품 릴리스 명령 전체: 초기화, 게시, 조회, 매니페스트 확인과 채널 소속을 관리합니다.
- Helm 차트 제품 초기화: 로컬 차트 또는 원격 차트로 Apollo 매니페스트를 만듭니다.
- 제품 릴리스 생성: 매니페스트 또는 제품 TGZ로 카탈로그에 릴리스 메타데이터를 등록합니다.