如何替换 values.yaml 中的布尔值

How to substitute Boolean value from values.yaml

在我下面的一些示例中,我看到,对于字符串值,我可以这样做:

{{- with .Values.cookieDomain }}
- --cookieDomain={{- toString . }}
{{- end }}

有了这个,如果我有,例如cookieDomain: .mydomain.comvalues.yaml中,模板得到正确的值。

如何对布尔值进行same/similar?
例如,如果我有这个:proxyPass: true in values.yaml,我如何在模板中解释它,因为没有 toBool 函数。

在您的示例中,函数 toString 实际上没有实际意义,如果 cookieDoman 中包含的值已经是一个字符串,它将什么都不做。

您在 with .Values.cookieDoman 中必须了解的是,上下文现在已从 . 变量定义的根更改为 .Values.cookieDoman.

有点像在计算机中更改目录,如果我 cd /tmp,然后 ./some_file/tmp/some_file 中查找文件。现在,如果我 cd /etc,相同的命令 ./some_file,现在将查找文件 /etc/some_file

This controls variable scoping. Recall that . is a reference to the current scope. So .Values tells the template to find the Values object in the current scope.

来源:https://helm.sh/docs/chart_template_guide/control_structures/#modifying-scope-using-with

因此,在您的示例中,已经足够了

flags:
{{- with .Values.cookieDomain }}
  - --cookieDomain={{- . }}
{{- end }}

这将呈现在

flags:
  - --cookieDomain=.mydomain.com

所以,如果你有一个布尔值,它是完全一样的:

flags:
{{- with .Values.proxyPass }}
  - --proxyPass={{- . }}
{{- end }}

将给予:

flags:
  - --proxyPass=true