Преобразование YAML в строку в Helm - PullRequest
0 голосов
/ 17 июня 2020

У меня есть диаграмма управления, используемая для развертывания приложения с файлом конфигурации в формате 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 }}

Ответы [ 2 ]

0 голосов
/ 22 июня 2020

Думали ли вы о создании шаблонов databasePort и заключении значений в двойные кавычки?

values.yaml

databaseUser: "dbuser"
databasePort: 1234

configFiles:
  db_config_file.yaml: |-
    databaseUser: "{{ .Values.databaseUser }}"
    databasePort: "{{ .Values.databasePort }}"
0 голосов
/ 18 июня 2020

так как ваш вопрос помог мне решить мою, возможно, я смогу помочь вам с моими небольшими знаниями. Официальная документация по Helm описывает способ принудительного вывода типа:

coffee: "yes, please"
age: !!str 21
port: !!int "80"

HTH, Martin

...