Хелм Ямл ключи от values.yaml - PullRequest
0 голосов
/ 26 мая 2018

Я хочу сделать yaml KEY (не значение) динамически.

В моем values.yaml

failoverip1: 0.0.0.0` (<- this is only a demo IP)

В моем templates/configmap.yaml У меня есть это:

apiVersion: v1
kind: ConfigMap
metadata:
  name: vip-configmap
data:
  {{- .Values.failoverip1 -}}: {{ .Release.Namespace -}}/{{- .Values.target -}}
     ^^^^^^^^^^^^^^^^^^^^^----> here should be an IP address from values.yaml

{{ .Release.Namespace -}}/{{- .Values.target -}} успешно рендеринг.

Но если я добавлю {{- .Values.failoverip1 -}} к ключевой части, он ничего не рендерит.(Ничто не означает, что весь блок data: не будет обработан.

Это сообщение об ошибке при запуске helm install --name hetzner-failover .

Error: YAML parse error on hetzner-failover/templates/configmap-ip.yaml: error converting YAML to JSON: yaml: line 4: mapping values are not allowed in this context

не разрешено делать

  • ключ динамическим?
  • Если нет, как обойти это?

Вот репозиторий, о котором я говорю:

https://github.com/exocode/helm-charts/blob/master/hetzner-failover/templates/configmap-ip.yaml

1 Ответ

0 голосов
/ 26 мая 2018

Ошибка, похоже, в том, что ведущий - обрезан.

Таким образом, правильный путь - убрать этот минус:

До:

{{- .Values.failoverip1 | indent 2 -}}

После:

{{ .Values.failoverip1 | indent 2 -}}

Теперь yaml:

apiVersion: v1
kind: ConfigMap
metadata:
  name: vip-configmap
data:
{{ .Values.failoverip1 | indent 2 -}}: {{ .Release.Namespace -}}/{{- .Values.target -}} # add your config map here. must map the base64 encoded IP in secrets.yaml

И результат рендеринга:

kubectl get configmap -o yaml
apiVersion: v1
items:
- apiVersion: v1
  data:
    0.0.0.0: default/nginx# add your config map here. must map the base64 encoded
      IP in secrets.yaml
  kind: ConfigMap
...