Deployment controller should count terminating pods in the status

This commit is contained in:
Filip Křepinský
2024-02-29 21:56:48 +01:00
parent dc1914c61c
commit e263b878ee
5 changed files with 206 additions and 28 deletions

View File

@@ -27,9 +27,11 @@ import (
v1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
utilfeature "k8s.io/apiserver/pkg/util/feature"
"k8s.io/klog/v2"
"k8s.io/kubernetes/pkg/controller"
deploymentutil "k8s.io/kubernetes/pkg/controller/deployment/util"
"k8s.io/kubernetes/pkg/features"
labelsutil "k8s.io/kubernetes/pkg/util/labels"
)
@@ -504,6 +506,9 @@ func calculateStatus(allRSs []*apps.ReplicaSet, newRS *apps.ReplicaSet, deployme
UnavailableReplicas: unavailableReplicas,
CollisionCount: deployment.Status.CollisionCount,
}
if utilfeature.DefaultFeatureGate.Enabled(features.DeploymentPodReplacementPolicy) {
status.TerminatingReplicas = deploymentutil.GetTerminatingReplicaCountForReplicaSets(allRSs)
}
// Copy conditions one by one so we won't mutate the original object.
conditions := deployment.Status.Conditions