我在 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.
1 回答

鸿蒙传说
TA贡献1865条经验 获得超7个赞
Gotext/template
语言包含一个函数,它通过键或索引进行index
任意查找。所以你最后的形式几乎是正确的:你需要在一个字符串中构造键,然后使用index
它来检索它。
{{- $scheduleName := printf "app%d" $vali -}} nodeName: {{ index $.Values.Schedule $scheduleName }}
确保不要引用$scheduleName
变量引用,以免模板语言将其解释为字符串文字。
- 1 回答
- 0 关注
- 136 浏览
添加回答
举报
0/150
提交
取消