Helm configMap 支持二进制文件
Helm configMap support for binary files
我正在尝试创建一个类似 ConfigMap 的 helm 图表,它将替换来自 kubernates 的以下命令。
kubectl create configmap my-config -n $namespace --from-file=./my-directory
my-directory
包含大约 5 个文件,其中 2 个是属性文件,另外 2 个是 jpg 文件。我看到 kubectl get cm
的以下结果,我可以在 configMap
中看到 4
个数据文件
[admin@cluster ~]$ kubectl get cm
NAME DATA AGE
warm-up-config 4 41m
我按如下方式创建了一个模板,如果我只指定属性文件,它就可以工作,但是如果我添加 jpg 文件,它就根本不起作用
apiVersion: v1
kind: ConfigMap
metadata:
name: my-config
data:
{{ (.Files.Glob "resources/*").AsConfig | nindent 2 }}
有谁知道我是怎么做到的。
JPG 文件是二进制文件,应按原样添加。
data:
binaryData:
{{ .Files.Get "/path/to/file.jpg" }}
binaryData
字段中的文件必须使用 base64 编码,因此:
{{ .Files.Get "/path/to/file.jpg" | b64enc }}
不要忘记正确的缩进:
{{ .Files.Get "/path/to/file.jpg" | b64enc | nindent 4 }}
我正在尝试创建一个类似 ConfigMap 的 helm 图表,它将替换来自 kubernates 的以下命令。
kubectl create configmap my-config -n $namespace --from-file=./my-directory
my-directory
包含大约 5 个文件,其中 2 个是属性文件,另外 2 个是 jpg 文件。我看到 kubectl get cm
的以下结果,我可以在 configMap
4
个数据文件
[admin@cluster ~]$ kubectl get cm
NAME DATA AGE
warm-up-config 4 41m
我按如下方式创建了一个模板,如果我只指定属性文件,它就可以工作,但是如果我添加 jpg 文件,它就根本不起作用
apiVersion: v1
kind: ConfigMap
metadata:
name: my-config
data:
{{ (.Files.Glob "resources/*").AsConfig | nindent 2 }}
有谁知道我是怎么做到的。
JPG 文件是二进制文件,应按原样添加。
data:
binaryData:
{{ .Files.Get "/path/to/file.jpg" }}
binaryData
字段中的文件必须使用 base64 编码,因此:
{{ .Files.Get "/path/to/file.jpg" | b64enc }}
不要忘记正确的缩进:
{{ .Files.Get "/path/to/file.jpg" | b64enc | nindent 4 }}