我在values.yaml中的数值如下。
pg_hba:
- hostssl all all 0.0.0.0/0 md5
- host all all 0.0.0.0/0 md5
需要检查的是 hostssl
行存在,如果是,它应该进入if循环并做一些事情。
我试着用 {{ if has "hostssl" .Values.pg_hba }}
但它只检测到确切的字符串 "hostssll",而不是整个行。
请帮助我如何在if条件下检查入口行。
我还没有完全理解你的问题,所以这里有3个选项。
要检查两个字符串是否相等,Go有内置的模板函数。eq
这里是使用实例。
{{ if eq "line" "line" }}
> true
如果你想检查是否行 包含 hostssl
弦。赫尔姆已经 sprig
作为它的依赖--它的模块提供了额外的模板功能。其中一个函数是 contains
,检查字符串是否包含在另一个字符串中。
{{ if contains "cat" "catch" }}
> true
如果你想检查,如果字符串有 hostssl
恰恰是在它开始的时候,你可以使用另一个功能,由 sprig
-- hasPrefix
:
{{ if hasPrefix "cat" "catch" }}
> true
以下是所有字符串函数的列表 该 sprig
优惠。如果以上选项都不能满足您的要求,您可以使用regex函数进行匹配。