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

问题描述 投票:0回答:3

在 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:

kubernetes kubernetes-helm
3个回答
17
投票

您的语法看起来不错,一切都应该正常工作。

binaryData
字段中的文件必须使用base64编码,因此,
{{ .Files.Get "truststores/trustore.jks" | b64enc }}
是正确的。

尝试使用调试密钥应用配置并调查出了什么问题,可能没有这样的文件或者编码存在一些问题。


9
投票

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

您需要为 Base64 编码字符串添加缩进。

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

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

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

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


0
投票

语法很好,但如此处定义的那样 https://helm.sh/docs/chart_template_guide/accessing_files .Files 不会从任何地方加载文件。如果 truststores 不是您的图表文件夹的一部分,那么“truststores/trustore.jks”

© www.soinside.com 2019 - 2024. All rights reserved.