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