Поместите все конфиги в один репо, или каждый репо должен иметь свои собственные конфиги
Я пытаюсь развернуть один проект, который разделен на несколько git-репозиториев, меня беспокоит вопрос: должны ли мы создать отдельное репо для конфигурационных файлов kuberentes и файлов развертывания, или каждый репозиторий должен содержать свой собственный код развертывания
Первое решение объединяет все в одном месте, что облегчает изменения, а также кто-то может отслеживать изменения наших развертываний (также я думаю, что может быть проще развернуть весь проект на разных промежуточных серверах - нам не нужно обновлять каждый репозиторий для изменения такие вещи, как токены, URL, пароли БД, ...)
но секундное решение позволяет разработчикам в каждом репо легко изменять способ развертывания своего кода (каждый репозиторий знает, как его развернуть), также может быть проще развернуть код (если мы используем репо для kubernetes, репо кода должно каким-то образом уведомлять kubernetes репо, что код был обновлен или новый образ докера готов в реестре)
1 ответ
В Rancher 2.x Project(s) обеспечивают изоляцию ресурсов, а также квоты ресурсов. Будет ли один пользователь назначен проекту или несколько пользователей совместно используют проект, зависит от варианта использования организации.
Допустим, если команда разработчиков запрашивала вычислительные ресурсы (скажем, 16 ядер и 64 ГБ) в кластере, администратор выделил бы эту квоту для команды. Теперь, как эти ресурсы используются, зависит от членов команды. Можно запустить одну рабочую нагрузку, используя все выделенные ядра / память, или совместно использовать несколько рабочих нагрузок.
Также включение сетевой политики предотвратит связь между проектами. Таким образом, рабочие нагрузки QA-команды и Dev-команды изолированы.
Другой вариант использования - выделить проект для одного организационного приложения. Например, веб-сервер, jenkins, cms могут получить свои собственные проекты.
Теперь обсуждаем хранилище настроек, следуем приведенным выше шаблонам. Как разработчик, я бы не хотел иметь дело с другими конфигами, кроме моей. Но как SRE, я мог бы хотеть сгруппировать все производственные конфиги в одном репо.
Накладные расходы на такое количество репозиториев становятся очень громоздкими и создают некоторую поверхность для проблем в вашем процессе. Если вы собираетесь использовать несколько репозиториев, составляющих вашу платформу, у меня будет конфигурация внутри каждого репо, поэтому изменения легко отслеживаются вместе с изменениями побочного кода.
Лично мы обнаружили, что архитектура монорепо решает многие из этих проблем.