Невозможно сослаться на индекс внутри функции диапазона в файлах yaml

Я пытаюсь динамически назначать значения из отдельного файла values.yaml переменной.

Содержание моего файла values.yaml

peer_cidr1 = x
peer_cidr2 = y
peer_cidr3 = z

Yaml файл:

   {{- $root := . -}}
   {{ range $i, $dn := until (atoi (printf "%d" (int64 .Values.no_of_peers))) }}
   { "dst": "{{ $root.Values.peer_cidr$i }}" }

Ссылка Values.peer_cidr$i для ссылки на переменные из values.yaml. $i выдает ошибку неверного символа.

1 ответ

Решение

$root.Values.peer_cidr$i недопустимый синтаксис в шаблонах.

Вместо этого используйте index функция, например

{{ index $root "Values" (printf "peer_cidr%d" $i) }}

Также обратите внимание, что статистика индекса на 0 но значения, которые вы хотите найти, начинаются с 1 (например peer_cidr1), поэтому значение индекса 0не будет существовать, и вы не посетите последний элемент. Так что добавьте 1 к $i как это:

{{ index $root "Values" (printf "peer_cidr%d" (add1 $i) ) }}
Другие вопросы по тегам