Файл конфигурации приложения с использованием Kubernetes ConfigMaps - PullRequest
0 голосов
/ 12 октября 2018

Я хотел бы спросить, каков предпочтительный или лучший способ передачи файла конфигурации для моего приложения в следующем сценарии.

Мое приложение разработано на NodeJS, и у меня есть файл JSON с именем "config".json ", который содержит все параметры конфигурации моего приложения, т. е. AD, SMTP, DB и т. д. проблеск файла выглядит так.

{
  "slackIncomingHook": [
    {"HookUrl": "<<HookUrl>>"}
  ],
  "wikiPage": {
    "url": "<<url>>",
    "timeFrame" : "week"
  },
  "database": {
    "dbName": "DBNAME",
    "dbHostName": "mongodb://username:password@<<IP Address>>:27017/"
  }
}

Теперь я хочу развернуть этот проект, используя Kubernetes, и я хочупередать эту информацию во время выполнения или каким-либо образом объединить во время создания кластера с использованием configMaps.

Мой DockerFile для этого проекта состоит из копирования двух отдельных / зависимых проектов, установки ENV, установки NPM и предоставления PORTS.

PS - изображение Docker отправлено в мой личный репозиторий.

Эксперты советуют, будут высоко оценены.

1 Ответ

0 голосов
/ 13 октября 2018

Вы можете создать ConfigMap или Секрет, например,

apiVersion: v1
kind: ConfigMap
metadata:
  name: test-config
  namespace: default
data:
  AppConfig.json: |-
    {
      "slackIncomingHook": [
        {"HookUrl": "<<HookUrl>>"}
      ],
      "wikiPage": {
        "url": "<<url>>",
        "timeFrame" : "week"
      },
      "database": {
        "dbName": "DBNAME",
        "dbHostName": "mongodb://username:password@<<IP Address>>:27017/"
      }
    }

Вы можете создать секрет также, поскольку они закодированы в base64, поэтому

apiVersion: v1
kind: Secret
metadata:
  name: test-secret
  namespace: default
type: Opaque
data:
  AppConfig.json: |-
     BASE_64_ENCODED_JSON

В развертывании добавьте secret / configк узлу томов и установите для монтирования томов и mountPath путь к вашему config.json.

volumeMounts:
    - name: test-secretm
      mountPath: PATH_OF_YOUR_CONFIG_JSON

volumes:
      - name: test-secretm
        secret:
            secretName: test-secret
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...