Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

실습: 매니페스트에 의존 관계 추가

새 Helm 릴리스가 다른 제품을 요구하면 생성된 제품 매니페스트에 의존 관계를 추가합니다. 이 실습은 Nginx의 다음 릴리스가 WordPress 15.x.x를 필요로 한다고 가정합니다. 실제 Nginx의 필수 의존성을 주장하는 예가 아니며, 격리된 실습용 제품에서 제약의 동작을 확인하기 위한 구성입니다.

CLI 인증

허브의 https://<yourHubUrl>/multipass/app/tokens에서 Create Token을 선택하고 구분할 이름과 짧은 만료일을 정한 뒤 Generate로 토큰을 만듭니다. 토큰은 안전한 위치에 보관합니다.

./apollo-cli configure를 실행하여 허브 URL과 Bearer 토큰을 설정합니다. Windows에서 실행 파일을 사용할 때는 apollo-cli.exe configure로 호출합니다. 다른 인증 방식을 이미 설정했다면 충돌하는 값을 정리해야 합니다. Enter는 기존 값을 유지하며 값 삭제에는 작은따옴표 두 개 ''를 입력합니다.

다음 조회로 연결 정보를 확인할 수 있습니다.

./apollo-cli environment list -o json

토큰을 잃어버렸으면 새로 발급하고 프로필을 갱신합니다. 토큰 생성과 프로필 입력의 세부 절차는 CLI 시작에 설명되어 있습니다.

새 릴리스 매니페스트 생성

실습 버전은 13.1.5에서 13.1.6으로 올린다고 가정합니다. 실제 차트 버전과 저장소 접근을 먼저 준비합니다. CHART_PATH에는 압축을 푼 해당 차트 디렉터리, CHART_REPOSITORY_URL에는 실제 배포 시 차트를 가져올 oci:// 형식의 저장소 URL을 지정합니다. 다음 제품 좌표는 앞에서 만든 예시 제품입니다.

./apollo-cli product-release helm-chart init \
  --chart-path "$CHART_PATH" \
  --repository-url "$CHART_REPOSITORY_URL" \
  --maven-coordinate "com.intro.helmcharts.bitnami:nginx-smith:13.1.6" \
  --output-dir "./release-13.1.6"

./release-13.1.6/manifest.yml을 편집합니다. CLI가 생성한 제품 유형, 형식 버전, 차트와 아티팩트 항목은 유지하고 기존 extensions 아래에 다음 목록을 추가합니다. 이미 product-dependencies가 있으면 목록에 항목을 합칩니다.

extensions:
  product-dependencies:
    - product-group: com.bitnami.repos
      product-name: wordpress
      minimum-version: 15.0.0
      maximum-version: 15.x.x
      optional: false

이 조각은 추가할 의존 관계 부분만 보여 줍니다. optional은 해당 목록 항목 안에 있어야 합니다. 제품 그룹과 이름은 실제 허브에 등록한 WordPress 제품에 맞추어야 합니다. 상하한은 포함 범위이며 후보 버전은 Apollo 버전 규칙으로 비교합니다.

등록

매니페스트와 차트 기본 구성값을 함께 등록합니다.

./apollo-cli product-release create \
  --manifest "./release-13.1.6/manifest.yml" \
  --default-config "$CHART_PATH/values.yaml"

차트에 values.schema.json이 있으면 --config-schema로 그 경로도 제공합니다. 매니페스트를 직접 편집할 필요가 없는 경우에는 제품 TGZ 생성 방식도 사용할 수 있습니다. TGZ 파일 이름이나 제품 유형 리터럴을 추측하여 고치지 말고 생성 도구의 결과를 사용합니다.

의존 관계와 업그레이드 확인

제품의 Releases에서 새 버전을 열면 Dependencies에 WordPress 범위가 표시됩니다. 환경이 그 버전을 구독 채널과 지원 범위에서 허용해도 WordPress가 없거나 버전이 맞지 않으면 업그레이드를 차단합니다.

실습에서는 호환되는 WordPress 릴리스를 생성하고 같은 환경에 설치하여 의존 조건을 충족합니다. 이후에도 유지보수 시간대 등 나머지 제약은 적용됩니다.