Входящие webhooks
Входящие webhooks позволяют запускать pipeline напрямую через HTTP POST-запросы, без необходимости наличия Git-событий.
Содержание
ОбзорНастройка входящего webhookЗапуск Pipeline через входящий webhookPayload входящего webhookПользовательские параметрыВопросы безопасностиУстранение неполадок во входящих webhooksРекомендации1. Управление PipelineRun2. Мониторинг3. Входящие webhooksУстранение неполадокPipelineRun не созданPipelineRun не запускаетсяСтатус не сообщаетсяДальнейшие шагиОбзор
Входящие webhooks предоставляют способ:
- Запускать pipeline из внешних систем
- Интегрироваться с инструментами CI/CD, которые не используют Git
- Запускать pipeline вручную или через вызовы API
- Поддерживать пользовательские payload и параметры
- HTTP POST-запрос: отправьте POST-запрос на конечную точку PAC controller
/incoming - Аутентификация: PAC проверяет запрос с использованием secret (из заголовка или параметра query)
- Поиск Repository: PAC находит Repository CR на основе имени repository и namespace
- Триггер pipeline: PAC обрабатывает payload и запускает соответствующие pipeline, аналогично событиям Git webhook
- Создание PipelineRun: PAC создает PipelineRun на основе payload и определений pipeline
Ключевые отличия от Git webhooks:
- Не используется Git provider — прямые HTTP-запросы
- Пользовательский формат payload — вы контролируете структуру
- Можно запускать pipeline без фактических Git-коммитов
- Полезно для внешних интеграций и ручных запусков
Настройка входящего webhook
-
Включите в Repository CR: добавьте конфигурацию входящего webhook в ваш Repository CR:
-
Создайте secret для входящего webhook:
-
Получите URL входящего webhook:
Конечная точка входящего webhook:
Параметры URL (необязательно, также могут передаваться через заголовки):
repository: имя Repository CRnamespace: namespace, где расположен Repository CRsecret: значение secret входящего webhook
Пример с query-параметрами:
Пример с заголовками (рекомендуется для повышения безопасности):
С заголовками: X-Repository, X-Namespace, X-Secret
Используйте заголовки (X-Repository, X-Namespace, X-Secret) вместо query-параметров, чтобы не раскрывать secret в URL и журналах.
Запуск Pipeline через входящий webhook
Отправьте POST-запрос на конечную точку входящего webhook:
Payload входящего webhook
Входящий webhook принимает JSON payload со следующей структурой:
Пользовательские параметры
Вы можете передавать пользовательские параметры в payload webhook:
Эти параметры будут доступны в вашем pipeline как $(params.environment) и $(params.deploy).
Вопросы безопасности
- Используйте secret: всегда используйте secret webhook для проверки запросов
- HTTPS: используйте HTTPS для конечных точек webhook в production
- Сетевые политики: ограничьте доступ к конечным точкам входящего webhook
- Ограничение скорости: реализуйте rate limiting, чтобы предотвратить злоупотребления
- Проверяйте payload: проверяйте входящие payload перед обработкой
Устранение неполадок во входящих webhooks
-
Проверьте URL webhook: убедитесь, что URL корректен и доступен
-
Проверьте secret: убедитесь, что secret совпадает как в запросе, так и в Repository CR
-
Проверьте логи PAC:
-
Проверьте Repository CR: убедитесь, что входящий webhook настроен корректно
-
Проверьте с помощью curl: используйте curl для проверки конечной точки webhook
Рекомендации
1. Управление PipelineRun
- Задайте ограничения на очистку: используйте
max-keep-runs, чтобы предотвратить накопление - Следите за ресурсами: контролируйте использование ресурсов PipelineRun
- Архивируйте важные запуски: экспортируйте важные PipelineRun перед очисткой
2. Мониторинг
- Используйте labels: назначайте PipelineRun labels для более удобной фильтрации
- Настройте alerts: настройте alerts для неудачных PipelineRun
- Регулярная проверка: периодически проверяйте статус и логи PipelineRun
3. Входящие webhooks
- Защищайте конечные точки: всегда используйте HTTPS и secret
- Проверяйте payload: проверяйте входящие payload webhook
- Документируйте использование: документируйте конечные точки webhook и форматы payload
- Тщательно тестируйте: тестируйте триггеры webhook перед использованием в production
Устранение неполадок
PipelineRun не создан
- Проверьте webhook: убедитесь, что webhook настроен и получает события
- Проверьте Repository CR: убедитесь, что Repository CR настроен правильно
- Проверьте логи PAC: просмотрите логи PAC controller на наличие ошибок
- Проверьте файл pipeline: убедитесь, что файл с определением pipeline существует в repository
PipelineRun не запускается
- Проверьте статус: просмотрите статус и conditions PipelineRun
- Проверьте логи: изучите логи PipelineRun и TaskRun
- Проверьте ресурсы: убедитесь, что в cluster достаточно ресурсов
- Проверьте permissions: убедитесь, что ServiceAccount имеет необходимые permissions
Статус не сообщается
- Проверьте token Git provider: убедитесь, что token имеет необходимые scopes
- Проверьте PAC Watcher: убедитесь, что PAC Watcher запущен
- Проверьте логи: проверьте логи PAC Watcher на наличие ошибок
- Проверьте подключение: убедитесь, что PAC может обратиться к API Git provider
Дальнейшие шаги
- Trigger Pipelines - Узнайте о различных способах триггеров
- Maintain Pipeline Code - Руководство по определению pipeline
- Configure Repository - Настройка repository
- Common Issues - Руководство по устранению неполадок