Как преобразовать YAML в JSON при сохранении файлов в контейнер с помощью Kubernetes Configmap - PullRequest
0 голосов
/ 16 января 2019

Мы собираемся написать диаграмму Хелма и предоставить файл конфигурации, используя configmap.

По некоторым причинам наше приложение использует файл конфигурации формата JSON. В настоящее время мы предоставляем файл конфигурации в 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) YAML в values.yaml 2) YAML в configmap 3) JSON-файл в контейнере

Спасибо заранее.

1 Ответ

0 голосов
/ 16 января 2019

Я не думаю, что есть что-то из коробки, но у вас есть варианты, в зависимости от вашей мотивации.

Ваше приложение ищет json, и карта конфигурации смонтирована так, чтобы приложение считывало этот json. Ваше развертывание руля не собирается изменять сам контейнер. Но вы можете изменить свое приложение на чтение yaml вместо json.

Если вы хотите иметь возможность легко видеть версии yaml и json, вы можете создать два файла конфигурации - один, содержащий yaml, а другой - с json.

Или, если вы просто хотите увидеть, какой был yaml, который использовался для создания карты конфигурации, тогда вы можете использовать helm get values <release_name>, чтобы посмотреть значения, которые использовались для его создания. релиз (который будет содержать содержимое записи conffiles).

...