在 Kubernetes 1.10.* 中,我们可以将
binaryData:
与 ConfigMap
一起使用,我正在尝试将其与 Helm
结合使用:
apiVersion: v1
kind: ConfigMap
metadata:
name: some_config_map
data:
text_data: |-
{{ .Files.Get "truststores/simple_text_file.txt" }}
binaryData:
trustore.jks: |-
{{ .Files.Get "truststores/trustore.jks" | b64enc }}
我不确定最后一行 - 无论语法如何:
{{ "truststores/trustore.jks" | b64enc }}
{{ "truststores/trustore.jks" }}
当我部署它时,
trustore.jks
是空的。
那么我该如何使用
binaryData:
?
您的语法看起来不错,一切都应该正常工作。
binaryData
字段中的文件必须使用base64编码,因此,{{ .Files.Get "truststores/trustore.jks" | b64enc }}
是正确的。
尝试使用调试密钥应用配置并调查出了什么问题,可能没有这样的文件或者编码存在一些问题。
这可能为时已晚,但也许会对某人有所帮助。
您需要为 Base64 编码字符串添加缩进。
{{ .Files.Get "truststores/trustore.jks" | b64enc | indent 4}}
这也适用于您的文本文件:
{{ .Files.Get "truststores/simple_text_file.txt" | indent 4}}
这应该为文件的每一行添加 4 个空格
语法很好,但如此处定义的那样 https://helm.sh/docs/chart_template_guide/accessing_files .Files 不会从任何地方加载文件。如果 truststores 不是您的图表文件夹的一部分,那么“truststores/trustore.jks”