From ab6d93824796829c8e35578a626e899268902c3d Mon Sep 17 00:00:00 2001 From: Justin Santa Barbara Date: Fri, 4 Nov 2016 10:00:23 -0400 Subject: [PATCH] Don't add duplicate Hostname address If the cloudprovider returned an address of type Hostname, we shouldn't add a duplicate one. --- pkg/kubelet/kubelet_node_status.go | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/pkg/kubelet/kubelet_node_status.go b/pkg/kubelet/kubelet_node_status.go index 8d3b8cb47d0..00673647111 100644 --- a/pkg/kubelet/kubelet_node_status.go +++ b/pkg/kubelet/kubelet_node_status.go @@ -392,8 +392,22 @@ func (kl *Kubelet) setNodeAddress(node *api.Node) error { } return fmt.Errorf("failed to get node address from cloud provider that matches ip: %v", kl.nodeIP) } - hostnameAddress := api.NodeAddress{Type: api.NodeHostName, Address: kl.GetHostname()} - node.Status.Addresses = append(nodeAddresses, hostnameAddress) + + // Only add a NodeHostName address if the cloudprovider did not specify one + // (we assume the cloudprovider knows best) + var addressNodeHostName *api.NodeAddress + for i := range nodeAddresses { + if nodeAddresses[i].Type == api.NodeHostName { + addressNodeHostName = &nodeAddresses[i] + break + } + } + if addressNodeHostName == nil { + hostnameAddress := api.NodeAddress{Type: api.NodeHostName, Address: kl.GetHostname()} + node.Status.Addresses = append(nodeAddresses, hostnameAddress) + } else { + glog.V(2).Infof("Using Node Hostname from cloudprovider: %q", addressNodeHostName.Address) + } } else { var ipAddr net.IP var err error