猿问

如何使用 $val 从 kubernetes 的 helm 地图中获取价值?

我在 values.yaml 中得到了一张地图:


Schedule:

  app1: node01

  app2: node07

  app3: node13

我想在 template/app.yaml 中使用它:


{{- $tuplei := untilStep 1 4 1 -}}

{{- range $keyi, $vali := $tuplei }}

---

spec:

  template:

    spec:

      nodeName: {{ $.Values.Schedule.node$vali }}

它不能工作:


错误:解析错误 (xxx/templates/app.yaml:51): 坏字符 U+0024 '$' helm.go:94: [debug] 解析错误 (xxx/templates/app.yaml:51): 坏字符 U+0024 '$'


我已经尝试了一些方法,但仍然无法做到。


#{{- $ScheduleName :=  printf "app%d" $vali }}

#nodeName: get $.Values.Schedule "$ScheduleName"

#can't work, too.


精慕HU
浏览 137回答 1
1回答

鸿蒙传说

Gotext/template语言包含一个函数,它通过键或索引进行index任意查找。所以你最后的形式几乎是正确的:你需要在一个字符串中构造键,然后使用index它来检索它。{{- $scheduleName := printf "app%d" $vali -}} nodeName: {{ index $.Values.Schedule $scheduleName }}确保不要引用$scheduleName变量引用,以免模板语言将其解释为字符串文字。
随时随地看视频慕课网APP

相关分类

Go
我要回答