-
Notifications
You must be signed in to change notification settings - Fork 420
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support routing to different eventlisteners based on request content #205
Comments
Hi @bobcatfish thank you for writing this up. One EventListener makes event routing simple - it gets all events. However it's then routing to multiple triggers across multiple repositories, and so maintaining it - via GitOps or otherwise - can become contentious. We may start with one uber-EventListener but I think we need to evolve beyond it. Ideally I'd like the owners of a Pipeline for a specific repository to also own its Trigger artifacts - TriggerTemplate, TriggerBinding, EventListener. That would leave them more in control of a simple GitOps process to manage their EventListener - but now we have multiple EventListeners. If we assume that all inbound webhooks arrive at a single collector, then that collector can do one of two things:
So we have to have smarts either in an EventListener - 'is this for me?' - or in front of a set of EventListeners. I would like to be able to implement the 'spray' pattern, which makes EventListeners simple 'subscribers to an event feed.' So I'm left with wanting a simple |
One endpoint for all GitHub events to hit | A way to route traffic to different eventlistenersI suppose it would be possible to send a request to an "interceptor" that is actually an I think there is some discussion around what an appropriate response is for interceptors, which might tie into auditing of such a design. Alternatively, handling any number of event types can already be handled with multiple triggers. One interceptor invoked to make sure that the request is validWhether through use of the core interceptors (occurring within the |
/kind feature |
Issues go stale after 90d of inactivity. /lifecycle stale Send feedback to tektoncd/plumbing. |
Rotten issues close after 30d of inactivity. /close Send feedback to tektoncd/plumbing. |
Stale issues rot after 30d of inactivity. /lifecycle rotten Send feedback to tektoncd/plumbing. |
@tekton-robot: Closing this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
/remove-lifecycle rotten @dibyom do you think this makes sense to include in the roadmap? |
Oh it already IS in the roadmap https://github.com/tektoncd/triggers/blob/master/roadmap.md /lifecycle frozen |
/area roadmap |
Expected Behavior
In our recent working group meeting, @mnuttall described his use case where he wants to have triggering for many repos, where each needs to have different eventlistener configuration (). He would like a way to minimize the number of ingresses and running interceptors that are required to support this, e.g. something like:
Actual Behavior
In order to support this today, you can:
Additional Info
Question for @mnuttall: do you want to have many eventlisteners configured running in this scenario, or would you rather have one eventlisteners with many bindings, and a way of mapping from the request to the binding? (And of course is there anything I missed / got wrong about your use case? :D)
The text was updated successfully, but these errors were encountered: