You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过Helm --set动态读取value.yml列表值失败的问题排查

问题解决:Helm动态读取Values列表并渲染ConfigMap

错误原因

当前模板中直接用$.Values.setAge尝试迭代,但实际通过--set setName=age传递的是字符串"age",而非列表。Helm无法对字符串执行range迭代,因此报错。

解决方案

1. 修改ConfigMap模板

使用Helm的index函数,通过动态传递的键名($.Values.setName)获取Values中对应的列表:

apiVersion: v1
kind: ConfigMap
metadata:
  name: myapp-config
data:
  toppings:
{{- range $topping := index $.Values $.Values.setName }}
  - {{ $topping }}
{{- end }}

index $.Values $.Values.setName的作用是:以$.Values.setName的值(即"age")为键,从$.Values中取出对应的列表。

2. 执行正确的Helm命令

如果需要修改列表中的元素(比如将原age列表的22改为18,匹配期望结果),执行以下命令:

helm template production --set setName=age --set age[0]=18 /opt/shell/helm/helm-jar/

验证结果

执行命令后,渲染出的ConfigMap将符合期望:

apiVersion: v1
kind: ConfigMap
metadata:
  name: myapp-config
data:
  toppings:
    - 18
    - 36

内容的提问来源于stack exchange,提问作者Xiaole Zhang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 12:17:10