Kubernetes - Используйте Configmap для установки группы переменных среды - PullRequest
1 голос
/ 12 марта 2019

В настоящее время я работаю над проектом, в котором мне нужно установить большее количество (приблизительно 20) переменных среды.

Теперь эти переменные должны совместно использоваться несколькими контейнерами внутри модуля.Я использую Configmap для определения значений.Теперь моя проблема заключается в следующем.Я должен установить каждую переменную среды отдельно, а также сделать это для каждого контейнера, который довольно уродлив и содержит много ненужного кода.В основном это выглядит примерно так:

kind: Pod
apiVersion: v1
...
containers:
- name: container1
  image: my-image:latest
  env:
  - name: VAR1
    valueFrom:
      configMapKeyRef:
        name: my-config
        key: my-var1
    ...
- name: container2
  image: some-other-image:stable
  env:
  - name: VAR1
    valueFrom:
      configMapKeyRef:
        name: my-config
        key: my-var1
    ...

Я хочу автоматически добавить все значения из моего configMap as и переменной среды в контейнер.Мой первый подход - смонтировать configMap как том, а затем запустить скрипт оболочки при запуске.Аналогично этому

configMap

kind: ConfigMap
apiVersion: v1
...
data:
  envCat.sh: |
    #!/bin/sh
    export $(grep -v '^#' /etc/pod-config/envVars | xargs)
    cat
  envVars
    MY_VAR1="HELLO WORLD!!"
    MY_VAR2="I AM HERE"

Pod

kind: Pod
apiVersion: v1
...
spec:
  volumes:
  - name: config-volume:
    configMap:
      name: my-config
  containers:
  - name: container1
    image: my-image:latest
    volumeMounts:
    - name: config-volume
      mountPath: /etc/pod-config
    command:
    - /etc/pod-config/envCat.sh

К сожалению, команда экспорта работает очень хорошо, когда язапустить его вручную в контейнере, но запустить сценарий оболочки или запустить / bin / sh /etc/pod-config/envCat.sh не работает.

Есть предложения по достижению того, что я хочу сделать?

1 Ответ

3 голосов
/ 12 марта 2019

Вы должны использовать envFrom для загрузки всех пар ключ: значение в качестве переменных среды внутри контейнера

...