helm 无法初始化变量

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

我正在使用 helm。在此我想在注释中创建清单文件,如下语法

        vault.hashicorp.com/agent-inject-secret-sourcedetails: |
          {{ with secret  /dmw-mysql/kv2/postgres/semarchy/abc.postgres.database.azure.com   -}}
          {{ .Data.data.semarchy_dloc1 }}
          {{- end }}

我使用了 helm 代码,但它没有将第二行变量评估为值。不确定哪里做错了。 头盔模板演示测试


          {{ printf "{{ with secret "}} {{ .Values.vault.path }}/{{ .Values.serversdetails.dbsourcedetails.hostname }}  {{ ` -}} 
          {{ .Data.data.{{ .Values.serversdetails.dbsourcedetails.pgusername }} }}
          {{- end }} `}}

但是这是打印输出。当我使用时,它没有评估第二行变量的值

        vault.hashicorp.com/agent-inject-secret-sourcedetails: |
          {{ with secret  /dmw-mysql/kv2/postgres/semarchy/abc.postgres.database.azure.com  -}}
          {{  .Data.data.{{ .Values.serversdetails.dbsourcedetails.hostname }}   }}
          {{- end }}

kubernetes-helm
1个回答
0
投票

如果您正在编写需要包含 Go 模板构造或其他特殊

{{
字符序列的 Helm 模板代码,我建议您在需要时使用特定语法

{{ "{{" }}

您的文件混合了

printf
调用和反引号转义。您希望 Helm 展开
{{ .Values... }}
表达式,但它位于反引号引用的字符串内,因此 Helm 不会对其求值。

获取所需的输出,替换开双花括号,并插入一个 Helm 表达式,我会这样写

vault.hashicorp.com/agent-inject-secret-sourcedetails: |
  {{ "{{" }} with secret  /dmw-mysql/kv2/postgres/semarchy/abc.postgres.database.azure.com   -}}
  {{ "{{" }}.Data.data.{{ .Values.serversdetails.dbsourcedetails.hostname }}}}
  {{ "{{" }}- end }}

仔细观察,看看哪些部分在

{{ ... }}
块中,哪些部分不在;这些是 Helm 将评估和替换的内容。

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