diff --git a/pkg/controller/cloud/node_controller.go b/pkg/controller/cloud/node_controller.go index 781c3e7c349..b592ef74666 100644 --- a/pkg/controller/cloud/node_controller.go +++ b/pkg/controller/cloud/node_controller.go @@ -186,11 +186,11 @@ func (cnc *CloudNodeController) updateNodeAddress(node *v1.Node, instances cloud return } } - newNode := node.DeepCopy() - newNode.Status.Addresses = nodeAddresses - if !nodeAddressesChangeDetected(node.Status.Addresses, newNode.Status.Addresses) { + if !nodeAddressesChangeDetected(node.Status.Addresses, nodeAddresses) { return } + newNode := node.DeepCopy() + newNode.Status.Addresses = nodeAddresses _, _, err = nodeutil.PatchNodeStatus(cnc.kubeClient.CoreV1(), types.NodeName(node.Name), node, newNode) if err != nil { klog.Errorf("Error patching node with cloud ip addresses = [%v]", err) @@ -382,15 +382,13 @@ func nodeAddressesChangeDetected(addressSet1, addressSet2 []v1.NodeAddress) bool return true } addressMap1 := map[v1.NodeAddressType]string{} - addressMap2 := map[v1.NodeAddressType]string{} for i := range addressSet1 { addressMap1[addressSet1[i].Type] = addressSet1[i].Address - addressMap2[addressSet2[i].Type] = addressSet2[i].Address } - for k, v := range addressMap1 { - if addressMap2[k] != v { + for _, v := range addressSet2 { + if addressMap1[v.Type] != v.Address { return true } }