July 22, 2021

GitLab Runners и неожиданные перевоплощения

У GitLab для выполнения его CI используются внешние сервисы - раннеры (runners). Про них можно написать много (и написано очень много), но у них есть среди их свойств одно, про которое и пойдет речь.

У них есть тип (type). Бывают они собственно общими (shared), групповыми (group) и конкретными (specific). В чем отличие: общие могут использовать любые проекты, они общедоступны; групповые доступны только определенным группам; ну а конкретные - определенным, назначенным, проектам.

А теперь время особой магии - по умолчанию любой раннер у нас общий. Как только вы его зарегистрируете - он будет именно такой. Но если на него назначить группу - он станет групповым. А если проект - то соответственно конкретным. В принципе логично.

Другое дело, уже не логичное, что если даже с него удалить все группы/проекты - он обратно общим не станет, а останется таким же. И никак принудительно его не заставить вернуть открытость взглядов. Как лечить? Удалять и регистрировать новый, и все, больше путей нет.

Причем репорт об этом проблеме висит у разработчиков GitLab уже 4 года. Все еще открыл и здоров, неплохая такая проблема, которая уже скоро в старшую группу детсада перейдет по возрасту.


P.S. Еще интересно как ведут себя конкретные и групповой раннер, если попытаться в него включить соответственно группу или конкретный проект (и вообще даст ли). На днях поставлю эксперимент.