Как создать DSN env из нескольких ресурсов ConfigMap? - PullRequest
0 голосов
/ 21 апреля 2020

Чтобы служба работала, ей нужна переменная среды с именем DSN, которая печатает что-то вроде postgres://user:password@postgres.svc.cluster.local:5432/database. Это значение, которое я создал с ресурсом ConfigMap:

apiVersion: v1
kind: ConfigMap
metadata:
  name: idp-config
  namespace: diary
data:
  DSN: postgres://user:password@postgres.svc.cluster.local:5432/database

Этот ConfigMap монтируется как переменная окружения в моем сервисном модуле. Поскольку значения отличаются от user и password и эти учетные данные PostgreSQL находятся в другом ресурсе k8s (Secret и ConfigMap), как я могу правильно построить эту среду DSN в ресурсе k8s yaml, чтобы мой сервис мог подключиться к базе данных?

1 Ответ

1 голос
/ 21 апреля 2020

Копаясь в Kubernetes Docs, я смог найти. В соответствии с Определить переменные среды для контейнера :

Переменные среды, которые вы определяете в конфигурации модуля, могут использоваться в других местах конфигурации, например, в заданных вами командах и аргументах для контейнеров стручка. В приведенном ниже примере конфигурации переменные среды GREETING, HONORIFI C и NAME установлены в Приветственное приветствие, Самый почетный и Кубернетес соответственно. Эти переменные среды затем используются в аргументах CLI, передаваемых в контейнер env-print-demo.

apiVersion: v1
kind: Pod
metadata:
  name: print-greeting
spec:
  containers:
  - name: env-print-demo
    image: bash
    env:
    - name: GREETING
      value: "Warm greetings to"
    - name: HONORIFIC
      value: "The Most Honorable"
    - name: NAME
      value: "Kubernetes"
    command: ["echo"]
    args: ["$(GREETING) $(HONORIFIC) $(NAME)"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...