func()

in pkg/lbcontroller/lbcontroller.go [83:108]


func (c *LBController) resyncIPMap(ipList []string) (map[string]int, error) {
	clusterNodes, err := c.nodeLister.List(labels.Everything())
	if err != nil {
		return nil, fmt.Errorf("failed to get cluster nodes: %w", err)
	}

	c.mutex.Lock()
	defer c.mutex.Unlock()

	ipMap := make(map[string]int)
	for _, ip := range ipList {
		ipMap[ip] = 0
	}

	for _, node := range clusterNodes {
		if ip, exists := node.Annotations[NodeAnnotation]; exists {
			klog.Infof("Node %q already have IP %q assigned", node.Name, ip)
			if _, exists := ipMap[ip]; exists {
				ipMap[ip]++
			}
		}
	}

	klog.V(6).Infof("LB controller ipMap resynced: %v", ipMap)
	return ipMap, nil
}