我有一个 helm 图表,用于部署具有 YAML 格式配置文件的应用程序。目前,我的舵图使用以下代码:
值.yaml
databaseUser: "dbuser"
configFiles:
db_config_file.yaml: |-
databaseUser: {{ .Values.databaseUser }}
databasePort: 1234
[...]
[...]
Run Code Online (Sandbox Code Playgroud)
模板/configmap.yaml
data:
{{- range $name, $config := .Values.configFiles }}
{{ $name }}: |-
{{ tpl $config $ | indent 4 }}
{{- end }}
Run Code Online (Sandbox Code Playgroud)
这段代码允许我轻松更改databaseUserfrom 值,但问题是如果我想更改 的值databasePort,我必须像这样重写整个配置:
configFiles:
db_config_file.yaml: |-
databaseUser: {{ .Values.databaseUser }}
databasePort: 9876
Run Code Online (Sandbox Code Playgroud)
这很不方便。它的工作原理是这样的,因为db_config_file.yaml内容被解释为字符串,因为我将其提供给tpl仅接受字符串的函数。
所以我的问题是,有没有办法将 YAML 转换为 Helm 模板中的字符串并获得以下内容:
databaseUser: "dbuser"
configFiles:
db_config_file.yaml: # Content is not a string block …Run Code Online (Sandbox Code Playgroud)