-
Notifications
You must be signed in to change notification settings - Fork 91
Cleanup - organize scheduler plugin by their functionality instead of type #828
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
Conversation
✅ Deploy Preview for gateway-api-inference-extension ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: liu-cong The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
I think it makes sense to just call them "plugins" and organize them by folders. It'd be good to have developer documentation with the set of interfaces a plugin can implement, and what's the workflow (which stage is first, and what it's for...) |
@liu-cong Thanks for working on this and sorry for the delayed response (I was on a day off).
my second thoughts are a result of this sentence. on the other hand, it's also confusing to put under I'm thinking about having a mixture to try and simplify (which I think it will, happy to get your opinion here).
so at the end the structure will look like:
wdyt? |
Thanks @nirrozenbaum for the suggestion. I updated the description to include all 3 options, please take a look. I see both option 2(this PR with some improvements, more aligned with kube-scheduler) and 3(your idea) work. I don't really mind which one we pick, we just need to pick one and add a README to document the rules. @ahg-g Can you help break the tie?
One way is to just name the files like |
keep in mind that in kube-scheduler the majority of the plugins are implementing more than one extension point. I think option 3 also aligns very nice with the other ongoing PR #835, which allows setting |
@liu-cong btw, if both works for you, we can proceed with option (3) 🙂 |
great, just opened a new PR for option 3: #837 @nirrozenbaum pls review the new PR, thanks! |
My preference is to organize the plugins based on the feature they represent, not the exact extensions they implement, so option #2, but going with option 3 is not a deal breaker for me. |
I see the Pr has been already merged, but I agree with @ahg-g , I like the feature approach (option 2). I think it'll be more clear for developers, as long as we document the interfaces a plugin can implement. |
PURE REFACTOR. NO LOGIC CHANGE.
This was discussed in #801 (comment)
The new way of organizing the plugins avoids confusion as some plugins can implement multiple plugin types (extension points).
Option 1: (Current) A "hybrid" organization based on plugin type (if a plugin only implements one plugin interface) and plugin functionality (if it implements multiple pugin interfaces)
** Option 2: (This PR)** Organize based on the functionality of the plugin, not which interface it implements.
** Option 3: (An improved version of Option 1, credits to @nirrozenbaum ) **