无法在 yaml 文件中引用范围函数内的索引

Not able to refer the index inside the range function in yaml files

我正在尝试将来自单独 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 抛出错误字符错误。

$root.Values.peer_cidr$i 是模板中的无效语法。

而是使用 index 函数,例如

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

另请注意,索引统计信息位于 0,但您要查找的值从 1 开始(例如 peer_cidr1),因此索引的值 0 将不存在,您将不会访问最后一个元素。所以像这样在 $i 中加 1:

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