배포 환경 구성값
배포 환경 구성값(Environment Config)은 여러 배포 개체에서 공통으로 사용할 값을 배포 환경 수준에 정의하는 기능입니다. 클라우드 제공자와 리전처럼 배포 환경 자체의 특성이나, 여러 배포 개체가 참조할 DNS 이름에 적합합니다.
소수의 배포 개체에서만 사용하는 값이라면 개별 배포 개체의 설정 재정의(Config override)를 사용하는 편이 적합합니다. 배포 개체 목록이나 릴리스 채널 등의 운영 정책을 담는 배포 환경 설정과, 소프트웨어에 전달할 공통 값을 담는 Environment Config도 구분해야 합니다.
구성값 입력
배포 환경 홈의 Config 탭에서 값을 편집합니다. 내용은 유효한 YAML이어야 하며, 키에는 하이픈, 마침표나 공백을 사용할 수 없습니다.
다음은 가상의 배포 환경에서 도메인 이름, 연결 수, 일정 제약 사용 여부, 가용 영역과 기본 네임스페이스를 정의한 예시입니다.
domainName: my-domain-name.com
numConnectionsAllowed: 5
enableSchedulingConstraints: true
availabilityZones:
- availability-zone-1
- availability-zone-2
namespaces:
defaultNamespace:
name: myNamespace
키 이름의 제약과 값의 내용은 구분합니다. 위 예시의 domainName은 마침표와 하이픈이 없는 키이며, 그 값인 my-domain-name.com에는 두 문자가 포함되어 있습니다. 숫자, 불리언, 목록과 중첩된 매핑도 YAML 값으로 표현할 수 있습니다.
변경 요청과 적용
구성값 편집은 변경 요청으로 제출되며, 배포 환경에 설정된 승인 정책을 따릅니다. 변경 요청은 설정 변경의 이력과 승인 기록을 남깁니다.
변경이 승인되면 Apollo는 이 배포 환경에서 Environment Config를 사용하는 각 배포 개체의 구성을 갱신할 변경 계획을 발행합니다. 공통 값을 바꾸는 작업은 이를 참조하는 여러 배포 개체에 영향을 줄 수 있으므로, 변경할 키를 어느 배포 개체가 사용하는지 확인해야 합니다.
Helm 차트 템플릿에서 참조하기
Helm의 기본 Values 객체에서 다음 경로로 배포 환경 구성값을 참조합니다. <configKey>를 구성 YAML의 키로 바꿉니다.
{{ .Values.apollo.environment.<configKey> }}
가령 가상의 구성값에 다음 항목이 있다고 가정하겠습니다.
myKey: myValue
차트 템플릿에서는 다음과 같이 참조합니다.
{{ .Values.apollo.environment.myKey }}
Helm이 템플릿을 렌더링하면 이 참조는 myValue로 바뀝니다.
배포 개체의 설정 재정의에서 참조하기
배포 개체의 설정 재정의 안에서는 preprocess 지시문을 사용합니다.
{{ preprocess .Values.apollo.environment.<configKey> }}
같은 myKey: myValue 항목을 참조하는 표현은 다음과 같습니다.
{{ preprocess .Values.apollo.environment.myKey }}
Values가 렌더링될 때 이 표현도 myValue로 바뀝니다. 차트 템플릿에서 직접 값을 읽는 표현과 설정 재정의에서 사용하는 preprocess 표현을 각각의 입력 위치에 맞추어 사용합니다.