БС
devops'у не надо лезть в код искать какой то параметр, его дефолтное значение и прочее. Ему достаточно открыть один конфиг файл. В этом же yamlе могут быть и комментарии.
Если нужно сделать параметр, для которого нет универсального значения, и которое нужно обязательно определять, то можешь его поменить строкой определенной.
И во время сборки (всмысле кнопки в CI, а не docker build) проверять (ну да, надо чекер написать из пяти строк) конфиг. И если девосп забудет (или ему забудут сказать) определить этот параметр, то об этом девопс узнает до момента начала деплоя.
А еще, иногда, конфиги меняют QAщики. Напримрер через конфиг можно включать/выключать какие то фичи. И для QAщики поменять конфиг, а не код, это меньший стресс и вероятность ошибок меньше (но тут надо не забыть объяснить QAщику разницу между табами и пробелами и выключить автоматическую конверсию).
А если учесть, что благодаря куберу и не только ему, конфиги так и так лежать в yamlе, то вообще нет ни одного резона использовать переменные окружения.
Хранить секреты в волте и передавать их только через переменные окружения (чтобы враг их не узнал), это прям секрет полишинеля. Получить доступ к переменным окружения не сложнее, чем к файлу..