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

问题描述 投票:0回答:2

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

{{- if eq .Values.isCar true }} OR {{- if eq .Values.isBus true }}
# do something
{{- end }}

我知道我们可以进行一次 if 检查。但我如何检查多个条件呢?是否有一些相当于 OR 和 AND 的运算符?

kubernetes-helm
2个回答
227
投票

有关操作员的 Helm 文档中所示:

对于模板,运算符(

eq

ne
lt
gt
and
or
 等)均作为函数实现。在管道中,操作可以用括号分组(
(
)
)。

这意味着你可以使用

{{- if or (eq .Values.isCar true) (eq .Values.isBus true) }}
此外,如 

if/else 结构中所述:

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

    布尔值 false
  • 数字零
  • 空字符串
  • nil(空或 null)
  • 一个空集合(映射、切片、元组、字典、数组)
在所有其他条件下,该条件为真。

如果您的属性(

isCar

isBus
)是布尔值,则可以跳过相等检查:

{{- if or .Values.isCar .Values.isBus }}
    

3
投票
请注意,也可以使用

or

 代替 
default
,如下所示:

{{ or .Values.someSetting "default_value" }}
如果设置或设置为,这将呈现为 

.Values.someSetting

"default_value"
否则。

© www.soinside.com 2019 - 2024. All rights reserved.