helm模板语法报错 wrong type for value; expected int; got float64
Helm小技巧之数字操作
- 数字迭代方法,通过replicas迭代时,可以通过until来支持迭代数字
#定义replicaCount
{{- $replicaCount := int .Values.replicaCount}}
{{- range $i, $e := until $replicaCount}}
{{$i}},{{$e}}
{{- end -}}
当replicaCount=5时,执行结果则为:
0,0
1,1
2,2
3,3
4,4
注意:
- 以上默认的Values.replicaCount中取的值是float64,需要向如上方式做一次转换,否则会出现如下错误。
- 以上的中划线”-“,前面的代表去掉输出的上一行空行,后面的代表输出行的后一行空行。
Error: render error in "test_proj/templates/service.yaml": template: est_proj/templates/test.yaml:1:31: executing "est_proj/templates/service.yaml" at <.Values.replicaCount>: wrong type for value; expected int; got float64
- 通过tuple实现任意内容的迭代
{{- range $i, $e := tuple 1 3 "s1" "s2" 2.33}}
{{$i}},{{$e}}
{{- end -}}
执行结果
0,1
1,3
2,s1
3,s2
4,2.33
- 通过步长(untilStep)方式迭代
{{- range untilStep 1 10 2 }}
{{ . }}
{{- end }}
untilStep后有三个参数,第一个代表起始值,如这里的1,第二个代表终止值,不包含该值,如这里的10,第三个为步长,这里的2,整体可以看做[1,10),每次迭代步长2
执行结果
1
3
5
7
9