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

如何在Helm模板中传递多文件名并读取至ConfigMap的data字段

问题解决方案

错误原因是在range循环内部,模板的上下文(.)已切换为当前遍历的文件名字符串,不再包含根上下文的Files对象,因此无法访问.Files。

提供两种可行解决方法:

方法1:用$引用根上下文的Files

Helm模板中$始终指向根上下文,直接通过它访问Files即可:

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Values.configmapFromFile.name }}
data:
{{- range $fileName := .Values.configmapFromFile.fileNames }}
  {{ $fileName }}: |-
{{ $.Files.Get $fileName | indent 4 }}
{{- end }}

方法2:提前将根上下文的Files存入变量

在循环前把根上下文的Files赋值给变量,循环内直接使用该变量:

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Values.configmapFromFile.name }}
data:
{{- $files := .Files }}
{{- range $fileName := .Values.configmapFromFile.fileNames }}
  {{ $fileName }}: |-
{{ $files.Get $fileName | indent 4 }}
{{- end }}

验证效果

使用你提供的多文件名values配置:

configmapFromFile:
  name: test-config
  fileNames:
  - config1.properties
  - config2.properties

模板渲染后会生成包含两个文件内容的ConfigMap,每个文件名对应一个data字段,值为对应文件的完整内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 05:35:58