Через ран я же могу запустить только один образ и

запаралелить не могу?

10 ответов

15 просмотров

Да, но можно распараллелить на уровне CI. В рамках сборки это прям не тру. Если вы уж хотите с этим велосипедом жить, то заверните образы в if eq .Env tests (https://werf.io/docs/v2/reference/werf_yaml_template_engine.html#env) и запускайте отдельно с --repo="". Если есть общие слои с остальными образами, то можно ещё --secondary-repo=$REPO прикрутить.

Alex-Подрябинкин Автор вопроса
Aleksei Igrychev
Да, но можно распараллелить на уровне CI. В рамках...

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

Alex Подрябинкин
такой вариант типо работает как надо/ но по факту ...

+ можете подробнее рассказать про промежуточные образы и ожидаемое поведение. Из вашего сообщения не понятно.

Alex Подрябинкин
такой вариант типо работает как надо/ но по факту ...

Если я правильно понял, то вы тесты можете переложить из image в artifact. Они не должны в final-repo отправляться (если ничего не путаю).

Alex-Подрябинкин Автор вопроса
Aleksei Igrychev
+ можете подробнее рассказать про промежуточные об...

Ситуация. Есть много репозиториев 50+. В каждый репозиторий подключен сабмодуль, который содержит в себе универсальный хелм с базовыми знаниями, инструкция stapel для сборки базовых имеджей, набор темплейтов для стапела, а также единый werf yaml в котором собираются все необходимые кусочки. В каждом репозитории есть несколько директорий. src для исходного кода, values где лежит структура файлов для helm, build_vars где лежат файлы с параметрами сборки. Смысл заключается в том что разработчики могут положить в директорию build_vars файл с именем {service_name}.yaml где будут перечислены минимальные наборы параметров. Такие как на чем написан сервис dotnet(90%)/node/python и так далее, укажат путь к корню исходного кода в папке src (в этой папке код может быть сразу в корне для одного сервиса, может много директорий для разных сервисов), и указывают необходимо ли делать юнит тесты, проводить сканирование на уязвимости, сонар сканирование исходного кода и другие параметры. Исходя из этих параметров и логики заложенной в werf.yaml и stapel шаблоны система автоматически рендерит все необходимые шаги для выполнения. Так как большая часть кода это дотнет и все виды проверок чаще всего надо запускать после рестора пакетов, или вместе с Билдом(сонар) все эти шаги делаются внутри сборочного процесса. А так как сервисов иногда много (есть монорепы с 10+ сервисами) и они дробятся внутри одного репозитория, тратится много времени на отправку не нужных слоев в регистри(сонар, тесты, уязвимости). Раньше я тягал все это добро по всем регистри, потом использовал final-repo и теперь на прод не тянуться слои внутренних стейджов всех образов. Сейчас. Подключил параметр final: true final:false и теперь эти образа где проходят сканирования, не попадают в финальный регистри. Однако осталось проблема на pr пайпланах, мне надо запустить все (тесты, сонар, уязвимости) на кодовой базе которая мне достается из предыдущих слоев. Плюс надо запустить в правильном порядке и в правильной параллельности и передавать данные (файлы) между этим проверками. Например кое-где сонар должен запускаться после тестов чтобы забрать через импорт файл с покрытием, кое где сканирование на уязвимости должно запускаться после сонара, чтобы имело ссылку на сонар сканирование, чтобы передать эту информацию вместе со своими результатами на сервер. В итоге все работает и выполняется как надо, в правильном порядке и где необходимо, разработчики сами подкидывают файл для нового сервиса, и сразу же получают все необходимое. Но засчёт того что образов получается много, а некоторые вообще никак не нужны (только прогнать тесты) хотелось бы их скипнуть от загрузки в регистри, чтобы не тратить время на это. Надеюсь хоть что-то с моей писанины станет понятно))))

Alex Подрябинкин
Ситуация. Есть много репозиториев 50+. В каждый ре...

В werf version v2.9.1есть - If you simply need to limit the scope of image use, use the 'final' directive: ''' image: builder from: alpine:3.10 final: false ''' Вам подойдёт?

Alex Подрябинкин
Ситуация. Есть много репозиториев 50+. В каждый ре...

Добро. Тогда не понятно, почему вам не подходит один из предложенных мной вариантов (https://t.me/werf_ru/40539).

Alex-Подрябинкин Автор вопроса
Aleksei Igrychev
Да, но можно распараллелить на уровне CI. В рамках...

Про вот такой вариант, всё делается как надо, но все базовые образы не проверяются по хэшу в регистри, а начинают скачиватся. По итогу хотел избавиться от выгрузки образов, а получил загрузку

Alex Подрябинкин
Про вот такой вариант, всё делается как надо, но в...

Если вы хотите базовые образы (или ещё какие-то слои) хранить в registry, то вы можете создать отдельные образы, на которых базировать свои тестовые (fromImage).

Похожие вопросы

Обсуждают сегодня

Version: v2.9.3 часто стало падать с ошибкой werf plan │ platform: linux/amd64,linux/arm64 └ 🏗️ image pilot (0.61 seconds) └ 🏗️ image oauth2_proxy (0.63 seconds) panic: run...
Sergey Sokolov
8
Кажется сломалась сборка в докере docker run --pull always --rm -it registry.werf.io/werf/werf:2-stable werf version ...
Evgeniy Medvedev
1
Вопрос к werf напрямую не относится, но всё же: есть хелм чарт, в нём есть лейблы, они используются для селекторов. Как их поменять ? Т.е. если просто поменять, удалить чарт ...
Anton Warm
5
Добрый день! Как-то можно заставить buildah не выводить каждую bash команду на экран? Иначе он мои секреты из heredoc показывает в консоли Github. А так как werf переносы стро...
Vyacheslav
1
Блин а мне как поумнеть ?
Toxin
191
с gcr похоже не очень корректно работает. если задать WERF_REPO_CONTAINER_REGISTRY="gcr" и WERF_REPO=us-central1-docker.pkg.dev/infra-430406/asi-hello-world тогда получаю ошиб...
Sergey Sokolov
1
Коллеги, здравствуйте. Подскажите пожалуйста. Используем версию werf v2.6.3. И стали у нас выходить в консоли вот такие "WARNINGS" как их отключить вообще? └ Adding custom ta...
vⱥ𝖉iϻ ϻⱥlͥтsͣeͫv♛
1
Всем привет! Сорри за назойливость 😄 Я пришел с предложением: 1. Мы юзаем вендор чарты, но тащим чарт к нам в репу, билдим их образы с помощью также werf, создаем dockerfile, ...
Danil Ivanov
1
Всем привет 👋 Подскажите пожалуйста, а чего тут не хватает permission или образ битый? Running with gitlab-runner 17.0.0 (44feccdf) on gitlab-runner-c58775949-d7znz YxYz2zp...
Max
2
Коллеги, у меня тут возникла одна очень интересная задачка. Есть один бандл, который содержит в себе 2 типа образов - бэкенд и фронтенд. Выкатываются последовательно, сперва б...
სერგეი ქრისტოვი
25
Карта сайта