feat(multikueue): implement KEP-9270 stepSize for Incremental Dispatcher#11208
feat(multikueue): implement KEP-9270 stepSize for Incremental Dispatcher#11208Mostafahassen1 wants to merge 13 commits into
Conversation
|
Adding the "do-not-merge/release-note-label-needed" label because no release-note block was detected, please follow our release note process to remove it. DetailsInstructions 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. |
✅ Deploy Preview for kubernetes-sigs-kueue ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
/retest |
|
/retest |
be5a01a to
ef54d1f
Compare
ee5f6b1 to
654be42
Compare
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: Mostafahassen1 The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
What type of PR is this?
/kind feature
/area multikueue
What this PR does / why we need it:
This PR implements the Alpha phase of KEP-9270,
The MultiKueue Incremental Dispatcher previously had a hardcoded
batch size of
3when nominating worker clusters. This is too slowfor administrators managing large fleets and is not tunable without
a code change.
This PR makes the batch size configurable via a new
stepSizefieldinside a new
IncrementalDispatcherConfigstruct on theMultiKueueconfiguration API. The field is guarded by the new
MultiKueueIncrementalDispatcherConfigfeature gate (Alpha, disabledby default), so existing behavior is completely unchanged unless the
gate is explicitly enabled.
Changes included:
Feature gate:
MultiKueueIncrementalDispatcherConfigregisteredat Alpha (
falseby default) inpkg/features/kube_features.goAPI types (
v1beta1+v1beta2): NewIncrementalDispatcherConfigstruct with a
StepSize *int32field (kubebuilder default:3,minimum:
1) added to theMultiKueuestructGenerated code:
zz_generated.deepcopy.goandzz_generated.conversion.goupdated for the new type in bothAPI versions
Defaults:
SetDefaults_ConfigurationdefaultsStepSizeto3in both
v1beta1andv1beta2Dispatcher logic:
IncrementalDispatcherReconcilernow acceptscfg *Configurationand readsStepSizethrough astepSize()helper that falls back to
3when the feature gate is off or thefield is unset
Tests: New test cases for
stepSize=2first batch,stepSize=2second batch after round expiry, and feature-gate-disabled fallback
Which issue(s) this PR fixes:
Fixes #9270
Special notes for your reviewer:
The KEP document was approved in KEP-9270: Introduce configuration for the MultiKueue Incremental Dispatcher #10877. This PR is the follow-up
implementation for the Alpha milestone.
The feature gate is off by default. No existing behavior changes
unless
MultiKueueIncrementalDispatcherConfig: trueis set infeatureGates.The
IncrementalDispatcherConfigstruct is intentionally kept as itsown type (not inlined) to allow future fields (e.g.
timeout,stepSizeAsPercent) to be added without breaking API compatibility,as described in the KEP's "Possible Follow-ups" section.