Kubernetes / Helm:带有ConfigMap和“ binaryData:”的示例吗?

时间:2018-07-14 11:09:09

标签: kubernetes kubernetes-helm

使用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:

2 个答案:

答案 0 :(得分:2)

您的语法看起来不错,并且一切正常。字段binaryData中的文件必须使用base64编码,因此{{ .Files.Get "truststores/trustore.jks" | b64enc }}是正确的。

尝试使用调试键应用配置并调查出了什么问题,可能是没有此类文件或编码存在问题。

答案 1 :(得分:1)

这可能为时已晚,但也许会对某人有所帮助。

您需要在base64编码的字符串中添加缩进。

{{ .Files.Get "truststores/trustore.jks" | b64enc | indent 4}}

这也适用于您的文本文件:

{{ .Files.Get "truststores/simple_text_file.txt" | indent 4}}

这应该在文件的每一行中添加4个空格