Size: a a a

2020 May 31

GG

George Gaál in ru_gitlab
Сергей Вихирев
А можно как-то привязать выполнение пайплайна к определенному раннеру?
что-то типа
create-runner:
 script: ssh... gitlab-runner register -- tag-list $CI_PIPELINE_ID

job:
 tags:
   - $CI_PIPELINE_ID

что-то типа того
но так конечно не работает :(
В смысле ? Ты можешь на каждый раннер уникальный тег навесить
источник

DB

Dmitrii Barsukov in ru_gitlab
Несколько тегов. И тегать джобы либо общими, либо  частными тегами
источник

GG

George Gaál in ru_gitlab
Либо менеджить раннеры - для проекта можно групповые раннеры отключать
источник

СВ

Сергей Вихирев... in ru_gitlab
ну мне нужно что бы тэг был динамический, а так нельзя.
я просто хочу стартовать раннер в облаке, и чтобы он выполнял один пейплайн а потом завершался/удалялся.

без
```
 tags:
    - $CI_PIPELINE_ID
```
я не могу быть уверен что он не станет выполнять какойто другой паралельный пайплайн
источник

GG

George Gaál in ru_gitlab
Сергей Вихирев
ну мне нужно что бы тэг был динамический, а так нельзя.
я просто хочу стартовать раннер в облаке, и чтобы он выполнял один пейплайн а потом завершался/удалялся.

без
```
 tags:
    - $CI_PIPELINE_ID
```
я не могу быть уверен что он не станет выполнять какойто другой паралельный пайплайн
Ещё раз
источник

GG

George Gaál in ru_gitlab
Ты можешь зарегать раннер не на весь гитлаб, а на конкретный проект
источник

GG

George Gaál in ru_gitlab
Если ты про конкретный инстанс пайплайна - есть настройка конкарренси
источник

GG

George Gaál in ru_gitlab
Дальше я попросил бы тебя подробное описание задачи, т.к. в общей формулировке ничего не подскажешь
источник

СВ

Сергей Вихирев... in ru_gitlab
вот смотрите...
есть у меня 5 джобов в пайплайне, и 10 разрабов
они одновременно приходят и жмут билд.
я хочу, что бы сначала какойто "постоянный раннер" скажем с тэгом "оркестратор" создал из образа виртуалки и запустил на ней ранеры. (10 виртуалок для 10 разрабов)
ну и когда пайплайны выполняться, виртуалки бы удалились

и я НЕ хочу чтобы была ситуация когда
раннер А выполнявший job для паплайна 1, вдруг начинал бы выполнять job от другого паплайна
хочу чтоб бы паплайн целиком выполнялся на одном раннере
источник

GG

George Gaál in ru_gitlab
Эм
источник

GG

George Gaál in ru_gitlab
Сделай по-другому
источник

GG

George Gaál in ru_gitlab
Делаешь отдельный раннер - который и будет оркестратором
источник

GG

George Gaál in ru_gitlab
В нем выполняется пайплайн
источник

GG

George Gaál in ru_gitlab
А в самом пайплайне на первом этапе создаёшь виртуалки
источник

GG

George Gaál in ru_gitlab
Потом гонишь тесты. И в конце - очистка
источник

СВ

Сергей Вихирев... in ru_gitlab
да
источник

GG

George Gaál in ru_gitlab
Для каждого пайплайна - пилишь свое именование виртуалок, чтобы они не пересекались
источник

GG

George Gaál in ru_gitlab
Т.е. сам раннер физически один. А в виртуалки он ходит по api & ssh
источник

СВ

Сергей Вихирев... in ru_gitlab
ну он запускает еще 10 раннеров
источник

DB

Dmitrii Barsukov in ru_gitlab
Хм, а юзать раннер на кубере - это не то? На каждый джоб создаётся свой раннер в кубере, и больше джобов не берет, потом убивается.
источник