code: func New(kubeClient clientset.Interface, cloud cloudprovider.Interface, nodeInformer informers.NodeInformer, allocatorType CIDRAllocatorType, clusterCIDR, serviceCIDR *net.IPNet, nodeCIDRMaskSize int) (CIDRAllocator, error) {
  	nodeList, err := listNodes(kubeClient)
  	if err != nil {
  		return nil, err
  	}
  
  	switch allocatorType {
  	case RangeAllocatorType:
  		return NewCIDRRangeAllocator(kubeClient, nodeInformer, clusterCIDR, serviceCIDR, nodeCIDRMaskSize, nodeList)
  	case CloudAllocatorType:
  		return NewCloudCIDRAllocator(kubeClient, cloud, nodeInformer)
  	default:
  		return nil, fmt.Errorf("Invalid CIDR allocator type: %v", allocatorType)
  	}
  }
docs: // New creates a new CIDR range allocator.