kubernetes и env переменных.
Я тут себе немного голову уже сломал, как быть. Образ для кубера собирается в CI, соответственно при сборке env переменных в CI нет.
Выносить все настройки в runtime.exs?
у нас вынесены все настройки в runtime.exs, да
К этому случаю другой вопрос: для разработки как добавить переменные? Перед запуском iex -S mix выполнять source .env
статичные конфиги, типа форматтер логгера - config.(dev,prod,test).exs. всякие креды бд и прочие сервисы - в дев и тест прям по месту, в проде из env через releases.exs
что имеется в виду в дев и тест прям по месту? То есть прямо креды ставите в dev.exs? Если так, то их в репозиторий не сливаете совсем?
так это креды для локальных инстансов. в тесте так вообще для ephemeral инстансов, типа docker-compose или services в gitlab ci
Угу, тем более что запекать секреты в образ это плохая практика
Ну я делаю dev.local.exs загитигноренный и импортирую его внутри dev.exs если он существует
Так то ничто не мешает сохранять все в .env и читать его напрямую из конфига. Зависит от ситуации. Что храниться в dev.local.exs?
env работает не всегда хорошо, потому что там нельзя сделать глубокую структуру.
По моему опыту "локальные конфиги, которые помещены в гитигнор" это лютое зло, работаю с кучей "легаси" проектов, где придерживались подобного подхода. Итог: обычный dev.exs в итоге устарел и его недостаточно для запуска проекта, а все локальные конфиги потеряны вместе с разработчиками)
А если у меня постгря локальная на другом порте чем у тебя?
то кто-то из вас злобный упырь
по-хорошему локальные конфиги должны быть один раз закоммичены с дефолтными настройками и обновляться при добавлении новых, но это в идеальном мире
Есть стандартный порт, либо меняй у себя постоянно в конфиге, либо сиди на нормальном порте, как все остальные в команде (Альтернативный вариант ENV переменные) Но это безобидный пример Я немного про другое говорил, в легаси проектах в development.yml (руби проект) нет даже блока настроек, который необходим для запуска. Столкнулся с таким, что в дев настройках только подключение к базе, а нужно еще подключение к RabbitMQ, внутреннему специфичному файловому хранилищу и тд
это наверное называется dev.exs, а не локальные конфиги
dev.exs обычно добавляется в гит, но все файлы которые игнорируются гитом и обязательны для запуска можно один раз коммитить чтобы не было головной боли у других разработчиков
Обсуждают сегодня