Сохраните весь файл конфигурации приложения в качестве секрета kubernetes - PullRequest
0 голосов
/ 23 апреля 2020

В моем приложении есть файл конфигурации json. Это единственный json файл, в котором есть все конфиги, необходимые для моего nodejs приложения. У меня много связей со многими БД. У меня даже есть раздвоение как сцена и производство. Я не хочу создавать секрет для каждой переменной. Я хочу сбросить мой полный JSON как секрет. Так что я могу напрямую забрать его оттуда и использовать в моем приложении. В любом случае, я могу этого достичь? Я думаю, что это общая проблема.

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

Вы можете использовать следующую команду:

kubectl -n <namespace> create cm secret --from-file=APPLICATION_CONFIG=./<your-config>

Смонтировать его в определенный путь, и вы можете прочитать свою конфигурацию по этому пути.

0 голосов
/ 23 апреля 2020

Простое решение - поместить весь файл конфигурации под stringData в секрет. Что-то вроде этого:

apiVersion: v1
kind: Secret
metadata:
  name: mysecret
type: Opaque
stringData:
  config.json: |
   <your config goes here>

Теперь вы можете просто смонтировать секрет на капсулу и вы можете прочитать этот файл конфигурации.

Пока это работает, возможно, будет сложнее использовать с решением GitOps, которое обычно требует, чтобы вы зашифровали весь секретный контент. Используя Kamus , вы можете создать шаблонный файл конфигурации с зашифрованными значениями в следующем формате:

apiVersion: v1
kind: ConfigMap
metadata:
  name: encrypted-secrets-cm
data:
  key: 4AD7lM6lc4dGvE3oF+5w8g==:WrcckiNNOAlMhuWHaM0kTw== //encrypted
  template.ejs: |
     <%- secrets["key"] %>
     hello

И использовать контейнер init для создания файла конфигурации с расшифрованные значения. Значение с зашифрованными элементами может быть безопасно передано в git.

...