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