Pull to refresh

Comments 32

Создаем замену GitLab CI на базе OpenSource-инструментов


У GitLab есть Community Edition - бесплатная версия.
Пользуемся GitLab CE (self-hosted). Денег не берут.
Есть опасения что GitLab CE станет платной?

GitLab CE имеет ограничения: 5GiB диск, 400 мин пайплайнов в месяц, и 5 пользователей. Gitorion Platform таких ограничений не имеет

Вы точно про self-hosted CE?

UPD: простите, не обратил внимание что вы свой продукт рекламируете

В Gitlab нет таких ограничений, причём даже в облачной версии, не вводите людей в заблуждение.

Только минуты облачных Gitlab runner'ов ограничены, как и в любом подобном облачном решении. Чтобы использовать их сколько угодно, нужно подключить свои Gitlab runner'ы, которые легко поднимаются в кубере с автоскейлингом и на spot инстансах и всё.

Основные ограничения Gitlab CE в дополнительном функционале, без которого абсолютно нормально живут большинство даже при серьезной коммерческой разработке (точнее большая часть реализуется самостоятельно без проблем) (mandatory MR approvals, security scans & etc)

Мы просто привели данные с официального сайта GitLab https://about.gitlab.com/pricing/

Спасибо что поправили нас. У нас не было цели вводить в заблуждение

Как это развернуть у себя?

Если это пошаговое how-to, то где шаги для воспроизведения?

Какие плюсы по сравнению с Gitea Actions или Drone?

Почему это называется "платформа"?

В голосовалке отсутствует ещё один вариант

Это серия статей в которой мы осветим наш путь. "платформа" - потому что мы собрали в единое целое несколько CI/CD инструментов в один готовый продукт. Какой вариант вы бы добавили в голосовалку?

да зачем когда Gitea Actions совместимы с Github action. Если уж и учить что-то, то хоть полезное.

Вообще, странно, что выбор был сделан в пользу Gitea (а не Forgejo), т.к. недавно Gitea стал "немножко" несвободным (и лично мне не до конца ясно, будет ли ограничение лицензии на использование Gitea в коммерческой платформе).

Также для меня странно, что в качестве CI выбран Jenkins, а не что-то иное - например, Drone/Woodpecker/иное. Да, Jenkins может быть хорош и прекрасен, но мне не посчастливилось ещё увидеть такой случай - чаще наоборот.

Ну, допустим. Давайте посмотрим на второй пост автора/команды.

Ценное замечание. Решение принималось до появления Forgejo. Мы учтем его и проработаем подключение Forgejo в платформу. Jenkins выбрали из-за большого числа плагинов

А где можно почитать про несвободность Gitea? На сайте вижу MIT.

Тут скорее всего, замечание не по текущему моменту, а на перспективу, потому что Forgejo судя по всему возник из-за попытки сделать Gitea коммерческим

1) гитлаб на своем сервере и его раннеры там же - бесплатно

2) тоже думаю что используя гити, дженкинс лишний. У гити теперь есть (почти) полная поддержка github-actions (я рассказывал об этом тут)

3) по sso - рекомендую присмотреться к authelia, ихмо кейклок опять же избыточен.

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

Если хотите настоящий GiOps, посмотрите на Argo/Flux. Как по мне kubecl apply или helm upgrade такой себе GitOps

Нам нужно было по web-хуку вытянуть git-репозиторий, собрать Docker-образ и выполнить деплой в кластер Kubernetes. Все эти задачи решили c помощью Jenkins. А какой инструмент вы бы посоветовали для непрерывной доставки?

У ArgoCD среди Webhook integration только - GitHub, BitBucket, GitLab, а Gitea/Forgejo в списке нет. А мы строим Gitorion Platform как self-hosted решение с собственным хостингом хода и системой управления версиями

Это потому, что ему не нужна вебхук интеграция. Он умеет сам следить за состоянием гит репозитория и применять изменения, как только они попадут в гит

В 2024 году Jenkins? Вы серьезно?!

Вполне. А что с ним не так ?

В случае ci/cd сейчас полностью достаточно gitlab-ci и github actions. Нет никакой необходимости в лишних сервисах, весь ci интегрирован с системами хранения кода и очень удобен. Там же приватные хранилища контейнеров и внешних пакетов. И все это есть в бесплатном GitLab CE для локалки.

Если, мы правильно понимаем, большинство предложенных решений - это коробочные решения и вносить в них изменения могут только мейнтейнеры данных продуктов. Компоненты Gitorion запускаются в Kubernetes, что дает возможность удалять и добавлять их по принципу конструктора Лего. Например, выше наше внимание заострили на возможной комерционализации Gitea в будущем и мы просто удалим из платформы контейнеры Gitea и добавим контейнеры Forgejo. Так же выше было замечание об избыточности применения Jenkins. Можно просто удалить из платформы Jenkins и реализовать непрерывную доставку в Forgejo Action, если он покрывает наши потребности. Или заменить Keycloak на Authelia если он окажется действительно избыточным, для наших целей. Но об этом в четвертой статье

В кубернейтс запускается все что можно в контейнеры сложить, т.е. практически все и нахрена спрашивается мне внутри структуры приложение ещё и ci сервисы, когда они снаружи должны быть.

Возможно ваш продукт не плох, но вы явно не изучили рынок. Если вы хотите добиться результатов с этим проектом в первую очередь вам нужно изучить историю гитлаб и вы поймёте как на рынке сформировалась текущая ситуация. А она такова что конкурировать с гитлаб в контексте Селф хост решений (коробок) почти не возможно. Т.к. GitLab CE это опенсорс который бесплатно поддерживает лидер коммерческого рынка то есть сам сервис гитлаб. Фишка в том что они пытались его сделать платным но не смогли. И Вам гораздо лучше было бы подходить к вопросу со стороны платформы, где вы бы могли иметь конкурентные преимущества, например хранение исходных кодов в РФ и конкуренция в цене. А со стороны Селф хоста конкурировать с бесплатным продуктом в котором в силу исторических обстоятельств отсутствуют недостатки бесплатных решений и опен сорса будет очень сложно, если вообще возможно.

Это не хейт, а искреннее желание помочь вам получить фидбек.

У нас нет цели конкурировать с GitLab. Это было бы слишком самоуверенно. Идея в том чтобы создать альтернативу из Open-Souce инструментов, принадлежащих сообществу и не зависящих ни от коммерческих, ни от облачных решений. Из преимуществ выше мы уже озвучивали, что набор инструментов может варьироваться исходя из предпочтений заказчика.

Далеко не все используют github/gitlab. Мы например bitbucket

Битбакет тоже поддерживает и gitlab-ci , и полно инструментов для конвертации пайплайна.

Битбакет тоже поддерживает и gitlab-ci , и полно инструментов для конвертации пайплайна.

понятно, что сову можно натянуть на любой глобус, было бы желание, но зачем

Ну у битбакета тоже есть свой стандарт пайплайна и он тоже хорош, все они на базе докера и делать в них можно все что угодно. Сова на глобусе это как раз внешние CI сервисы типа Jenkins. Зачем внешний CI когда он уже лежит в коробке с твоим репозиторием?

Sign up to leave a comment.