Repository navigation
[release-0.20] Hold scheduling until the initial cache matches the apiserver - #17455
Conversation
After a cold leader start, Scheduler.Start begins as soon as the lease is held. Informer stores are already synced, but ClusterQueue create handlers can still be walking the list. A victim whose flavor is loaded becomes active while occupant ClusterQueues are missing, so Topology Aware Scheduling treats nodes held by those occupants as free. The same window applies to cohort usage. The scheduler cache wraps the controller-runtime sources whose handlers fill it (ClusterQueue, Cohort, ResourceFlavor, Workload, LocalQueue, and Topology plus the TAS ResourceFlavor when TAS runs). Scheduler.Start blocks until each Kind source reports synced, which happens only after its handler has processed the informer's initial list, and then starts the scheduling loop. No polling, no lists, no copies, no timeout. A source that never syncs already stops the manager via CacheSyncTimeout. Builds on kubernetes-sigs#17346, which keeps Cohorts in the cache on every replica. Tests: unit coverage for the sync tracker, and integration coverage for scheduler startup and a TAS cold start. Integration suites now add the scheduler to the manager instead of calling Start during setup, the same way cmd/kueue does, since Start blocks until the manager has started the tracked sources. Signed-off-by: Dundy Pasupuleti <dundysm@gmail.com>
Drop the package level create hook from the ClusterQueue reconciler. The cold start test now registers a ClusterQueueUpdateWatcher through SetupControllersOpts, and the Consistently checks use ConsistentDuration. Signed-off-by: Dundy Pasupuleti <dundysm@gmail.com>
✅ Deploy Preview for kubernetes-sigs-kueue ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. 🗂️ Base branches to auto review: 1
Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
|
/lgtm |
|
LGTM label has been added. DetailsGit tree hash: 814b59fb9b125b0ff869ffca9adc650f3aefa271 |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: k8s-infra-cherrypick-robot, mimowo The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
f700479
into
kubernetes-sigs:release-0.20
|
/set-release-note |
|
✅ The release note was updated. |
This is an automated cherry-pick of #16630
/assign mimowo
/kind bug