Запуск Дженкинса при отправке изображения GCR (с помощью pub / sub)

Официальная поддержка dockerhub: https://docs.cloudbees.com/docs/admin-resources/latest/plugins/dockerhub-trigger.

Однако для GCR нет (поправьте меня, если я ошибаюсь).

GCR не поддерживает веб-перехватчики, и даже если бы это было так, я бы не хотел настраивать сетевой доступ к моему серверу Jenkins, потому что у меня не было бы IP-адресов для белого списка: Какие диапазоны IP-адресов реестр контейнеров Google использует для инструментов сборки?

Есть ли способ, чтобы Дженкинс опросил Google pub / sub? Я не мог найти для этого плагин.

Я мог бы сделать что-то вроде GCR = ›trigger pub / sub =› trigger VPC-ed cloud function = ›вызвать задание Jenkins, но это большой беспорядок, добавляет больше вещей, которые могут сломаться и которые нужно поддерживать.

Я бы предпочел просто установить триггер, как будто я могу опросить свои репозитории SCM (я использую веб-перехватчики для SCM, но опрос возможен и официально поддерживается).

Есть ли плагин, который мог бы сделать что-то столь же плавное, как добавление триггера pub / sub? https://www.jenkins.io/doc/book/pipeline/syntax/#triggers

Кроме того, возможно, я мог бы сделать что-то вроде выполнения задания по расписанию, которое проверяет GCR каждую минуту или что-то еще, но это серьезно загромождает мою историю сборки и кажется неудобным способом сделать это.


person red888    schedule 15.09.2020    source источник


Ответы (1)


Плагин, который делает все это, определенно нет; Я думаю, что использование Pub / Sub более близкое к вам - это использование чего-то вроде плагина URLTrigger для прямого вызова API pubsub; однако это не решает проблемы аутентификации и того, как реализовать логику для запуска или отключения сборки.

Учитывая мое последнее утверждение, ваше решение может быть дано по частям, например,

  1. настроить, чтобы "репозитории" отправляли уведомление в pub / sub
  2. настроить плагин в jenkins, который читает pub / sub для отслеживания push (например, https://github.com/jenkinsci/pubsub-light-plugin)
  3. настроить его для отправки звонка / уведомления Дженкинса
  4. запустите задачу в jenkins, если шаг 2 был успешным

Надеюсь, это поможет вам найти четкий путь к решению вашей проблемы.

person Elba Lazo    schedule 22.09.2020