#kubernetes #configmap #kubernetes-secrets
#kubernetes #configmap #kubernetes-секреты
Вопрос:
У меня есть configmap, подобный этому
apiVersion: v1
kind: ConfigMap
metadata:
namespace: develop
name: test-config
data:
app.conf: |
connection conn1
address 127.0.0.1:8080
user cluster1
password: <HERE COPY PASS FROM SECRET>
раздел app.conf монтируется в виде файла конфигурации внутри контейнера с помощью
spec:
replicas: 1
...
spec:
containers:
- name: container-name
...
volumeMounts:
- name: test-config-vol
mountPath: /etc/app/app.conf
subPath: app.conf
volumes:
- name: test-config-vol
configMap:
name: test-config
приложение, читающее этот файл, НЕ может читать переменные среды, и я не могу изменить это поведение, это стороннее приложение.
Интересно, как я могу ввести пароль из секрета в поле пароля во время развертывания pod
Комментарии:
1. Почему бы не получить пароль от секрета? зачем передавать его в конфигурационную карту, которая не предназначена для хранения паролей?
Ответ №1:
Вы не можете, все, что вы можете сделать, это установить секрет Kuberentes с паролем — смотрите документацию здесь. Таким образом, в итоге у вас будет 2 файла — один из карты конфигурации и один из secret.
Если ваше приложение не поддерживает несколько конфигурационных файлов, вам придется хранить весь конфигурационный файл в secret вместо config map.
Также, пожалуйста, обратите внимание, что секреты Kubernetes не могут храниться в системе управления версиями, поскольку секретные данные кодируются с использованием base64 (более подробную информацию смотрите здесь). Существует несколько решений этой проблемы, ознакомьтесь с моим сообщением