舵图中的条件如何使用

时间:2020-05-13 07:16:16

标签: kubernetes-helm go-templates

我在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”而不是整行进行搜索。

请帮助我如何检查是否存在条件线。

1 个答案:

答案 0 :(得分:1)

我还没有完全理解您的问题,所以这里有3种选择。

要检查两个字符串是否相等,Go内置了模板函数eq,下面是使用示例:

{{ if eq "line" "line" }}
> true

如果要检查行是否包含 hostssl字符串。 Helm具有sprig作为依赖项-它是提供附加模板功能的模块。这些功能之一是contains,它检查字符串是否包含在另一个函数中:

{{ if contains "cat" "catch" }}
> true

如果您要检查字符串是否刚开始具有hostssl,则可以使用sprig-hasPrefix提供的另一个函数:

{{ if hasPrefix "cat" "catch" }}
> true
sprig提供的

Here is a list of all string functions。如果以上选项均不能满足您的要求,则可以使用正则表达式进行匹配。