В настоящее время я работаю над проектом, в котором мне нужно установить большее количество (приблизительно 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 не работает.
Есть предложения по достижению того, что я хочу сделать?