Helm configMap 对二进制文件的支持

amr*_*dhu 2 kubernetes kubernetes-helm configmap

我正在尝试创建一个 ConfigMap 类型的 helm 图表,它将替换 kubernates 中的以下命令。

kubectl create configmap my-config -n $namespace --from-file=./my-directory
Run Code Online (Sandbox Code Playgroud)

my-directory包含大约 5 个文件,其中 2 个是属性文件,其中 2 个是 jpg 文件。我看到以下结果kubectl get cm,我可以4在 configMap 中看到数据文件

[admin@cluster ~]$ kubectl get cm
NAME                   DATA   AGE
warm-up-config         4      41m
Run Code Online (Sandbox Code Playgroud)

我创建了一个模板,如下所示,如果我仅指定属性文件,它可以工作,但如果我添加 jpg 文件,它根本不起作用

apiVersion: v1
kind: ConfigMap
metadata:
  name: my-config
data:
{{ (.Files.Glob "resources/*").AsConfig | nindent 2 }}
Run Code Online (Sandbox Code Playgroud)

有谁知道我如何做到这一点。

小智 6

JPG 文件是二进制文件,应按原样添加。

data:
  binaryData:
    {{ .Files.Get "/path/to/file.jpg" }}
Run Code Online (Sandbox Code Playgroud)

field中的文件binaryData必须使用 base64 编码,因此:

{{ .Files.Get "/path/to/file.jpg" | b64enc }}
Run Code Online (Sandbox Code Playgroud)

不要忘记正确的缩进:

{{ .Files.Get "/path/to/file.jpg" | b64enc | nindent 4 }}
Run Code Online (Sandbox Code Playgroud)