Pipeline 未自动触发
问题描述
通过 UI 控制台使用 Pipelines 功能创建 Pipeline 和 Trigger 后,即使事件已发送(即代码已推送),Pipeline 也不会自动触发。
根本原因分析
此问题可能有多种原因:
- webhook 配置未正确设置。
EventListener未部署,或未监听目标命名空间中的Triggers,或者可能已将该事件过滤掉。EventListener部署所使用的ServiceAccount权限不足。Trigger配置不正确。
问题排查
针对上述可能问题,请按照以下步骤查找问题的根本原因:
webhook 配置未正确设置
- 使用具有适当权限的账户访问您的仓库/设置。
- 检查所有 webhook 设置,并与管理员确认 webhook 的目标地址详细信息。
- 确保 webhook 已启用所需的事件。有关 GitLab 事件,请参阅 GitLab Event Triggers
EventListener 未部署或设置不正确
- 与管理员确认
EventListener已部署,并且可以从事件源(即 GitLab 实例)访问。 - 访问
EventListener资源,并检查它是否正在监听目标命名空间中的Triggers。检查EventListener资源的spec,其中应将namespaceSelector字段设置为*或列出目标命名空间。 - 确保
EventListener资源中的interceptors没有过滤掉该事件。 - 检查
EventListener日志中是否存在任何错误或警告。可通过kubectl命令执行此操作:kubectl logs <eventlistener-pod-name> -n <namespace> - 确保
EventListener使用的ServiceAccount具有适当权限,包括对PipelineRun资源的create权限。
有关 EventListener 配置的详细文档,请参阅 EventListener
Trigger 配置不正确
- 验证
Trigger是否已正确配置,确保来自TriggerBinding或ClusterTriggerBinding的参数与TriggerTemplate中使用的参数匹配。
有关使用 GitLab 事件作为示例来设置 Trigger 的详细文档,请参阅 GitLab Events