본문으로 건너뛰기
버전: 3.19.0

템플릿 디버깅

렌더링된 템플릿이 쿠버네티스 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 파싱 오류로 인한 차단 없이 생성되는 내용을 빠르게 확인해 볼 수 있다.