Commit bf1a695b authored by Brendan Burns's avatar Brendan Burns

Merge pull request #2882 from bgrant0607/bugfix1

Count only non-dead pods in replicationController current state replicas count
parents 2d1b2793 9b539262
......@@ -140,7 +140,8 @@ func (rm *ReplicationManager) watchControllers(resourceVersion *string) {
}
}
func (rm *ReplicationManager) filterActivePods(pods []api.Pod) []api.Pod {
// Helper function. Also used in pkg/registry/controller, for now.
func FilterActivePods(pods []api.Pod) []api.Pod {
var result []api.Pod
for _, value := range pods {
if api.PodSucceeded != value.Status.Phase &&
......@@ -157,7 +158,7 @@ func (rm *ReplicationManager) syncReplicationController(controller api.Replicati
if err != nil {
return err
}
filteredList := rm.filterActivePods(podList.Items)
filteredList := FilterActivePods(podList.Items)
diff := len(filteredList) - controller.Spec.Replicas
if diff < 0 {
diff *= -1
......
......@@ -24,6 +24,7 @@ import (
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/errors"
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/validation"
"github.com/GoogleCloudPlatform/kubernetes/pkg/apiserver"
rc "github.com/GoogleCloudPlatform/kubernetes/pkg/controller"
"github.com/GoogleCloudPlatform/kubernetes/pkg/labels"
"github.com/GoogleCloudPlatform/kubernetes/pkg/runtime"
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
......@@ -149,6 +150,7 @@ func (rs *REST) Watch(ctx api.Context, label, field labels.Selector, resourceVer
return rs.registry.WatchControllers(ctx, label, field, resourceVersion)
}
// TODO #2726: The controller should populate the current state, not the apiserver
func (rs *REST) fillCurrentState(ctx api.Context, controller *api.ReplicationController) error {
if rs.podLister == nil {
return nil
......@@ -157,6 +159,6 @@ func (rs *REST) fillCurrentState(ctx api.Context, controller *api.ReplicationCon
if err != nil {
return err
}
controller.Status.Replicas = len(list.Items)
controller.Status.Replicas = len(rc.FilterActivePods(list.Items))
return nil
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment