我有一个 configmap yaml,如果特定值设置为 true,则需要执行该 configmap yaml。 这是配置映射 yaml def
{{ if (.Values.telemetry.create) }}
apiVersion: v1
kind: ConfigMap
metadata:
name: telemetry-allowlist
data:
metrics.json: |
{
...
现在在某些情况下用户忘记添加此值
.Values.telemetry.create
这会导致整个设置失败并出现错误
at <.Values.telemetry.create>: nil pointer evaluating interface {}.create
想知道如何添加默认值,以便在该值不存在时默认为 false
为了避免
telemetry
为空,需要添加额外的判断。
根据helm文档,当对象为空时,if语句判断返回false。
如果值为以下情况,则管道被评估为 false:
{{ if .Values.telemetry }}
{{ if .Values.telemetry.create }}
apiVersion: v1
kind: ConfigMap
metadata:
name: telemetry-allowlist
data:
metrics.json: |
{
...
您可以在默认
telemetry.create
文件中将 false
设置为 values.yaml
。
...
telemetry:
create: false
...
因此,即使用户错过设置
telemetry.create
值,舵也会从默认的 values.yaml
文件渲染,并且您不会收到 nil 指针错误。