-
Notifications
You must be signed in to change notification settings - Fork 1.6k
KEP-3973, KEP-5882: split DeploymentReplicaSetTerminatingReplicas and DeploymentPodReplacementPolicy features into two standalone KEPs for easier tracking. #5883
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
atiratree
commented
Feb 3, 2026
- One-line PR description: split DeploymentReplicaSetTerminatingReplicas and DeploymentPodReplacementPolicy features into two standalone KEPs (KEP-3973, KEP-5882) for easier tracking.
- Issue link:
- Consider Terminating Pods in Deployments #3973
- Deployment Pod Replacement Policy #5882
- Other comments:
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: atiratree 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 |
DeploymentPodReplacementPolicy features into two standalone KEPs (KEP-3973, KEP-5882) for easier tracking.
soltysh
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I left several comments for both documents.
| kep-number: 3973 | ||
| alpha: | ||
| approver: "@wojtek-t" | ||
| beta: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@wojtek-t can you retroactively check the PRR on this one. We initially kept both terminating pods in deployment (from #3973) and deployment pod replacement policy (#5882) under single KEP. But we eventually decided to split that into two, b/c the first part being less contentious started moving at a faster pace, and we moved only that bit exposing the .status.terminatingReplicas for RS and deploymentsin 1.35. I know this isn't ideal, sorry about that, but we're trying to clean our mess now 😅
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes - will do.
| @@ -0,0 +1,3 @@ | |||
| kep-number: 5882 | |||
| alpha: | |||
| approver: "@wojtek-t" | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@wojtek-t this one will more of a formality, since you've already approved it before, this only moves that Deployment Pod Replacement Policy into a separate document.
| deployment will wait for old pods to terminate during a rollout, but will ignore the terminating | ||
| pods when scaling the pods. So it is still possible to end up with a larger number of pods than | ||
| `.spec.replicas`. | ||
| his KEP proposes to add new fields `status.terminatingReplicas` to both Deployments and ReplicaSets |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| his KEP proposes to add new fields `status.terminatingReplicas` to both Deployments and ReplicaSets | |
| This KEP proposes to add new fields `status.terminatingReplicas` to both Deployments and ReplicaSets |
|
|
||
| ### User Stories (Optional) | ||
|
|
||
| #### Story 1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| #### Story 1 | |
| #### Story 1 (Optional) |
We changed it recently to allow us better diff the required and optional headers.
| to support rollbacks. | ||
| See [kubectl Skew](#kubectl-skew) for more details. | ||
| To satisfy the requirement for tracking terminating pods, and for implementation purposes of | ||
| followup feature(s), we propose a new field `.status.terminatingReplicas` to the ReplicaSet's and |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add a link to #5882
| https://github.com/kubernetes/kubernetes/pull/97058/files#diff-7826f7adbc1996a05ab52e3f5f02429e94b68ce6bce0dc534d1be636154fded3R246-R282 | ||
| --> | ||
|
|
||
| Appropriate enablement/disablement tests will be added to the replicaset and deployment `strategy_test.go` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking at the code (replicaset, deployment) we have the necessary tests, so please make sure to update this part of the document to reflect reality.
|
|
||
| ###### Are there any missing metrics that would be useful to have to improve observability of this feature? | ||
|
|
||
| `kube_replicaset_status_terminating_replicas` and `kube_deployment_status_replicas_terminating` will be added to kube-state-metrics in beta. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will be another thing to address ASAP.
|
|
||
| see-also: | ||
| - "/keps/sig-apps/3939-allow-replacement-when-fully-terminated" | ||
| - "/keps/sig-apps/3974-consider-terminating-pods-deployment" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - "/keps/sig-apps/3974-consider-terminating-pods-deployment" | |
| - "/keps/sig-apps/3973-consider-terminating-pods-deployment" |
|
|
||
| ### User Stories (Optional) | ||
|
|
||
| #### Story 1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| #### Story 1 | |
| #### Story 1 (Optional) |
We changed it recently to allow us better diff the required and optional headers.
| scheduling issues and unnecessary autoscaling of nodes. I would also like to achieve consistent | ||
| allocation of other scarce resources to pods. | ||
|
|
||
| #### Story 2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| #### Story 2 | |
| #### Story 2 (Optional) |
|
/assign |