mychart/
Chart.yaml **# 차트에 대한 명세를 가진 파일**
values.yaml **# 차트에 대한 기본 환경설정 값을 가진 파일**
charts/ # 종속된 차트들을 포함하는 디렉토리
templates/ # **values와 결합될 때, 쿠버네티스 manifest 파일들이 생성될 디렉터리**
..
containers:
- env:
{{- range $k, $v := .Values.env }}
- name: {{ $k }}
value: {{ quote $v }}
{{- end }}
containers:
- env:
- name: AMQPLIB_HOST
value: "x.x.x.x"
- name: AMQPLIB_PASSWORD
value: "mypasswod"
- name: AMQPLIB_PORT
value: "1234"
...
{{ toYaml $.Values.ingress.annotations | indent 4 }}
# 함수 뒤에 인자를 전달할 수도 있고(toYaml),
# 파이프라인 앞에 인자가 오도록 하여 함수에 인자를 전달할 수도(indent) 있음
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/cors-allow-methods: PUT, GET, POST, OPTIONS
nginx.ingress.kubernetes.io/cors-allow-origin: <https://mydomain.com>
nginx.ingress.kubernetes.io/proxy-body-size: 0m
nginx.ingress.kubernetes.io/proxy-connect-timeout: "300"
nginx.ingress.kubernetes.io/proxy-read-timeout: "300"
...
Helm이 자체적으로 내장하고 있는 오브젝트 (값, 함수 그자체 혹은 이들을 포함하고 있는 오브젝트)
~/code-cat/$ helm template --debug adcd > ./abcd/debug.txt
install.go:192: [debug] Original chart version: ""
install.go:209: [debug] CHART PATH: /home/vagrant/code-cat/abcd
- 들여쓰기 등으로 인한 YAML PARSE ERROR를 확인해볼 수 있다.
AML parse error (에러가 발생한 위치를 반환함)
- helm install --dry-run --debug : 서버에서 렌더링
- helm get manifest : 서버에 설치된 템플릿 확인
- helm lint : 차트가 모범사례에 맞는지 검증