HELM:如何在 if-else 条件下将字符串转换为小写/大写?

SHC*_*SHC 9 go kubernetes kubernetes-helm

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

值.yaml

mode: start
Run Code Online (Sandbox Code Playgroud)

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

mode: STart or START or sTart
Run Code Online (Sandbox Code Playgroud)

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

command: {{ if eq .Values.mode "start" }} do this {{ esle }} do that {{ end }}
Run Code Online (Sandbox Code Playgroud)

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

1.

{{ if eq .Values.mode | lower "start" }} do this {{ esle }} do that {{ end }}
Run Code Online (Sandbox Code Playgroud)
{{ if eq lower .Values.mode "start" }} do this {{ esle }} do that {{ end }}
Run Code Online (Sandbox Code Playgroud)

以上两种方法都出错了。

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

icz*_*cza 15

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

lower只需用括号将函数调用分组即可:

{{ if eq "start" (lower .Values.mode) }} do this {{ else }} do that {{ end }}
Run Code Online (Sandbox Code Playgroud)