Skip to content

feat(multikueue): implement KEP-9270 stepSize for Incremental Dispatcher#11208

Open
Mostafahassen1 wants to merge 13 commits into
kubernetes-sigs:mainfrom
Mostafahassen1:Mostafa/Feature_IncrementalDispatcher
Open

feat(multikueue): implement KEP-9270 stepSize for Incremental Dispatcher#11208
Mostafahassen1 wants to merge 13 commits into
kubernetes-sigs:mainfrom
Mostafahassen1:Mostafa/Feature_IncrementalDispatcher

Conversation

@Mostafahassen1
Copy link
Copy Markdown
Member

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 3 when nominating worker clusters. This is too slow
for administrators managing large fleets and is not tunable without
a code change.

This PR makes the batch size configurable via a new stepSize field
inside a new IncrementalDispatcherConfig struct on the MultiKueue
configuration API. The field is guarded by the new
MultiKueueIncrementalDispatcherConfig feature gate (Alpha, disabled
by default), so existing behavior is completely unchanged unless the
gate is explicitly enabled.

Changes included:

  • Feature gate: MultiKueueIncrementalDispatcherConfig registered
    at Alpha (false by default) in pkg/features/kube_features.go

  • API types (v1beta1 + v1beta2): New IncrementalDispatcherConfig
    struct with a StepSize *int32 field (kubebuilder default: 3,
    minimum: 1) added to the MultiKueue struct

  • Generated code: zz_generated.deepcopy.go and
    zz_generated.conversion.go updated for the new type in both
    API versions

  • Defaults: SetDefaults_Configuration defaults StepSize to 3
    in both v1beta1 and v1beta2

  • Dispatcher logic: IncrementalDispatcherReconciler now accepts
    cfg *Configuration and reads StepSize through a stepSize()
    helper that falls back to 3 when the feature gate is off or the
    field is unset

  • Tests: New test cases for stepSize=2 first batch, stepSize=2
    second 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: true is set in
    featureGates.

  • The IncrementalDispatcherConfig struct is intentionally kept as its
    own 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.

@k8s-ci-robot
Copy link
Copy Markdown
Contributor

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.

Details

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.

@k8s-ci-robot k8s-ci-robot added kind/feature Categorizes issue or PR as related to a new feature. area/multikueue Issues or PRs related to MultiKueue do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. labels May 15, 2026
@netlify
Copy link
Copy Markdown

netlify Bot commented May 15, 2026

Deploy Preview for kubernetes-sigs-kueue ready!

Name Link
🔨 Latest commit 55c24c4
🔍 Latest deploy log https://app.netlify.com/projects/kubernetes-sigs-kueue/deploys/6a0e2afad3af6b0008378000
😎 Deploy Preview https://deploy-preview-11208--kubernetes-sigs-kueue.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@k8s-ci-robot k8s-ci-robot requested review from pajakd and tenzen-y May 15, 2026 01:33
@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels May 15, 2026
@Mostafahassen1
Copy link
Copy Markdown
Member Author

/retest

@k8s-ci-robot k8s-ci-robot added needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. and removed needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. labels May 20, 2026
@Mostafahassen1
Copy link
Copy Markdown
Member Author

/retest

@Mostafahassen1 Mostafahassen1 force-pushed the Mostafa/Feature_IncrementalDispatcher branch from be5a01a to ef54d1f Compare May 20, 2026 16:08
@k8s-ci-robot k8s-ci-robot added needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels May 20, 2026
@Mostafahassen1 Mostafahassen1 force-pushed the Mostafa/Feature_IncrementalDispatcher branch from ee5f6b1 to 654be42 Compare May 20, 2026 21:09
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label May 20, 2026
@k8s-ci-robot
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: Mostafahassen1
Once this PR has been reviewed and has the lgtm label, please assign mbobrovskyi, mimowo for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot removed the size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. label May 20, 2026
@k8s-ci-robot k8s-ci-robot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label May 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/multikueue Issues or PRs related to MultiKueue cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. kind/feature Categorizes issue or PR as related to a new feature. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

MultiKueue: allow configuring step size in the incremental dispatcher

2 participants