仅当地图中存在条目时才在 helm 模板中创建条目

Create entry in helm template only if an entry exists in a map

假设这张地图存在于我的 values.yaml

something:
   somethingElse:
       variable1: value1
       variable2: value2
       variable3: value3

我想为 kubernetes Secret 资源创建一个 helm 模板(虽然这不是最重要的)当且仅当说键 - 值对 variable2: value2 存在. (我实际上只是想匹配 variable2 的存在,而不是 value2 的值)

我知道如何range包含所有条目

{{- range $name, $value := .Values.something.somethingElse }}
{{indent 4 $name }}: {{ $value }}
{{- end }}

但在伪代码中,我想要的是

if variable2 in .Values.something.somethingElse

variable2: value2

使用 helm 模板语言是否可行?

Helm 包含流程控制,您可以创建 if / else 条件块,对于您的情况,此示例可能会有所帮助。

在你的values.yaml

foo:
  enabled: true

因此,在您的模板中:

{{- if .Values.foo.enabled }}
 --- TEMPLATE CODE --
{{- end }}

参考:https://helm.sh/docs/chart_template_guide/control_structures/

你可以这样做:

{{if (index .Values.something.somethingElse "variable2")}}