我正在使用 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 }}
如果您正在编写需要包含 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 将评估和替换的内容。