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