乐趣区

关于helm3:如何在helm-template-中debug

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/

退出移动版