Helm 中的默认值

问题描述 投票:0回答:2

我有一个 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

kubernetes-helm
2个回答
1
投票

为了避免

telemetry
为空,需要添加额外的判断。

根据helm文档,当对象为空时,if语句判断返回false。

如果值为以下情况,则管道被评估为 false:

  • 布尔值 false
  • 数字零
  • 空字符串
  • nil(空或 null)
  • 空集合(映射、切片、元组、字典、数组)
{{ if .Values.telemetry }}
{{ if .Values.telemetry.create }}
apiVersion: v1
kind: ConfigMap
metadata:
  name: telemetry-allowlist
data:
  metrics.json: |
    {
...

0
投票

您可以在默认

telemetry.create
文件中将
false
设置为
values.yaml

...
telemetry:
  create: false
...

因此,即使用户错过设置

telemetry.create
值,舵也会从默认的
values.yaml
文件渲染,并且您不会收到 nil 指针错误。

© www.soinside.com 2019 - 2024. All rights reserved.