Helm-Charts의 기본 구성 및 배포방식에 대해 간단히 알아 봅시다.
flow
- 서비스별 공통 Templates 생성
- 각 배포 환경 ( dev,qa.)에 맞는 values.yaml 설정
- ex) image & tag 를 환경별로 다르게 설정 & 배포 가능 ( dev : 1.11 / qa : 1.10 /. prod : 1.09 )
- values.yaml + Templates 는 동일 Github Repository 에 존재. (values.yaml + Templates 구조 )

Helm 생성 (예시)
- helm 생성 및 templates 폴더 정리

create 명령 후 dodo-helm-tutorial이라는 이름의 폴더 생성
각각 파일들은 아래와 같은 역할
- Chart.yaml: Chart의 정보를 정의하는 파일로 Chart의 이름, 버전 등을 정의.
- charts: dependency chart 파일들이 해당 디렉토리 아래에 생성
- template: k8s 리소스 템플릿이 보관되는 디렉토리.
- NOTES.txt: Chart를 설치 후 출력되는 내용을 정의.
- *.yaml: 클러스터에 띄울 리소스 템플릿 파일들 (서비스에 사용 되는 yaml 파일들 )
- values.yaml: 템플릿에 사용될 변수들을 모아놓은 파일.
서비스용(공통) yaml 파일 등록
templates 폴더에 사용하지 않을 파일들을 삭제하고 서비스용 리소스 파일들을 복사 할 것.

환경별 설정 분리
- Built-in Objects 설정
- templates/*.yaml 파일에서는 Built-in Objects에 접근하여 원하는 값을 사용할 수 있음.
- 예로 template 파일에 {{ .Values.name }} 과 같은 형태로 정의하면 values.yaml 파일(혹은 커맨드의 인자로 넘어온 온 값)에 있는 name이라는 key를 가진 value로 치환

참고