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

posted @ 2022-04-12 22:51  linhaifeng  阅读(567)  评论(0编辑  收藏  举报