템플릿 디버깅
렌더링된 템플릿이 쿠버네티스 API 서버로 전송될 때 문서 형식 이외의 이유로 YAML 파일들이 거부될 수 있기 때문에, 템플릿 디버깅은 다소 까다로울 수 있다.
디버깅에 도움이 되는 몇 가지 명령어들이 있다.
helm lint는 내 차트가 모범 사례에 맞는지 검증하는 믿을만한 도구이다.helm template --debug는 차트 템플릿을 로컬에서 테스트 렌더링한다.helm install --dry-run --debug도 차트를 로컬에서 렌더링하지만, 실제로 설치하지는 않는다. 클러스터에서 충돌하는 리소스가 이미 실행 중인지도 확인한다.--dry-run=server를 설정하면 차트의lookup함수도 서버를 대상으로 실행한다.helm get manifest: 서버에 어떤 템플릿들이 설치되어 있는지 알아 볼 수 있는 유용한 방법이다.
내 YAML이 파싱에 실패했지만, 무엇이 생성되는지를 확인해보고 싶을 때,
템플릿에서 문제가 되는 섹션을 주석처리하고 helm install --dry-run --debug 를 다시 실행해보면
YAML 을 쉽게 확인해 볼 수 있다.
apiVersion: v2
# some: problem section
# {{ .Values.foo | quote }}
윗쪽 내용은 렌더링되고 주석은 그대로 반환된다.
apiVersion: v2
# some: problem section
# "bar"
이렇게 하면 YAML 파싱 오류로 인한 차단 없이 생성되는 내용을 빠르게 확인해 볼 수 있다.