【发布时间】:2020-04-11 09:40:54
【问题描述】:
我正在编写一个 Helm 3 库图表,并希望创建一个具有默认值的 YAML。但是,当尝试为不存在的 nested 键设置默认值时,Helm 会失败并显示以下错误消息:
nil pointer evaluating interface {}
假设我的 Kubernetes 对象中有这个 sn-p:
{{- if eq (.Values.deployment.scale.type | default "static") "static" }}
replicas: {{ default "3" .Values.deployment.scale.replicas }}
{{- end }}
如果定义了.Values.deployment.scale,即使没有定义.Values.deployment.scale.replicas,模板也能正常渲染,replicas 的值为3。
但是,如果未定义父键之一,Helm 将失败并显示上述错误消息。例如,如果values.yaml 如下:
# values.yaml
deployment:
not_scale: {}
渲染将失败:nil pointer evaluating interface {}.scale
如何为嵌套键设置默认值,即使其父键未定义?
【问题讨论】:
标签: go kubernetes-helm sprig-template-functions