helm template --debug
在本地进行 chart template 文件的渲染测试
helm install --dry-run --debug
当YAML 文件render 失败,则能够将失败的局部正文掉,而后从新用helm install --dry-run --debug
则正文局部也会被render 进去,就能够看看输入是什么,为什么会失败.
这个是因为 helm template engine 其实不能辨认YAML的正文语法,所以template engine 会持续render {{ }}
的内容。
又因为正文掉了render 进去问题的内容,所以不好被YAML 语法校验出错。
apiVersion: v2# some: problem section# {{ .Values.foo | quote }}-----------# 正文局部被render 进去了apiVersion: v2# some: problem section# "bar"
fail
function
fail
function 会在执行render 时将谬误的内容打印出console 中
{{- fail (toYaml $.Values) }}# ==> "key1: val1# key2: val2# ...."
能够用工夫来进行排序debug
{{- range (list "val1" "val2") }} {{- $_ := set $.Values.global (toString now) (toYaml .) }}{{- end }}{{ fail (toYaml $.Values.global) }}# ==> "2020-12-12 19:52:10.750813319 +0300 MSK m=+0.202723745: |# val1# 2020-12-12 19:52:10.750883773 +0300 MSK m=+0.202794200: |# val2"
或者将谬误的内容先长期存起来再打印进去
{{- $_ := set $.Values.global "value1" $val1 }}{{- $_ := set $.Values.global "value2" $val2 }}{{ fail (toYaml $.Values.global) }}# ==> "value1: val1# value2: val2"
References
https://blog.palark.com/advanced-helm-templating/
https://helm.sh/docs/chart_template_guide/debugging/