diff --git a/pkg/controller/deployment/deployment_controller.go b/pkg/controller/deployment/deployment_controller.go index 8b6a4205807..1476a8701fe 100644 --- a/pkg/controller/deployment/deployment_controller.go +++ b/pkg/controller/deployment/deployment_controller.go @@ -1048,8 +1048,8 @@ func (dc *DeploymentController) updateDeploymentStatus(allRSs []*extensions.Repl } func (dc *DeploymentController) calculateStatus(allRSs []*extensions.ReplicaSet, newRS *extensions.ReplicaSet, deployment extensions.Deployment) (totalReplicas, updatedReplicas, availableReplicas, unavailableReplicas int, err error) { - totalReplicas = deploymentutil.GetReplicaCountForReplicaSets(allRSs) - updatedReplicas = deploymentutil.GetReplicaCountForReplicaSets([]*extensions.ReplicaSet{newRS}) + totalReplicas = deploymentutil.GetActualReplicaCountForReplicaSets(allRSs) + updatedReplicas = deploymentutil.GetActualReplicaCountForReplicaSets([]*extensions.ReplicaSet{newRS}) minReadySeconds := deployment.Spec.MinReadySeconds availableReplicas, err = deploymentutil.GetAvailablePodsForReplicaSets(dc.client, allRSs, minReadySeconds) if err != nil { diff --git a/pkg/util/deployment/deployment.go b/pkg/util/deployment/deployment.go index 0ee24eed7d5..77e8cc709c8 100644 --- a/pkg/util/deployment/deployment.go +++ b/pkg/util/deployment/deployment.go @@ -330,6 +330,15 @@ func GetReplicaCountForReplicaSets(replicaSets []*extensions.ReplicaSet) int { return totalReplicaCount } +// GetActualReplicaCountForReplicaSets returns the sum of actual replicas of the given replica sets. +func GetActualReplicaCountForReplicaSets(replicaSets []*extensions.ReplicaSet) int { + totalReplicaCount := 0 + for _, rs := range replicaSets { + totalReplicaCount += rs.Status.Replicas + } + return totalReplicaCount +} + // Returns the number of available pods corresponding to the given replica sets. func GetAvailablePodsForReplicaSets(c clientset.Interface, rss []*extensions.ReplicaSet, minReadySeconds int) (int, error) { allPods, err := GetPodsForReplicaSets(c, rss)