使用Kubernetes Configmap将文件保存到容器时如何将YAML转换为JSON

时间:2019-01-16 02:27:37

标签: kubernetes configmap kubernetes-helm

我们将编写Helm图表并使用configmap提供配置文件。

由于某些原因,我们的应用程序使用JSON格式的配置文件。目前,我们像这样在Helm图表的values.yaml中提供配置文件。

conffiles:
  app_conf.json:
    ...(content in YAML)...

为了易于修改,在values.yaml中,我们使用YAML格式,在configmap的模板中,我们使用“ toJson”进行了转换,

data:
{{- range $key, $value := .Values.conffiles }}
  {{ $key }}: |      
{{ toJson $value | default "{}" | indent 4 }}
{{- end -}}
{{- end -}}

因此,在values.yaml中为YAML,在configmap中为JSON,然后在容器中将其存储到JSON文件中。

我们的问题是

  • 将文件保存到容器时,是否可以将YAML转换为JSON?也就是说,我们希望这些配置内容可以是1)values.yaml中的YAML 2)configmap中的YAML 3)容器中的JSON文件

谢谢。

1 个答案:

答案 0 :(得分:0)

我认为没有什么可以立即使用的,但是您可以根据自己的动机选择。

您的应用正在寻找json,并且已安装configmap,以供您的应用读取该json。您的掌舵部署不会修改容器本身。但是您可以将应用更改为读取yaml而不是json。

如果您希望能够轻松查看yaml和json版本,则可以创建两个configmap-一个包含yaml,另一个包含json。

或者,如果您只是想查看用于创建configmap的Yaml,则可以使用helm get values <release_name>查看用于创建该发行版的值(包括conffiles条目的内容。