Ваш файл kubernetes.yaml
указывает, какая переменная среды хранит ваш секрет, чтобы он был доступен приложениям в этом пространстве имен.
Используя kubectl secrets cli interface , вы можете загрузить свой секрет .
kubectl create secret generic -n node-app test-mongodb-secret --from-literal=username=a-username --from-literal=password=a-secret-password
(пространство имен arg -n node-app
является необязательным, иначе оно будет использоваться для пространства имен по умолчанию)
После запуска этой команды вы можете проверить свою панель управления кубом, чтобы увидеть что секрет был сохранен
Затем из вашего приложения-узла обратитесь к переменной окружения process.env.SECRET_PASSWORD
Возможно, в вашем случае секретные файлы создаются в неправильном пространстве имен, поэтому почему undefined
EDIT 1
Ваш отступ для container.env
кажется неправильным
apiVersion: v1
kind: Pod
metadata:
name: secret-env-pod
spec:
containers:
- name: mycontainer
image: redis
env:
- name: SECRET_USERNAME
valueFrom:
secretKeyRef:
name: mysecret
key: username
- name: SECRET_PASSWORD
valueFrom:
secretKeyRef:
name: mysecret
key: password
restartPolicy: Never