0

我正在尝试将其添加{{ .Release.Namespace }}到一个字符串中,但它在字面上被解析为只是{{ .Release.Namespace }}而不是命名空间本身。我试过使用引号 ( ") 和 using tpl,但没有任何效果。我正在使用 Helm v3.5.4。

在上下文中:

config:
  config-proxy: |-
    _front__tls
      # BEGIN::Redirect to openBalena VPN
      acl is_ssl req.ssl_ver 2:3.4
      use_backend {{ .Release.Namespace }}_openbalena-vpn_443 if !is_ssl
      # END::Redirect to openBalena VPN

Wholevalues.yaml可以在这里找到,上面的代码片段也可以在这里找到
我正在使用HAProxy Ingress Helm Chart

在某些部分,如您在 中看到的values.yaml,也在使用{{ .Release.Namespace }},但这些都被解析得很好(例如 TCP 选项)。

提前致谢!

4

2 回答 2

1

如果你有config-proxy地方<chart_root_dir>/files/config-proxy并使用 tpl 函数将它加载到你的模板中,它应该可以工作,如下所示:

config:
{{ tpl (.Files.Glob "files/config-proxy").AsConfig .  | indent 2 }}

不确定您的配置键在模板中的嵌套程度,因此您可以从示例中调整缩进级别。

于 2021-04-22T09:37:48.993 回答
0

在对它进行了更多调查并在@Minato 和@mdaniel 的帮助下(谢谢),我得出的结论是,单独使用是不可能的values.yaml。我在图表中创建了一个 PR。

在 PR 之前,这些值是这样解析的:

{{- toYaml .Values.controller.config | nindent 2 }}

我已将其更改为:

{{- tpl (toYaml .Values.controller.config) . | nindent 2 }}

现在它解析{{ .Release.Namespace }}罚款!

于 2021-04-23T11:08:42.857 回答