如何使用舵机图中的if条件

问题描述 投票:0回答:1

我在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条件下检查入口行。

go kubernetes kubernetes-helm
1个回答
1
投票

我还没有完全理解你的问题,所以这里有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函数进行匹配。

© www.soinside.com 2019 - 2024. All rights reserved.