У меня есть диаграмма управления, используемая для развертывания приложения с файлом конфигурации в формате YAML. В настоящее время в моей диаграмме управления используется следующий код:
values.yaml
databaseUser: "dbuser"
configFiles:
db_config_file.yaml: |-
databaseUser: {{ .Values.databaseUser }}
databasePort: 1234
[...]
[...]
templates / configmap.yaml
data:
{{- range $name, $config := .Values.configFiles }}
{{ $name }}: |-
{{ tpl $config $ | indent 4 }}
{{- end }}
Этот код позволяет мне легко изменять databaseUser
из значений, но проблема в том, что если я хочу изменить значение databasePort
, мне придется переписать всю конфигурацию следующим образом:
configFiles:
db_config_file.yaml: |-
databaseUser: {{ .Values.databaseUser }}
databasePort: 9876
что неудобно. Это работает так, потому что содержимое db_config_file.yaml
интерпретируется как строка, потому что я передаю его функции tpl
, которая принимает только строки.
Итак, мой вопрос: есть ли способ преобразовать YAML в строку в шаблоне Helm и получите следующее:
databaseUser: "dbuser"
configFiles:
db_config_file.yaml: # Content is not a string block
databaseUser: {{ .Values.databaseUser }}
databasePort: 1234
[...]
[...]
data:
{{- range $name, $config := .Values.configFiles }}
{{ $name }}: |-
{{ tpl (<a toString function> $config) $ | indent 4 }}
{{- end }}