1. 程式人生 > 其它 >helm模板語法報錯 wrong type for value; expected int; got float64

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