helm模板 .Files.Get 函数

常规用法

1
2
3
4
5
6
7
apiVersion: v1
kind: ConfigMap
metadata:
name: templates
binaryData:
file1: {{ .Files.Get "files/file1" | b64enc }}
file2: {{ .Files.Get "files/file2" | b64enc }}
1
2
3
4
5
6
7
8
9
# 错误示例
apiVersion: v1
kind: ConfigMap
metadata:
name: templates
binaryData:
{{- range $.Values.templates.files }}
{{ . }}: {{ .Files.Get "files/fil1" | b64enc }}
{{- end }}

进阶用法

1
2
3
4
5
6
7
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保存到循环外部的局部变量中来解决此问题

1
2
3
4
5
binaryData:
{{- $files := .Files }}
{{- range $.Values.templates.files }}
{{ . }}: {{ $files.Get "files/file" | b64enc }}
{{- end }}
打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2018-2024 Outsrkem
  • 访问人数: | 浏览次数:

      请我喝杯咖啡吧~

      支付宝
      微信