【问题标题】:How to substitute Boolean value from values.yaml如何从 values.yaml 中替换布尔值
【发布时间】:2022-08-16 00:34:35
【问题描述】:

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

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

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

如何对布尔值执行相同/相似的操作?
例如,如果我有这个:proxyPass: true in值.yaml,我如何在模板中解释它,因为没有toBool 函数。

    标签: kubernetes-helm go-templates


    【解决方案1】:

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

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

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

    这控制变量范围。回想一下. 是对当前范围.所以.Values 告诉模板在当前范围内找到Values 对象。

    来源: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
    

    【讨论】:

      猜你喜欢
      • 2020-08-24
      • 1970-01-01
      • 2021-09-27
      • 2012-07-21
      • 2015-08-28
      • 2014-02-01
      • 1970-01-01
      • 2021-08-03
      • 1970-01-01
      相关资源
      最近更新 更多