如何在Tekton中设置通用Webhook触发器

问题描述

我想在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中。