Заставить Дженкинса Перепланировать Этап Параллельного Конвейера, Как Только Узел Отключится От Сети.

  • Автор темы Владимир Вахрушев
  • Обновлено
  • 19, Oct 2024
  • #1

Именно это. В нашей среде мы используем вытесняемые узлы GCE и плагин Jenkins GCE. Как следствие этого, весьма вероятно (даже ожидаемо), что узел исчезнет в ходе сборки. Проблема в том, что плагин Jenkins GCE просто помечает этот узел как «автономный», но «часть» параллельного задания, которому был назначен исполнитель на этом узле, будет просто продолжать работать там, по-видимому, навсегда, очевидно, в надежде, что узел Вернись.

Тогда у меня вопрос простой:

Можно ли заставить Дженкинса перенести расписание (НЕТ сбой) «часть» параллельной сборки, как только узел, на котором она выполняется, отключается от сети? Если да, то как это делается?

#jenkins #jenkins-pipeline

Владимир Вахрушев


Рег
23 Oct, 2020

Тем
81

Постов
211

Баллов
636
  • 25, Oct 2024
  • #2

Есть два подхода к этому, ни один из них, на мой взгляд, не особенно хорош, поскольку они строго не «НЕ проваливают» сборку:

  1. Используйте плагин, такой как Naginator, который можно настроить на перезапуск сборки, пока она не пройдет. Это может быть весьма неприятно, поскольку вам нужно различать завершаемые эфемерные/вытесняемые виртуальные машины и действительно неудачную сборку.

  2. Перейдите в модель оркестратора который управляет отдельными заданиями и перезапускает их на основе набора правил.

Возможно, лучшим решением была бы разработка плагина Jenkins, аналогичного Плагин EC2 Fleet который отвечает за развертывание и поддержку спотовых инстансов (т. е. аналогичных вытесняемым инстансам GCE), повторно отправляя задания в случае их сбоя из-за возврата экземпляра.

 

-=BaZeL^4=-


Рег
22 Nov, 2006

Тем
78

Постов
167

Баллов
577
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно