在通过 UI 控制台使用“流水线(Pipeline)”功能创建了“流水线(Pipeline)”和“触发器(Trigger)”后,即使事件已发送(即代码已推送),“流水线(Pipeline)”也未被自动触发。
导致此问题的几种可能原因如下:
EventListener
未被部署,或者未在目标命名空间监听 Triggers
,或者可能过滤掉了该事件。EventListener
部署中使用的 ServiceAccount
权限不足。Trigger
配置不正确。根据上述可能的问题,请按照以下步骤查找问题的根本原因:
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
是否已正确配置,确保 TriggerBinding
或 ClusterTriggerBinding
中的参数与 TriggerTemplate
中使用的参数匹配。有关如何使用 Gitlab 事件作为示例来设置 Trigger
的详细文档,请参阅 Gitlab 事件。