-
Notifications
You must be signed in to change notification settings - Fork 207
Refactor: Prepare EPP SaturationControl as an Extension Point #1976
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
base: main
Are you sure you want to change the base?
Refactor: Prepare EPP SaturationControl as an Extension Point #1976
Conversation
✅ Deploy Preview for gateway-api-inference-extension ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
Hi @LukeAVanDrie. Thanks for your PR. I'm waiting for a github.com member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. 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-sigs/prow repository. |
|
/ok-to-test |
a6a78b8 to
06c821f
Compare
|
/approve FWIW, I think we should draw on board (or paper :) ) the updated design with the updated extension points and make sure we're aligned on how we think EPP should end up. will stamp with lgtm once the CI tests pass (should fix boilerplate headers). |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: LukeAVanDrie, nirrozenbaum The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
I agree with this. There is another PR that is proposing to fundamentally change how plugins can operate, and I'm worried about the precedent that sets. |
This commit moves the existing `SaturationDetector` implementation to its new home under the EPP plugin framework structure. This is a preparatory step towards making `SaturationControl` an official EPP extension point. - Renamed `pkg/epp/saturationdetector` to `pkg/epp/saturationcontrol` - Moved files to `.../framework/plugins/staticthresholdcontroller` - Renamed `saturationdetector.go` to `controller.go` - Renamed `saturationdetector_test.go` to `controller_test.go` - Fixed imports No functional changes are included in this commit.
06c821f to
539d5c6
Compare
@kfswain not sure which other PR is the one you mentioned. from my point of view this PR can be stamped (it's just putting the existing saturation detector under a different directory). leaving to Kellen the final stamp just to be on the safe side. |
He's referring to my other PR: #1977. I am working on the configuration and extensibility story for Flow Control. Flow Control has two potential extension points: interflow (fairness) and intraflow (ordering) policies. These, however, are scoped to priority bands or flows respectively and not well-supported by the singleton plugin model in their current state. I have a draft to support transient lifecycle for stateful, scoped plugin instances. Shmuel recommended a stateless singleton approach relying on state-passing which I am now exploring instead as it is more closely aligned with our existing plugin model and less easy to abuse.
This will be a good exercise. I am currently working toward adding (or rather promoting) the following extension points for our Flow Control story:
These then compose nicely into a flow control / scheduling regime.
And so on... These can all be mixed and matched. I figured it was generally agreed upon to start this for saturation detection given #1405. I plan on doing exactly what's in the bug. Promoting our simple heuristic-based detector to the default implementation before adding a new in-tree concurrency-limit based controller as a followup. |
|
PR needs rebase. 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-sigs/prow repository. |
|
as a side note I must admit that I’ve read the explanation about what is InterFlowPolicy and what is IntraFlowPolicy at least 20 times in different threads, and I still find these names very confusing. do you think we can rename it to a descriptive name- just by what it does? |
Yes, these can be changed. They are not sticky at all yet. I think These will eventually be reflected in our configuration guide docs and such, so we should pick the best user-facing names. Edit: mocking the config example makes choices more clear. Thoughts? |
What type of PR is this?
/kind cleanup
What this PR does / why we need it:
This PR refactors the directory structure for the saturation control logic within the Endpoint Picker (EPP). It renames
pkg/epp/saturationdetectortopkg/epp/saturationcontroland moves the current implementation toframework/plugins/staticthresholdcontroller.This change is a preparatory step to establish Saturation Control as a formal extension point within the EPP, allowing
for multiple implementations. The existing logic is now housed as the
staticthresholdcontrollerplugin, making wayfor future additions like
ConcurrencyController.This PR contains only file moves and renames; no functional changes are introduced. Note: it is not aligned with the
EPP plugin system yet. This is a preparatory step only.
Which issue(s) this PR fixes:
Tracks #1405 ('cc @nirrozenbaum) and #1793
Does this PR introduce a user-facing change?: