Как лучше всего иметь файлы на томах в Кубернетесе, используя рулевые диаграммы? - PullRequest
0 голосов
/ 16 ноября 2018

План состоит в том, чтобы переместить мое закрепленное приложение в Kubernetes.

Контейнер Docker использует несколько файлов - которые я использовал для монтирования на томах Docker, указав в файле Docker-compose:

volumes:
      - ./license.dat:/etc/sys0/license.dat
      - ./config.json:/etc/sys0/config.json

Файл конфигурации будет различным для разных сред, и файл лицензии будет одинаковым для всех.

Как определить это в файле шаблона руля (yaml), чтобы он был доступен дляработающее приложение?

Что вообще является лучшим способом для этого?Можно ли также определить значения конфигурации в values.yaml, и файл config.json может получить его?

1 Ответ

0 голосов
/ 16 ноября 2018

Поскольку вы имеете дело с 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...