首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Helm模板.Files.Get函数在某个范围内不能正常工作

Helm模板.Files.Get函数在某个范围内不能正常工作
EN

Stack Overflow用户
提问于 2021-08-20 15:25:42
回答 1查看 387关注 0票数 0

我正在尝试构建一个动态的configmap清单,使用文件夹和文件名遍历一个值文件列表。这是我的values.development.yaml的样子:

代码语言:javascript
复制
templates:
  folder: "foldername"
  files:
    - filename1
    - filename2

这是我的原始configmap,带有硬编码的文件名:

代码语言:javascript
复制
apiVersion: v1
kind: ConfigMap
metadata:
  name: templates
binaryData:
  filename1: {{ .Files.Get "foldername/filename1.zip" | b64enc }}
  filename2: {{ .Files.Get "foldername/filename2.zip" | b64enc }}

这就是我尝试开始的方式,但是.File.Get函数不想在范围内运行,因为我可以在外部正常使用它。当我像这样使用它时:

代码语言:javascript
复制
apiVersion: v1
kind: ConfigMap
metadata:
  name: templates
binaryData:
{{- range $.Values.templates.files }}
  {{ . }}: {{ .Files.Get "foldername/filename1.zip" | b64enc }}
{{- end }}

获取此错误:

代码语言:javascript
复制
helm template template  -f deploy/template/values.development.yaml  deploy/template --debug         
install.go:173: [debug] Original chart version: ""
install.go:190: [debug] CHART PATH: 
Error: template: template/templates/configmap.yaml:14:20: executing "template/templates/configmap.yaml" at <.Files.Get>: can't evaluate field Files in type interface {}
helm.go:81: [debug] template: template/templates/configmap.yaml:14:20: executing "template/templates/configmap.yaml" at <.Files.Get>: can't evaluate field Files in type interface {}

不用说,我不太懂go语言。你能给我一些关于如何正确建立这个列表的提示吗?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2021-08-21 21:17:23

在Go text/template语言中,.是一个具有多种含义的特殊变量。值得注意的是,在range循环中,.成为循环中的当前项,因此.Files引用当前循环项中的Files字段,而不是顶级Helm对象。

您可以通过将..Files保存到循环外部的局部变量中来解决此问题:

代码语言:javascript
复制
binaryData:
{{- $files := .Files }}
{{- range $.Values.templates.files }}
  {{ . }}: {{ $files.Get "foldername/filename1.zip" | b64enc }}
{{- end }}

现在在循环.中是字符串filename1filename2,...但是您已经将顶级.Files对象保存到$files局部变量中,所以您可以引用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68864596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档