servicecontroller: use consistent node criteria

We have two node selection functions: includeNodeFromNodeList and
getNodeConditionPredicate, and the logic is different.

The logic should be the same, so remove includeNodeFromNodeList and just
use getNodeConditionPredicate everywhere.

Fix #45772
This commit is contained in:
Justin Santa Barbara
2017-05-13 13:55:15 -04:00
parent 98b5e9d57b
commit 976e046f7a
2 changed files with 2 additions and 11 deletions

View File

@@ -26,7 +26,6 @@ import (
"github.com/golang/glog"
"k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/util/runtime"
"k8s.io/apimachinery/pkg/util/wait"
v1core "k8s.io/client-go/kubernetes/typed/core/v1"
@@ -348,22 +347,15 @@ func (s *ServiceController) persistUpdate(service *v1.Service) error {
}
func (s *ServiceController) createLoadBalancer(service *v1.Service) (*v1.LoadBalancerStatus, error) {
nodes, err := s.nodeLister.List(labels.Everything())
nodes, err := s.nodeLister.ListWithPredicate(getNodeConditionPredicate())
if err != nil {
return nil, err
}
lbNodes := []*v1.Node{}
for ix := range nodes {
if includeNodeFromNodeList(nodes[ix]) {
lbNodes = append(lbNodes, nodes[ix])
}
}
// - Only one protocol supported per service
// - Not all cloud providers support all protocols and the next step is expected to return
// an error for unsupported protocols
return s.balancer.EnsureLoadBalancer(s.clusterName, service, lbNodes)
return s.balancer.EnsureLoadBalancer(s.clusterName, service, nodes)
}
// ListKeys implements the interface required by DeltaFIFO to list the keys we