gpt4 book ai didi

kubernetes - 如何在我的 configmap.yaml (Helm) 中使用 json 文件?

转载 作者:行者123 更新时间:2023-12-05 08:49:08 26 4
gpt4 key购买 nike

我正在使用 Helm 部署到 Kubernetes 集群。我研究了 configmap,发现可以从文件中检索数据并将其放入 configmap。

我有以下 configmap.yaml:

kind: ConfigMap 
apiVersion: v1
metadata:
name: {{ .Values.app.configMap }}
namespace: {{ .Values.app.namespace }}
data:
config.json: |-
{{ .Files.Glob "my-config.json" | indent 2}}

和我的 deployment.yaml 包含相关的 volumeMount(如果我将实际的 json 数据直接放入 configmap.yaml,然后配置部署)。我的 configmap.yamldeployment.yaml 都保存在/chart/templates 中,但我将 my-config.json 保存在 base helm chart 中目录,在 templates 文件夹之外。

当我尝试使用图表进行部署时,出现以下错误:

Error: template: chart/templates/configmap.yaml:8:54: executing "chart/templates/configmap.yaml" at <2>: wrong type for value; expected string; got engine.files

如何在不将原始 json 数据直接放入 yaml 文件的情况下在我的 configmap 中使用 .json 文件?

最佳答案

.Files 对象在 Helm 中描述 Built-in Objects文档。 .Files.Glob 返回匹配某种模式的文件列表,例如 *.json;您可能想要 .Files.Get 而不是返回文件内容。

YAML 对空格处理和缩进也非常敏感。当您检索文件时,您可能希望该行从第一列开始,然后调用 indent 函数,使用比上一行的缩进级别更多的数字。这也会缩进第一行,您可以使用 helm template 仔细检查是否输出了正确的内容。

data:
{{-/* Note, indent of only two spaces */}}
config.json: |-
{{ .Files.Get "my-config.json" | indent 4 }}
{{/* .Get, not .Glob; indent 4 spaces, more than 2 above */}}

关于kubernetes - 如何在我的 configmap.yaml (Helm) 中使用 json 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64662568/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com