code: func (nc *Controller) Run(stopCh <-chan struct{}) {
  	defer utilruntime.HandleCrash()
  
  	klog.Infof("Starting ipam controller")
  	defer klog.Infof("Shutting down ipam controller")
  
  	if !controller.WaitForCacheSync("node", stopCh, nc.nodeInformerSynced) {
  		return
  	}
  
  	if nc.allocatorType != ipam.IPAMFromClusterAllocatorType && nc.allocatorType != ipam.IPAMFromCloudAllocatorType {
  		go nc.cidrAllocator.Run(stopCh)
  	}
  
  	<-stopCh
  }
docs: // Run starts an asynchronous loop that monitors the status of cluster nodes.