问题描述
我想在tekton中设置一个webhook触发器。 In the documentation,我可以找到Github,Gitlab和bitbucket触发器。但是我想要一个处理HTTP POST并读取JSON正文的通用Webhook。
例如:我正在使用Jenkins的通用Webhook触发器进行以下操作。
Prometheus Alertmanager将HTTP POST发送到Jenkins的通用webhook,并且Jenkins处理JSON主体并开始构建。
我想和Tekton一样。 Alertmanager将HTTP POST发送到Tekton Webhook,它将处理JSON正文并开始构建。
这可以通过Tekton的webhook触发器来实现吗?这在tekton中尚不可用,还是我缺少documentation中的某些内容?
如果有人已经这样做了,您能指出我正确的方向吗?我正在使用openshift 4.5
解决方法
是的,这应该可以正常工作。
您创建了一个EventListener-这会旋转一个Deployment
和一个Service
,您必须以某种方式将它们公开,例如在OpenShift上使用Route
或在Kubernetes中使用Ingress
-这是Prometheus Alertmanager应该将其POST请求发送到的URL。
还创建一个TriggerBinding,您可以在其中声明 jsonPaths ,以将JSON有效载荷中的数据检索为参数。
最后,您需要一个TriggerTemplate来声明您的触发器应创建的Tekton资源,对于每个事件,通常是一个PipelineRun,并且您应声明如何将TriggerBinding中的参数映射到这些参数在您的PipelineRun中。