Поскольку вы имеете дело с json, хорошим примером для подражания может служить официальная стабильная / центрифуговая диаграмма . Он определяет ConfigMap, который содержит файл config.json:
data:
config.json: |-
{{ toJson .Values.config| indent 4 }}
Таким образом, он берет секцию config
из values.yaml и преобразует ее в json, используя функцию toJson. Конфигурация может быть любой, что вы хотите определить в этом yaml - диаграмма имеет:
config:
web: true
namespaces:
- name: public
anonymous: true
publish: true
...
В deploy.yaml он создает том из карты конфигурации :
volumes:
- name: {{ template "centrifugo.fullname" . }}-config
configMap:
name: {{ template "centrifugo.fullname" . }}-config
Обратите внимание, что {{ template "centrifugo.fullname" . }}-config
соответствует имени ConfigMap .
И монтирует его в модуль развертывания :
volumeMounts:
- name: "{{ template "centrifugo.fullname" . }}-config"
mountPath: "/centrifugo"
readOnly: true
Этот подход позволит вам заполнить файл конфигурации json из values.yaml, чтобы вы могли устанавливать разные значения для разных сред, предоставляя файл пользовательских значений для env для переопределения файла по умолчанию на диаграмме.
Для обработки license.dat вы можете добавить дополнительную запись в ConfigMap для определения дополнительного файла, но со встроенным статическим содержимым. Поскольку это лицензия, вы можете вместо этого переключить ConfigMap на Secret, что является простым изменением замены слова ConfigMap для Secret в определениях. Вы можете сначала попробовать это с ConfigMap.