-
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 a pipeline of execution #820
Comments
Thanks for the feature request! Initial reaction - this seems like a good goal (in particular, for webhook validation). We're looking to keep the EventListener largely agnostic, deferring to Interceptors to handle user customization and other things like credentials and caching. Having an EventListener level hook for user defined interceptors might be one way to approach this. We've been discussing adding catalog support for interceptors to make using Interceptors asier (e.g. you could use a predefined interceptor for comment -> PR resolution instead of writing your own), which EventListenters could presumably also use. There's a few things we need to work through. In particular, we'll need to figure how how this impacts debugging for triggers (particularly w/ multi-tenant EventListeners where users have access to Triggers, but not necessarily to the EventListener). As a short term solution, alternative (c) seems most reasonable to me. (b) has the downside of decoupling events, which can make it harder to debug/trace what's happening. (a) is this FR, which we'll continue to look into, but isn't available at the moment. |
Issues go stale after 90d of inactivity. /lifecycle stale Send feedback to tektoncd/plumbing. |
This seems partly related too: #205 - the feature talks about chaining event listeners - but the idea to have an initial common filtering logic is the same. |
Issues go stale after 90d of inactivity. /lifecycle stale Send feedback to tektoncd/plumbing. |
Stale issues rot after 30d of inactivity. /lifecycle rotten Send feedback to tektoncd/plumbing. |
Rotten issues close after 30d of inactivity. /close 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. |
Expected Behavior
As a triggers user I would like to be able to run a series of common operations on the event payload before splitting into the various triggers.
Examples are:
Actual Behavior
In the CI setup I have a single event listener with multiple triggers:
Each of these need (1) and (4). All the comment triggers need (2) and (3) too.
Today the interceptor have to be executed again and again for each trigger for each event.
(3) and (4) are implemented via custom interceptors. (2) is done in the pipelines downstream.
Alternatives
a. Implement some way in triggers to run common filters / overlays before getting into the triggers.
b. Use a single trigger, and run all the checks on it. From there, trigger a task / pipeline that receives the whole payload, enhances it as required, and forwards the whole event to the event listener again. This first task could then do extra things like setting up source caches for downstream tasks.
c. Leave things as they are and implement a caching layer in the interceptors so that we do not have to go all way back to github all the time
/kind feature
The text was updated successfully, but these errors were encountered: