func NewLBController()

in pkg/lbcontroller/lbcontroller.go [48:81]


func NewLBController(ipList []string) *LBController {
	klog.Infof("Building kube configs for running in cluster...")
	config, err := rest.InClusterConfig()
	if err != nil {
		klog.Fatalf("Failed to create config: %v", err)
	}

	clientset, err := kubernetes.NewForConfig(config)
	if err != nil {
		klog.Fatalf("Failed to create client: %v", err)
	}

	ctx := signals.SetupSignalHandler()
	sharedInformerFactory := informers.NewSharedInformerFactory(clientset, 10*time.Minute /*Resync interval of the informer*/)
	nodeLister := sharedInformerFactory.Core().V1().Nodes().Lister()
	stopCh := ctx.Done()
	sharedInformerFactory.Start(stopCh)
	sharedInformerFactory.WaitForCacheSync(stopCh)

	lbc := LBController{
		clientset:  clientset,
		nodeLister: nodeLister,
	}

	ipMap, err := lbc.resyncIPMap(ipList)

	if err != nil {
		klog.Fatalf("Failed to resync LB Controller cache: %v", err)
	}

	lbc.ipMap = ipMap

	return &lbc
}