头盔小枝模板管 and/or 否定
Helm sprig template pipe and/or negatate
我正在尝试使用以下代码在 helm 中创建我的配置映射:
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") }},
在Gotext/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)) }}
我正在尝试使用以下代码在 helm 中创建我的配置映射:
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") }},
在Gotext/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)) }}