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