头盔小枝模板管和/或协商

时间:2020-08-11 11:17:14

标签: go kubernetes kubernetes-helm sprig-template-functions

我正在尝试使用以下代码在掌舵中创建配置映射:

 api: "{{ .Values.global.api }}",
 demo: {{ .Values.global.api | contains "demo" }},
 other: ....,

如果Values.global.api不包含“ demo”和“ prod”,我想将other设置为true。 像

other: {{ .Values.global.api | NOT (contains "demo" AND contains "prod") }},

1 个答案:

答案 0 :(得分:3)

在Go text/template语言中,管道和函数调用是等效的,您可以在任一方向上自由替换

{{ x | f a b }}
{{ f a b (x) }}

您不能按照此处的建议在多个函数之间分配参数;您需要重复该操作(或将其放入局部变量中)。通过查看Sprig函数的目录,我不确定是否有任何特定的函数可以满足您的需求,从而简化此过程。您必须清楚地说明:

demo: {{ not (and (contains "demo" .Values.global.api) (contains "prod" .Values.global.api)) }}

正如我在括号内所建议的那样,您可以使用局部变量将其略微缩短:

{{- $api := .Values.global.api }}
api: {{ quote $api }}
demo: {{ not (and (contains "demo" $api) (contains "prod" $api)) }}
相关问题