Как я могу представить информацию об окружающей среде (например, внешние URL-адреса служб или пароли) для развертывания OpenShift / Kubernetes?

У меня есть приложение переднего плана (React). Я хочу построить его и развернуть в 3 средах - dev, test и production. Как и каждому внешнему приложению, оно должно вызывать некоторые API. Адреса API будут различаться в зависимости от среды. Поэтому они должны храниться как переменные среды.

Я использую стратегию сборки S2I Openshift для создания образа. Образ должен быть построен и запечатан для изменений, а затем перед внедрением в каждую конкретную среду должны быть введены переменные.

Поэтому я считаю, что правильное решение - это двухступенчатая сборка. Первый S2I, который компилирует исходники и помещает его в Nginx / Apache / другой контейнер, а второй, который берет результат первого, добавляет переменные окружения и создает окончательные образы, которые будут развернуты в dev, test и production.

Это правильный подход или, возможно, существует более простое решение?

Всего 1 ответ


Я бы не запекла вашу информацию об окружающей среде в ваш образ контейнера времени выполнения. Одним из основных преимуществ контейнеризации является использование одного и того же образа времени выполнения во всех ваших средах. Создание отдельного образа для каждой среды увеличит вероятность того, что ваши производственные развертывания будут вести себя иначе, чем те, которые вы тестировали в более низких средах.

Для нечувствительной информации типичным подходом для параметризации вашего образа во время выполнения является использование одного или нескольких из:

Для конфиденциальной информации типичным подходом является использование:


Есть идеи?

10000