Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

제품 설정 재정의

설정 재정의(Config override)는 제품 릴리스에 포함된 기본값을 배포 개체별로 덮어쓰는 구성입니다. 같은 제품을 여러 환경에 설치하면서 환경에 따라 다른 값을 적용할 때 사용합니다.

편집 화면

배포 개체의 Config 탭에서 기본 제품 구성과 재정의 값을 함께 볼 수 있습니다.

구성 변경은 변경 요청을 거치며 Entity operator의 승인이 필요합니다. 이 과정에서 변경 이력과 검토 기록을 남기고 검증할 수 있습니다.

버전 범위별 블록

재정의는 제품의 버전 범위별 블록으로 정의합니다. 편집기의 각 탭이 한 블록에 대응하며, 탭의 키는 범위의 시작 버전과 관련됩니다. 머리글에서 실제 적용 범위를 확인합니다.

해당 릴리스에 적용할 재정의 블록이 없으면 Apollo는 그 릴리스를 배포하지 않습니다. 값을 바꿀 필요가 없어도 지원할 주 버전을 선언하는 빈 블록이 필요합니다.

"2.0.0":
  overrides: {}

이 구성은 주 버전 2의 릴리스를 지원합니다. 주 버전 1이나 3은 각각에 해당하는 블록이 없으므로 배포할 수 없습니다.

여러 범위의 예시

다음은 가상의 제품에서 debug-logging-enabled라는 구성 키를 사용하는 예입니다.

"2.6.0":
  overrides:
    debug-logging-enabled: true
"2.0.0":
  overrides: {}
"1.2.0":
  overrides: {}
릴리스 범위선택하는 블록
1.2.0 이상, 2.0.0 미만1.2.0
2.0.0 이상, 2.6.0 미만2.0.0
2.6.0 이상, 3.0.0 미만2.6.0

릴리스에 맞는 가장 구체적인 범위를 선택하며, 이전 블록을 모두 누적하지는 않습니다. 설정 해석은 업그레이드 계획을 추천하는 시점에 이루어지므로, 선택한 릴리스와 그에 맞는 구성이 함께 적용됩니다.

이 구조로 새 버전에 필요한 설정을 미리 준비하고, 이전 릴리스에 대한 지원을 제거하거나 새 주 버전의 설치를 제한할 수 있습니다. 회수에 따른 버전 변경에서도 지원 범위와 구성이 중요합니다.

화면에서 사용하는 기본 구성 버전

선택한 탭표시할 제품 기본 구성
현재 실행 버전이 포함된 범위실제로 실행 중인 제품 릴리스의 기본 구성
다른 버전 범위추적하는 개체 또는 환경의 릴리스 채널에서 해당 범위의 가장 높은 비회수 릴리스
해당 범위의 릴리스가 모두 회수됨범위에 맞는 가장 높은 릴리스의 기본 구성

기본 구성을 표시하기 위해 회수된 릴리스를 선택하는 것과 그 릴리스의 배포를 허용하는 것은 다릅니다.

현재 실행 버전을 알 수 없으면 표시할 기본 구성 버전을 직접 고르는 선택기가 나타납니다.

View overrides only를 켜면 제품 기본값을 제외하고 선언된 재정의만 볼 수 있습니다.

Helm 차트에 전달되는 값

Helm 차트에는 선택한 버전 범위의 overrides와 배포 환경 구성값, Apollo의 개체 및 제품 정보가 Helm values로 전달됩니다.

차트의 새 구성 키를 설계할 때는 소문자로 시작하는 camelCase가 권장됩니다. 기존 제품을 설정할 때는 차트가 실제로 정의한 키를 사용해야 합니다.

다음은 가상의 개체 재정의입니다.

"0.1.0":
  overrides:
    newerFeature: enabled

같은 환경의 공통 구성값을 다음과 같이 지정했다고 가정합니다.

domainName: example.com
numConnectionsAllowed: 5

제품 0.1.2를 설치할 때 전달되는 values의 형태는 다음과 같습니다. 제품, 환경, 비밀정보와 레지스트리 이름은 가상 예시입니다.

apollo:
  entity:
    id: aeid:example-environment:helm-chart:example-chart
  product:
    group: com.example
    name: example-chart
    version: 0.1.2
  environment:
    id: example-environment
    domainName: example.com
    numConnectionsAllowed: 5
  secrets:
    application-secret: application-secret-in-k8s
  defaultArtifactStoreURI: containers.example.com
  imagePullSecrets:
    - registry-pull-secret
newerFeature: enabled

Helm 에이전트가 apollo 블록을 주입합니다. 개체 재정의의 최상위 키는 Helm values의 최상위로 들어가고, 환경 공통 값은 apollo.environment 아래에 들어갑니다. apollo.secrets에는 차트에서 참조할 Kubernetes 비밀정보 이름의 연결이 포함됩니다.

차트 템플릿에서는 제품 이름을 {{ .Values.apollo.product.name }}처럼 참조할 수 있습니다. 환경 공통값의 관리 방법은 배포 환경 구성값에서 설명합니다.