Как сохранить секреты в configmap в Kubernetes?

Как сохранить секреты в configmap в Kubernetes?

У меня есть карта конфигурации, которая создает файл конфигурации для моего приложения.

Структура выглядит следующим образом.

apiVersion: v1
kind: ConfigMap
metadata:
  name: database-configmap
data:
  config: |
   dbport=5432
   dcname=
   dbssl=false
   locktime=300
   domainuser=
   dattserverhost=localhost
   conntype=ON-PREM
   dbinstance=
   dattusessl=false
   dbpwd=VrjvBguQ
   iisport=80
   docountupgrade=false
   doreportupgrade=false
   dbname=dattdatabase
   dattuseiis=false
   dbtype=POSTGRESQL
   dbusername=postg
   dbserver=tgres.database.azure.com
   domainpwd=

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

Можно ли как-то сохранить некоторые свойства (например, dbusername, dbpassword) в качестве секрета Kubernetes, и когда будут созданы модули развертывания, эти секреты и configmap будут объединены в файл свойств?

Пожалуйста, предложите.

решение1

Короткий ответ: не надо.

Secretsи ConfigMapsявляются разными объектами. Secretsзашифрованы с помощью кодировки Base64 и должны использоваться для конфиденциальных данных, тогда как ConfigMapsиспользуются для неконфиденциальных данных.

Вам следует создать отдельные объекты для конфиденциальных и неконфиденциальных данных, а затем использовать их в вашем Deployment. Вы можете изменить свой , Deploymentчтобы использовать Secretsи ConfigMaps, например:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: envtest
spec:
  replicas: 1
  template:
    metadata:
      labels:
        name: envtest
    spec:
      containers:
      - name: envtest
        image: gcr.io/<PROJECT_ID>/envtest
        ports:
        - containerPort: 3000
        env:
        - name: LANGUAGE
          valueFrom:
            configMapKeyRef:
              name: language
              key: LANGUAGE
        - name: API_KEY
          valueFrom:
            secretKeyRef:
              name: apikey
              key: API_KEY

Существуют также различные способы использования Secretsи ConfigMaps. Более подробную информацию см. в источниках ниже:

Связанный контент