Merge pull request #45773 from justinsb/servicecontroller_harmonize

Automatic merge from submit-queue

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

```release-note
servicecontroller: Fix node selection logic on initial LB creation
```
This commit is contained in:
Kubernetes Submit Queue 2017-06-11 20:50:10 -07:00 committed by GitHub
commit b84567a57e
2 changed files with 2 additions and 11 deletions

View File

@ -28,7 +28,6 @@ go_library(
"//pkg/util/metrics:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/labels:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library",
"//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library",

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