无法在 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) ) }}
我正在尝试将来自单独 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) ) }}