如何在helm模板中使用冒号在属性名称中访问该属性

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

在helm模板中,我想写下面的内容:

{{- if empty .Values.conf.proxy_server.filter:authtoken.auth_uri -}}
{{- $_ := tuple "identity" "internal" "api" . | include "helm-toolkit.endpoints.keystone_endpoint_uri_lookup"| set .Values.conf.proxy_server.filter:authtoken "auth_uri" -}}
{{- end -}}

由于filter:authtoken中有一个冒号,我得到如下错误:

Error: parse error in "swift/templates/configmap-etc.yaml": template: swift/templates/configmap-etc.yaml:20: expected :=

values.yaml中,摘录如下:

conf:
  proxy_server:
    filter:authtoken:
      paste.filter_factory: keystonemiddleware.auth_token:filter_factory
      auth_type: password
      ......

那么无论如何要解决这个问题?

kubernetes-helm
1个回答
0
投票

这不是有效的YAML;但YAML是YAML,有多种方法可以“拼写”东西。 (所有有效的JSON都是有效的YAML。)在其他选项中,您可以在值文件中引用键:

conf:
  proxy_server:
    "filter:authtoken":
      paste.filter_factory: "keystonemiddleware.auth_token:filter_factory"
      auth_type: password
      ......

(我也用冒号引用了这个值......以防它被误解为映射。)

当你去阅读它时,你可能不得不使用Go文本/模板index函数来取出值,因为它看起来不像普通的名字。

{{- if empty (index .Values.conf.proxy_server "filter:authtoken").auth_uri -}}

因为,作为图表作者,您可以在values.yaml文件中控制您要查找的内容,因此可能更容易选择更中性的标点符号,如句点或下划线,并避免所有这些。

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