Skip to content
KEP Brain

KEP-3243keps/sig-scheduling/3243-respect-pod-topology-spread-after-rolling-upgrades

Respect PodTopologySpread after rolling upgrades

implementablebetasig-schedulinglatest v1.341 open finding
<!-- This section is incredibly important for producing high-quality, user-focused documentation such as release notes or a development roadmap. It should be possible to collect this information before implementation begins, in order to avoid requiring implementors to split their attention between writing release notes and implementing the feature itself. KE… Full summary

<!-- This section is incredibly important for producing high-quality, user-focused documentation such as release notes or a development roadmap. It should be possible to collect this information before implementation begins, in order to avoid requiring implementors to split their attention between writing release notes and implementing the feature itself. KEP editors and SIG Docs should help to ensure that the tone and content of the Summary section is useful for a wide audience. A good summary is probably at least a paragraph in length. Both in this section and below, follow the guidelines of the [documentation style guide]. In particular, wrap lines to a reasonable length, to make it easier for reviewers to cite specific portions, and to minimize diff churn on updates. [documentation style guide]: https://github.com/kubernetes/community/blob/master/contributors/guide/style-guide.md --> The pod topology spread feature allows users to define the group of pods over which spreading is applied using a LabelSelector. This means the user should know the exact label key and value when defining the pod spec. This KEP proposes a complementary field to LabelSelector named MatchLabelKeys in TopologySpreadConstraint which represents a set of label keys only. At a pod creation, kube-apiserver will use those keys to look up label values from the incoming pod and those key-value labels will be merged with existing LabelSelector to identify the group of existing pods over which the spreading skew will be calculated. Note that in case MatchLabelKeys is supported in the cluster-level default constraints (see https://github.com/kubernetes/kubernetes/issues/129198), kube-scheduler will also handle it separately. The main case that this new way for identifying pods will enable is constraining skew spreading calculation to happen at the revision level in Deployments during rolling upgrades.

Facts

Authors
@denkensk
PRR approvers
@wojtek-talpha@wojtek-tbeta
Tracking issue
#3243(opens GitHub in a new tab) closednot_plannedclosed 2026-10-17 21:02 UTCsig/schedulingstage/betalifecycle/rotten
Milestones
alpha v1.25beta v1.27stable v1.36
Participating SIGs
none
Feature gates
MatchLabelKeysInPodTopologySpreadSelectorMerge, MatchLabelKeysInPodTopologySpread
Created / last updated
2022-03-17 / none
Loading decisions and status history

Keyboard shortcuts

Everywhere

?
Show or hide this list
/
Focus the question box on Ask, otherwise the page search
Ctrl Kor⌘ K
Focus the KEP search in the top bar
t
Switch the theme (system, light, dark)
Esc
Close a dialog, a search list or a menu

Go to a page

Press g, then the letter

g h
Home
g a
Ask
g e
Explore
g u
Audit
g m
Memory
g b
About

Ask

Enter
Send the question
Shift Enter
New line in the question
Esc
Cancel the running question

Search lists

KEP search and Explore search

↓or↑
Move through the results
HomeorEnd
First or last result (Explore)
Enter
Open the highlighted result, or KEP-n when the query is a number

KEP page

o
Open the KEP on GitHub
y
Open kep.yaml on GitHub
a
Ask about this KEP
←or→
Previous or next tab, when a tab is focused

Findings table

With a finding row focused (Tab into the table or click a row)

jork
Next or previous finding
EnterorSpace
Expand or collapse the finding
o
Open the finding's KEP page
d
Draft the fix as an issue text (nothing is posted)
]or[
Next or previous page of findings

Shortcuts pause while you type in a field. Press ? or Esc to close.