основной репозиторий git в качестве родительского репо и возможность выбрать, какие дочерние репо выбрать - PullRequest
0 голосов
/ 08 июля 2019

В моем проекте будет много микросервисов, и для локальной / dev среды я хочу иметь возможность выбирать, какие микросервисы мне нужны, и автоматически извлекать / конфигурировать / докеризировать их (опционально я могу установить флаг allчтобы получить все услуги).

Чтобы добиться того, что я хочу использовать основной репозиторий, назовем его backend-entry, и в этом репозитории будет docker-compose файл с изображениями, который будет использоваться всеми / большинством сервисов, таких как revers-proxy, DB(для dev env, наверное, нормально иметь единый сервис БД) и так далее.Кроме того, я хочу использовать Ansible в качестве средства выполнения задач для извлечения всех служб, имеющих основной playbook и sub playbooks для каждого дочернего репо.И папка services, где я хочу хранить все сервисы (клонированные git-репозитории).

Структура каталогов:

- backend-entry
  ./devops 
     ./docker # all docker related data
        docker-compose.yml
        # other docker related data like docker files, configs and so on
     ./ansible
        ./development
           run.yml # main playbook
           ./services # folder to which holds sub playbooks
               service_one.yml 
               service_two.yml 
  ./services 
      ./service_one/
      ./service_two/ 

Основная книга воспроизведения run.yml, вероятно, будет включать в себя только все вспомогательные книги воспроизведения и, возможно, запуститьвсе общие задачи.Каждая подпрограмма наподобие service_one.yml будет иметь задачи для клонирования / извлечения собственного репозитория и запуска всех связанных с сервисом задач.

Я сделал логику выборки под-репозиториев, и вот вопрос: Должен ли я добавить папку service в gitignore или сделать их подмодулями git?

Я не знаком с подмодулями git, но для меня преимущество в том, что он централизован.отслеживать / изменять все хранилища одновременно.Но также, насколько я понимаю, у него есть недостаток, и он заключается в том, что каждый разработчик должен всегда сохранять все сервисы на своей машине, и это может быть огромными накладными расходами.Может быть, кто-то уже работал с подобной настройкой и может поделиться своими мыслями, лучшими практиками?Спасибо!

...