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 }}