.env to Kubernetes ConfigMap
Сгенерировать Kubernetes ConfigMap YAML из .env файла.
Как это работает
Локальная разработка идет через .env файл и dotenv, а деплой в кластер требует Kubernetes ConfigMap с той же самой конфигурацией, только в формате YAML манифеста с обвязкой из apiVersion, kind и metadata. Env to k8s configmap converter online собирает такой манифест автоматически по вашему .env файлу и имени ConfigMap.
Инструмент читает переменные окружения построчно, пропускает комментарии и пустые строки, и помещает результат в поле data готового манифеста ConfigMap, где ключи остаются такими же, как в исходном env файле, а значения такими же строками.
Полезно применять при переходе проекта с docker compose на полноценный Kubernetes, когда конфигурация приложения уже отлажена локально через env файл, и остается только правильно упаковать ее в манифест кластера без ручного переписывания структуры.
Частые вопросы
Чем ConfigMap отличается от Secret в Kubernetes для хранения переменных?
ConfigMap хранит данные в открытом виде и предназначен для несекретной конфигурации, для паролей, токенов и прочих чувствительных данных Kubernetes предлагает отдельный объект Secret с base64 кодированием значений, для таких переменных этот инструмент не подходит напрямую.
Как подключить сгенерированный ConfigMap к поду в качестве переменных окружения?
В манифесте пода или deployment нужно сослаться на этот ConfigMap через envFrom с полем configMapRef и именем, указанным в metadata сгенерированного манифеста, тогда все ключи из data станут переменными окружения контейнера.
Можно ли изменить имя ConfigMap после генерации?
Да, поле имени в форме перед генерацией можно менять свободно, оно просто попадет в metadata.name итогового манифеста, при желании можно и вручную поправить это поле уже в готовом результате.
Нужно ли перезапускать под после изменения ConfigMap?
Kubernetes по умолчанию не перечитывает переменные окружения автоматически при изменении ConfigMap для уже запущенных подов, обычно требуется явный rollout restart deployment, чтобы новые значения подхватились контейнерами.