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
}