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/