我们可以在Helm yaml文件中使用OR运算符吗?

Jam*_*aac 13 kubernetes-helm

我可以在Helm yamls中做这样的事情:

{{- if eq .Values.isCar true }} OR {{- if eq .Values.isBus true }}
# do something
{{- end }}
Run Code Online (Sandbox Code Playgroud)

我知道如果检查我们可以做一个.但是我如何检查多种情况?是否有一些运算符等效于OR和AND?

小智 33

运营商Helm文档中所示:

对于模板,运营商(eq,ne,lt,gt,and,or等等)都实现的功能.在管道中,操作可以用括号((,和))分组.

这意味着你可以使用

{{- if or (eq .Values.isCar true) (eq .Values.isBus true) }}
Run Code Online (Sandbox Code Playgroud)

此外,如if/else结构中所述:

如果值为以下值,则管道被评估为false:

  • 布尔值false
  • 数字零
  • 一个空字符串
  • 一个零(空或空)
  • 一个空集合(map,slice,tuple,dict,array)

在所有其他条件下,条件为真.

如果您的属性(isCarisBus)是布尔值,则可以跳过相同的检查:

{{- if or .Values.isCar .Values.isBus }}
Run Code Online (Sandbox Code Playgroud)

  • 超过 2 个参数的条件怎么样?EX-{{-if and (a) (b) (c) }} EX2-{{-if eq (a) (b) (c) }} 问题:是否检查所有成员的相等性? (2认同)