如果values.yaml 文件中不存在属性,如何返回默认 false?

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

yaml 文件。 我有一个在全局下定义的值如下

global:
  logging:
    log4j:
     enabled: true

我还有辅助功能

{{- define "helm-basic-template.logging-enabled" -}}
{{ .Values.global.logging.log4j.enabled | default "false" }}
{{- end -}}

属性 global.logging.log4j.enabled 可能不存在,在这种情况下,我希望辅助函数返回 false,否则返回属性的值。 但是它没有按我的预期工作。知道我的功能有什么问题吗?或者有其他更好的方法来重写它? 谢谢你

go kubernetes-helm go-templates helm3
1个回答
0
投票

为了避免变量未定义,这里需要进行额外的检查。

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

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

  • 布尔值 false
  • 数字零
  • 空字符串
  • nil(空或 null)
  • 一个空集合(映射、切片、元组、字典、数组)
{{- if .Values.global }}
{{- if .Values.global.logging }}
{{- if .Values.global.logging.log4j }}
{{- if .Values.global.logging.log4j.enabled }}
apiVersion: v1
kind: ConfigMap
metadata:
  name: logging-cm
data:
  conf.json: |
    xxxxx
...
{{- end }}
{{- end }}
{{- end }}
{{- end }}
© www.soinside.com 2019 - 2024. All rights reserved.