Merge pull request #124113 from krzysdabro/nodeipam-pooling
nodeipam: poll nodes immediately
This commit is contained in:
		@@ -78,7 +78,6 @@ const (
 | 
				
			|||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// nodePollInterval is used in listing node
 | 
					// nodePollInterval is used in listing node
 | 
				
			||||||
// This is a variable instead of a const to enable testing.
 | 
					 | 
				
			||||||
var nodePollInterval = 10 * time.Second
 | 
					var nodePollInterval = 10 * time.Second
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// CIDRAllocator is an interface implemented by things that know how
 | 
					// CIDRAllocator is an interface implemented by things that know how
 | 
				
			||||||
@@ -116,8 +115,7 @@ type nodeReservedCIDRs struct {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// New creates a new CIDR range allocator.
 | 
					// New creates a new CIDR range allocator.
 | 
				
			||||||
func New(ctx context.Context, kubeClient clientset.Interface, cloud cloudprovider.Interface, nodeInformer informers.NodeInformer, allocatorType CIDRAllocatorType, allocatorParams CIDRAllocatorParams) (CIDRAllocator, error) {
 | 
					func New(ctx context.Context, kubeClient clientset.Interface, cloud cloudprovider.Interface, nodeInformer informers.NodeInformer, allocatorType CIDRAllocatorType, allocatorParams CIDRAllocatorParams) (CIDRAllocator, error) {
 | 
				
			||||||
	logger := klog.FromContext(ctx)
 | 
						nodeList, err := listNodes(ctx, kubeClient)
 | 
				
			||||||
	nodeList, err := listNodes(logger, kubeClient)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -132,13 +130,15 @@ func New(ctx context.Context, kubeClient clientset.Interface, cloud cloudprovide
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func listNodes(logger klog.Logger, kubeClient clientset.Interface) (*v1.NodeList, error) {
 | 
					func listNodes(ctx context.Context, kubeClient clientset.Interface) (*v1.NodeList, error) {
 | 
				
			||||||
	var nodeList *v1.NodeList
 | 
						var nodeList *v1.NodeList
 | 
				
			||||||
 | 
						logger := klog.FromContext(ctx)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// We must poll because apiserver might not be up. This error causes
 | 
						// We must poll because apiserver might not be up. This error causes
 | 
				
			||||||
	// controller manager to restart.
 | 
						// controller manager to restart.
 | 
				
			||||||
	if pollErr := wait.Poll(nodePollInterval, apiserverStartupGracePeriod, func() (bool, error) {
 | 
						if pollErr := wait.PollUntilContextTimeout(ctx, nodePollInterval, apiserverStartupGracePeriod, true, func(ctx context.Context) (bool, error) {
 | 
				
			||||||
		var err error
 | 
							var err error
 | 
				
			||||||
		nodeList, err = kubeClient.CoreV1().Nodes().List(context.TODO(), metav1.ListOptions{
 | 
							nodeList, err = kubeClient.CoreV1().Nodes().List(ctx, metav1.ListOptions{
 | 
				
			||||||
			FieldSelector: fields.Everything().String(),
 | 
								FieldSelector: fields.Everything().String(),
 | 
				
			||||||
			LabelSelector: labels.Everything().String(),
 | 
								LabelSelector: labels.Everything().String(),
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -118,7 +118,8 @@ func NewController(
 | 
				
			|||||||
func (c *Controller) Start(logger klog.Logger, nodeInformer informers.NodeInformer) error {
 | 
					func (c *Controller) Start(logger klog.Logger, nodeInformer informers.NodeInformer) error {
 | 
				
			||||||
	logger.Info("Starting IPAM controller", "config", c.config)
 | 
						logger.Info("Starting IPAM controller", "config", c.config)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	nodes, err := listNodes(logger, c.adapter.k8s)
 | 
						ctx := klog.NewContext(context.TODO(), logger)
 | 
				
			||||||
 | 
						nodes, err := listNodes(ctx, c.adapter.k8s)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user