диаграмма управления: включите несколько строк из values.yaml в configmap - PullRequest
1 голос
/ 17 июня 2020

Я хочу создать диаграмму управления, которая приводит к карте конфигурации, которая выглядит следующим образом:

apiVersion: v1
kind: ConfigMap
metadata:
  name: myconfigmap
data:
  myconfigfile1.properties: |
    property11 = value11
    property12 = value12
  myconfigfile1.properties: |
    property21 = value21
    property22 = value22

, тогда как эта часть должна быть настроена в values.yaml:

myconfig:
  myconfigfile1.properties: |
    property11 = value11
    property12 = value12
  myconfigfile1.properties: |
    property21 = value21
    property22 = value22

Теперь я хочу перебрать всех дочерних элементов myconfig в values.yaml и добавить их в свой шаблон Helm. Мои попытки до сих пор с этим шаблоном:

apiVersion: v1
kind: ConfigMap
metadata:
  name: myconfigmap
data: 
  # {{- range $key, $val := .Values.myconfig}}
  # {{ $key }}: |
  #   {{ $val }}
  # {{- end }}

привели к этому сообщению об ошибке:

$ helm install --dry-run --debug ./mychart/ --generate-name
install.go:159: [debug] Original chart version: ""
install.go:176: [debug] CHART PATH: /home/my/helmcharts/mychart
Error: YAML parse error on mychart/templates/myconfig.yaml: error converting YAML to JSON: yaml: line 11: could not find expected ':'
helm.go:84: [debug] error converting YAML to JSON: yaml: line 11: could not find expected ':'
YAML parse error on mychart/templates/myconfig.yaml

Я могу избежать ошибки, удалив | после myconfigfile1.properties: в моем values.yaml, однако тогда я теряю разрывы строк и результат не тот, который мне нужен.

Большое спасибо за вашу помощь заранее.

С уважением, Мартин

1 Ответ

1 голос
/ 18 июня 2020

Через несколько минут после написания этого вопроса я наткнулся на вопрос № 62432632 convert-a-yaml-to-string-in-helm , который не совсем отвечает на мой вопрос, но с его помощью я смог найти правильный синтаксис.

values.yaml:

myconfig:
  myconfigfile1.properties: |-
    property11 = value11
    property12 = value12

  myconfigfile2.properties: |-
    property21 = value21
    property22 = value22

шаблон:

apiVersion: v1
kind: ConfigMap
metadata:
  name: myconfigmap
data: 
{{- range $name, $config := .Values.myconfig }}
  {{ $name }}: |-
{{ tpl $config $ | indent 4 }}
  {{- end }}

...