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

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

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

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

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

1 Ответ

1 голос
/ 15 января 2020

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

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

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

...