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/
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。