常规用法
apiVersion: v1
kind: ConfigMap
metadata:
name: templates
binaryData:
file1: {{ .Files.Get "files/file1" | b64enc }}
file2: {{ .Files.Get "files/file2" | b64enc }}
# 错误示例
apiVersion: v1
kind: ConfigMap
metadata:
name: templates
binaryData:
{{- range $.Values.templates.files }}
{{ . }}: {{ .Files.Get "files/fil1" | b64enc }}
{{- end }}
进阶用法
apiVersion: v1
kind: ConfigMap
metadata:
name: templates
binaryData:
# .Values.files.file1 是文件路径
file1: {{ .Files.Get .Values.files.file1 | b64enc }}
在Go text/template语言中,.
是一个具有多种含义的特殊变量。值得注意的是,在range
循环中,.成为循环中的当前项,
因此.Files
引用当前循环项中的Files
字段,而不是顶级Helm对象。可以通过将.
或.Files
保存到循环外部的局部变量中来解决此问题
binaryData:
{{- $files := .Files }}
{{- range $.Values.templates.files }}
{{ . }}: {{ $files.Get "files/file" | b64enc }}
{{- end }}
惨开资料:
helm模板开发-访问文件(五) - SoulChild随笔记
Helm模板.Files.Get函数在某个范围内不能正常工作 - 问答 - 腾讯云开发者社区-腾讯云 (tencent.com)
Helm中的Chart创建、安装入门 - 举个例子网 (hellodemos.com)
标签:Files,files,file1,Get,templates,Helm,b64enc From: https://www.cnblogs.com/outsrkem/p/17325482.html