Helm 模板检查布尔值

Helm Template check boolean value

我正在尝试检查某个值是否为真,但对于我尝试的每个变体,始终显示以下错误:

_helpers.tpl:96:19: executing "mongo_databasename" at <.Values.mongo.enabled>: can't evaluate field Values in type string

我的 _helpers.tpl 文件的一部分:

{{/*
Get mongodb connection string
*/}}
{{- define "mongo_databasename" -}}
{{-  if eq (.Values.mongo.enabled | toString) "true" }}
{{-  .Values.mongo.databaseName }}
{{- else }}
{{-  .Values.environmentVars.mongo.databaseName }}
{{- end -}}
{{- end -}}

我的 values.yaml 文件的相应部分:

mongo:
  enabled:
  username: user

我试过很多方法来检查 if 条件,比如上面的那个:

{{-  if .Values.mongo.enabled  }}

可能是include作用域造成的

模板看起来不错。

我试过如下

_helper.tpl

{{/*
Get mongodb connection string
*/}}
{{- define "mongo_databasename" -}}
{{- if .Values.mongo.enabled }}
{{- .Values.mongo.databaseName }}
{{- else }}
{{- .Values.environmentVars.mongo.databaseName }}
{{- end -}}
{{- end -}}

values.yaml

mongo:
  enabled:
  username: user
  databaseName: test

environmentVars:
  mongo:
    databaseName: envvar

templates/configmap.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ include "test.fullname" . }}
data:
  test: {{- include "mongo_databasename" .}}
  test2:
    {{- with .Values.mongo }}
    {{- include "mongo_databasename" $ }}
    {{- end }}

输出

apiVersion: v1
kind: ConfigMap
metadata:
  name: test-v7
data:
  test:envvar
  test2:envvar

注意在templates/configmap.yaml include语句末尾传入的作用域(. | $)。