Revert scheduler GetEligibleNodes optimization from issue #125336 #75
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is best reviewed commit-by-commit
This PR cherry picks a fix to issue 125336; in short, this resolves a scheduler bug where an attempted pre-optimization for a PreFilterPlugin would incorrectly assume a nodes name == kubernetes.io/hostname label on the pesistent volume associated with the node, so a pod using that PV would become unscheduleable.
This branch was created from
release-1.28-dd-v1.28.11-dd.4
as a base. At the time of writing, the current version deployed in production isrelease-1.28-dd-v1.28.11-dd.1
The commits identified in the diff between these versions were deemed not worthy of including with this bugfix, and were reverted (first 4 commits).The final commit reverts kubernetes@380c7f2; this is the PR responsible for introduce the
GetEligibleNodes
PreFilter optimization.There is an open upstream PR to revert this: kubernetes#125398. Note that the upstream PR also introduces a unit test; I opted just to revert the single commit.
The revert was mostly clean, but required 10 conflicts to resolved in 5 files. Most of these were dealing with the deletion of the GetEligibleNodes method. I opted to manually
git revert
this vs. cherry-picking the fix that's open upstream because there were more conflicts (the upstream revert is based on 1.30 and also reverts much of the klog contextual logging changes that were shipped with 1.30)