From d693ffaa57509154cdc371639f5e71478be09c16 Mon Sep 17 00:00:00 2001 From: Janet Kuo Date: Mon, 11 Jan 2016 16:50:11 -0800 Subject: [PATCH] Fix incorrect expectation when deployment scaling down old rcs --- .../deployment/deployment_controller.go | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/pkg/controller/deployment/deployment_controller.go b/pkg/controller/deployment/deployment_controller.go index 395658d5db4..4f18f0a2348 100644 --- a/pkg/controller/deployment/deployment_controller.go +++ b/pkg/controller/deployment/deployment_controller.go @@ -631,6 +631,7 @@ func (dc *DeploymentController) reconcileOldRCs(allRCs []*api.ReplicationControl return false, nil } totalScaleDownCount := readyPodCount - minAvailable + totalScaledDown := 0 for _, targetRC := range oldRCs { if totalScaleDownCount == 0 { // No further scaling required. @@ -647,14 +648,16 @@ func (dc *DeploymentController) reconcileOldRCs(allRCs []*api.ReplicationControl if err != nil { return false, err } + totalScaledDown += scaleDownCount totalScaleDownCount -= scaleDownCount - dKey, err := controller.KeyFunc(&deployment) - if err != nil { - return false, fmt.Errorf("Couldn't get key for deployment %#v: %v", deployment, err) - } - if expectationsCheck { - dc.podExpectations.ExpectDeletions(dKey, scaleDownCount) - } + } + // Expect to see old rcs scaled down by exactly totalScaledDownCount (sum of scaleDownCount) replicas. + dKey, err = controller.KeyFunc(&deployment) + if err != nil { + return false, fmt.Errorf("Couldn't get key for deployment %#v: %v", deployment, err) + } + if expectationsCheck { + dc.podExpectations.ExpectDeletions(dKey, totalScaledDown) } return true, err }