繁体   English   中英

如何在 helm 图表中使用 if 条件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM