From d428de26b83ff1d497e951363688711733b6eadc Mon Sep 17 00:00:00 2001 From: Vincent Wei Date: Fri, 6 Dec 2019 13:12:35 +0000 Subject: [PATCH] Fix IPv6 addresses lost issue in pure ipv6 vsphere environment --- staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere.go b/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere.go index 305e88be6a1..96ada113059 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere.go +++ b/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere.go @@ -572,7 +572,7 @@ func getLocalIP() ([]v1.NodeAddress, error) { } else { for _, addr := range localAddrs { if ipnet, ok := addr.(*net.IPNet); ok { - if ipnet.IP.To4() != nil { + if !ipnet.IP.IsLinkLocalUnicast() { // Filter external IP by MAC address OUIs from vCenter and from ESX vmMACAddr := strings.ToLower(i.HardwareAddr.String()) // Making sure that the MAC address is long enough @@ -683,7 +683,7 @@ func (vs *VSphere) NodeAddresses(ctx context.Context, nodeName k8stypes.NodeName for _, v := range vmMoList[0].Guest.Net { if vs.cfg.Network.PublicNetwork == v.Network { for _, ip := range v.IpAddress { - if net.ParseIP(ip).To4() != nil { + if !net.ParseIP(ip).IsLinkLocalUnicast() { nodehelpers.AddToNodeAddresses(&addrs, v1.NodeAddress{ Type: v1.NodeExternalIP,