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

Helm Chart中如何配置多个同名Key且不触发重复键报错

你遇到的重复键错误是YAML语法本身的限制:同一层级下不允许出现完全相同的键名,你当前在values文件的envFrom映射下重复定义了3次secretRef键,Helm在解析YAML阶段就会直接抛出错误,和键内部的name字段是否加编号无关。


解法1:直接复用列表结构(推荐)

这种方案不需要修改任何你要引用的Secret、ConfigMap名称,后续新增envFrom条目也不需要修改模板,维护成本最低。

  1. 调整nonproduction.yaml值文件结构:
envFrom:
  - secretRef:
      name: secret1
  - secretRef:
      name: secret2
  - configMapRef:
      name: configmap1
  - secretRef:
      name: secret3
  1. 调整deployment.yaml模板写法,直接渲染列表即可:
containers:
- name: {{ .Values.appName }}
  image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
  envFrom:
    {{- toYaml .Values.envFrom | nindent 12 }}

解法2:保留你原来的单独引用写法

如果你需要保留name1/name2/name3/name4的编号键单独引用的逻辑,不需要修改模板里的引用代码,只需要调整values文件的结构,把重复的secretRef合并为一个映射即可:

# nonproduction.yaml 调整后
envFrom:
  secretRef:
    name1: secret1
    name2: secret2
    name4: secret3
  configMapRef:
    name3: configmap1

调整后同一层级下只有一个secretRef和一个configMapRef,不存在重复键,你原来的模板引用代码可以完全复用,不需要修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:45:02