【问题标题】:HELM: How to convert a string into lower/upper case inside if-else condition?HELM:如何在 if-else 条件下将字符串转换为小写/大写?
【发布时间】:2021-06-21 09:50:50
【问题描述】:

用例:我有 values.yaml,其中有一个字段 mode

值.yaml

mode: start

或者用户可以通过以下任何一种方式为mode 字段输入一个值:

mode: STart or START or sTart

现在,我有一个使用 if 条件的文件,如下所示:

command: {{ if eq .Values.mode "start" }} do this {{ esle }} do that {{ end }}

现在,我的挑战是如何在进行比较之前将“.Values.mode”转换为较低的字母。我尝试了以下提到的方法:

1.

{{ if eq .Values.mode | lower "start" }} do this {{ esle }} do that {{ end }}
{{ if eq lower .Values.mode "start" }} do this {{ esle }} do that {{ end }}

以上两种方法都出错了。

注意:我们使用的是第三方工具,因此 JSON 模式检查对我没有帮助。

【问题讨论】:

    标签: go kubernetes kubernetes-helm


    【解决方案1】:

    lower 是模板中交给你的函数。它有一个返回值,您希望将其与另一个值进行比较。

    简单地将lower的函数调用用括号分组:

    {{ if eq "start" (lower .Values.mode) }} do this {{ else }} do that {{ end }}
    

    【讨论】:

    • 感谢您的回答,我正在使用 helm 3,但它在那里不起作用..它进入了其他部分。 :(
    • @SHC 然后看起来你的模式不是你想象的那样。尝试打印它的值,寻找前导和尾随空格...
    • 感谢您的建议。我打印了值,没有空格。当我为具有较低功能的键分配一个值时,它可以在前(模式 = {{ .Values.mode | lower }})工作。但在 if 条件部分它没有生效。
    猜你喜欢
    • 2021-06-11
    • 2014-06-05
    • 1970-01-01
    • 2018-09-22
    • 2023-01-13
    • 2010-11-04
    • 2010-12-29
    • 2022-01-19
    • 1970-01-01
    相关资源
    最近更新 更多