образ. Как передать тег этого образа в другие проекты гитлаба?
Какой процесс вы хотите реализовать, как между собой связаны проекты? Какое событие/я должно приводить к перевыкату образа?
Привет! В werf для этого используются бандлы (и это как раз альтернатива multiproject pipeline). Настраиваем ci/cd отдельного проекта так, чтобы например после мержа в мастер и прохождения всех тестов публиковался релизный артефакт — бандл с определенной версией (werf bundle publish --repo REGISTRY_REPO --tag SEMVER|SYMBOL_TAG). В этом же проекте мы обычно кладем в .helm и манифесты, нужные для выката данного сервиса. Опубликованный бандл — это хельм чарт в registry по определенной версии + образы связанные с этим чартом. О тегах образов думать не нужно, они уже слинкованы с чартом. Далее можно просто выкатывать этот чарт и получать инстанс версии приложения. Далее в проекте, где требуется использовать сервис мы либо подключаем бандл как helm dependency в .helm/Chart.yaml, либо явным образом выкатываем через отдельную команду werf bundle apply --repo XXX --tag latest. Для выката больше не нужен git-проекта, только registry и требуемая версия бандла. В отличие от multiproject-pipeline с помощью бандлов каждый такой отдельный проект получается независимым и в конфигах этого проекта не хранится знание где он используется. Для отдельного проекта достаточно опубликовать бандл и все, где он будет использоваться — это уже не важно с точки зрения проекта. Получаем легко масштабируемую и ортогональную конфигурацию.
Обсуждают сегодня