[英]How to use if condition in helm chart
我在 values.yaml 中有以下值
pg_hba:
- hostssl all all 0.0.0.0/0 md5
- host all all 0.0.0.0/0 md5
要求是检查hostssl
行是否存在,如果是,则应将 go 放入 if 循环并执行某些操作。
我尝试使用{{ if has "hostssl".Values.pg_hba }}
但它只搜索确切的字符串 "hostssll" 而不是整行。
请帮助我如何检查 if 条件下的整个行。
我还没有完全理解你的问题,所以这里有 3 个选项。
要检查两个字符串是否相等, Go 内置了模板 function eq
,这里是使用示例:
{{ if eq "line" "line" }}
> true
如果要检查行是否包含hostssl
字符串。 Helm 具有sprig
作为它的依赖项——它是提供额外模板功能的模块。 其中一个函数是contains
,它检查字符串是否包含在另一个函数中:
{{ if contains "cat" "catch" }}
> true
如果你想检查,如果字符串在它开始时正好有hostssl
,你可以使用另一个 function,由sprig
-- hasPrefix
提供:
{{ if hasPrefix "cat" "catch" }}
> true
这是sprig
提供的所有字符串函数的列表。 如果以上选项都不能满足您的要求,您可以使用正则表达式 function 进行匹配。
{{- if eq "minikube" $.Values.global.cluster_type }}
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
kubernetes.io/ingress.class: nginx
{{- end }}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.