Don't list master node when looking to a NodePort node.

This commit is contained in:
Prashanth Balasubramanian
2016-03-08 15:06:01 -08:00
parent dba955e112
commit f6c8b9b238

View File

@@ -3267,9 +3267,16 @@ func getNodePortURL(client *client.Client, ns, name string, svcPort int) (string
if err != nil { if err != nil {
return "", err return "", err
} }
// It should be OK to list unschedulable Node here. // This list of nodes must not include the master, which is marked
nodes, err := client.Nodes().List(api.ListOptions{}) // unschedulable, since the master doesn't run kube-proxy. Without
if err != nil { // kube-proxy NodePorts won't work.
var nodes *api.NodeList
if wait.PollImmediate(poll, singleCallTimeout, func() (bool, error) {
nodes, err = client.Nodes().List(api.ListOptions{FieldSelector: fields.Set{
"spec.unschedulable": "false",
}.AsSelector()})
return err == nil, nil
}) != nil {
return "", err return "", err
} }
if len(nodes.Items) == 0 { if len(nodes.Items) == 0 {