Задание Jenkins должно получить статус развертывания из конвейера Spinnaker (успех / ошибка) - PullRequest
0 голосов
/ 20 февраля 2020

Я новичок в использовании спинакера. Я настроил спинакер с рулевой диаграммой в моем кластере k8s. Все работает нормально. Теперь у меня есть новое требование для настройки уведомлений для конвейера спинакера (Успех / сбой). Но требование сложно. Я прочитал о Спинакере и Дженкинсе, чтобы опубликовать статус успеха / неудачи. У Spinnaker есть механизм уведомления, чтобы уведомлять каждый этап / конвейер об успехе / неудаче. Мы можем настроить это уведомление. У Дженкинса такой же механизм. Но вопрос заключается в том, что когда конвейер спинакера успешно завершен, он запускает задание Jenkins для публикации статуса конвейера спинакера на портале. Я создал этап Jenkins, который успешно запускает задание Jenkins, но он не перехватывает статус или события из конвейера спинакера. В случае сбоя конвейера спинакера задание Jenkins не отправит сообщение об ошибке. Я пытался найти решение, но не смог этого сделать. Если кто-нибудь знает, как решить эту проблему, пожалуйста, сообщите мне или напишите мне решение здесь.

Спасибо

1 Ответ

0 голосов
/ 20 февраля 2020

Вам не нужно создавать этап Jenkins в том же конвейере, который вы отслеживаете. Вы можете создать дополнительный конвейер в Spinnaker, который получает триггер от целевого конвейера. Все, что вам нужно, это настроить триггер в этом новом конвейере:

  "triggers": [
    {
      "application": "demo-app",
      "enabled": true,
      "pipeline": "demo-pipe",
      "status": [
        "successful",
        "failed"
      ],
      "type": "pipeline"
    }
  ] 

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

Если post the pipeline status on the internal portal в ваших терминах означает для отправки HTTP-запроса, чем вы должны рассмотреть Webhook Stage .

Во время выполнения у вас есть весь родительский конвейерный контекст в нисходящем потоке, и вы можете получить его состояние с помощью выражения типа ${trigger.parentExecution.status}, чтобы предоставить его в вашем запросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...