Вставьте все секреты как переменные env в развертывание kubernetes
У меня есть десятки секретов, которые нужно передать в развертывание k8, которое становится очень многословным, ниже приведен пример передачи секретов redis из redis-secrets
секрет.
- name: REDIS_HOST
valueFrom:
secretKeyRef:
name: redis-secrets
key: REDIS_HOST
- name: REDIS_PASSWORD
valueFrom:
secretKeyRef:
name: redis-secrets
key: REDIS_PASSWORD
- name: REDIS_PORT
valueFrom:
secretKeyRef:
name: redis-secrets
key: REDIS_PORT
Можно ли передать все секреты от redis-secrets
в развертывание, причем ключи секретов являются ключом переменной env?
2 ответа
Я не пробовал это на секретах, но стоит попробовать. Я использовал это в configmaps.
Тот же уровень, что и env, который является.spec.containers
envFrom:
- secretRef:
name: redis-secrets
Я не уверен в вашем конкретном случае использования, но вы можете установить переменные окружения в своем развертывании следующим образом (два примера, один, где redis keyname - это "ключевое значение" переменной env, а другой - где у вас просто есть ключ в качестве ключ redis и значение как ожидаемое "значение ключа"):
environment:
- REDIS_PORT=12345
- KEY1=REDIS_PASSWORD
- KEY2=REDIS_PORT
Ваше приложение может потреблять их по мере необходимости. Он может загрузить Key1/Key2 и затем искать REDIS_PORT и REDIS_PASSWORD из хранилища секретов ИЛИ вы можете загрузить REDIS_PORT напрямую и использовать номер порта из переменной env.