我有两个舵图模板。
{{- define "helpers.config.tpl" -}}
debug: "true"
db:
app:
dialect: "mysql"
endpoint: {{`{{ with secret "` }}{{ default "common/data/mydata" $.Values.vaultSecretName }}{{`" -}}{{ .Data.data.db }}{{- end }}`}}
{{- end -}}
{{- define "helpers.config" -}}
{{- $default := fromYaml ( include "helpers.config.tpl" . ) -}}
{{- $conf := .Values.configFile -}}
{{- toYaml (merge $conf $default ) }}
{{- end -}}我也有类似下面的values.yaml。
configFile:
db:
app:
conn: 300我想添加或修改属性,只需通过values.yaml文件传值。但是我得到了像Error: 'error converting YAML to JSON: yaml: line 86: did not find expected key'一样的错误。我该如何解决这个问题?
发布于 2021-02-01 10:52:51
Vault Agent Template语法包括一个额外的模板层,它由helpers.config.tpl生成。如果您使用空.Values调用模板,您将退出
debug: "true"
db:
app:
dialect: "mysql"
endpoint: {{ with secret "common/data/mydata" -}}{{ .Data.data.db }}{{- end }}这不是有效的YAML : YAML { ... }应该是字典语法,而不是Go模板语法。您必须强制将此字符串解释为字符串。
可能最健壮的方法是使用YAML block scalar syntax,缩进您试图发出的东西,但不应用其他转义:
endpoint: |-
{{`{{ with secret "` }}{{ default "common/data/mydata" $.Values.vaultSecretName }}{{`" -}}{{ .Data.data.db }}{{- end }}`}}发布于 2021-02-02 09:23:49
谢谢@DavidMaze我解决了这个问题。不过,这有点棘手。我的yaml文档格式如下。
endpoint: |-
{{`{{ with secret "`}}{{ default "common/data/mydata" $.Values.vaultSecretName }}{{`" -}}
{{ .Data.data.db }}
{{- end }}`}}https://stackoverflow.com/questions/65986499
复制相似问题