如何使用$瓦尔从kubernetes的helm中的map中获取值?

mrwjdhj3  于 2022-11-02  发布在  Kubernetes
关注(0)|答案(1)|浏览(152)

我有一张价值Map

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。开始:94:[调试]在(xxx/templates/app.yaml:51)处出现解析错误:错误字符U+0024 '$'
我已经试过一些方法,但还是不行。


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

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

# can't work, too.
0kjbasz6

0kjbasz61#

Go text/template language包含一个index函数,它可以通过键或索引进行任意的查找,所以最后一种形式几乎是正确的:您需要在字符串中构造密钥,然后使用index来检索它。

{{- $scheduleName := printf "app%d" $vali -}}
nodeName: {{ index $.Values.Schedule $scheduleName }}

请确保不引用$scheduleName变量引用,以免模板语言将其解释为字符串文字。

相关问题