From 78c7b81ce5e0ebcd54e422967360d46540cc836e Mon Sep 17 00:00:00 2001 From: Duan Jiong Date: Tue, 23 Feb 2021 11:25:36 +0800 Subject: [PATCH] Don't exit while synchronizing calico ippool Signed-off-by: Duan Jiong --- pkg/controller/network/ippool/ippool_controller.go | 8 +++++--- pkg/simple/client/network/ippool/calico/provider.go | 13 ++++++++++--- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/pkg/controller/network/ippool/ippool_controller.go b/pkg/controller/network/ippool/ippool_controller.go index 85c0ed5ee..bbf1fe7ce 100644 --- a/pkg/controller/network/ippool/ippool_controller.go +++ b/pkg/controller/network/ippool/ippool_controller.go @@ -339,12 +339,14 @@ func (c *IPPoolController) processIPPoolItem() bool { if err == nil { c.ippoolQueue.Forget(key) return true - } else if delay != nil { - c.ippoolQueue.AddAfter(key, *delay) } + if delay != nil { + c.ippoolQueue.AddAfter(key, *delay) + } else { + c.ippoolQueue.AddRateLimited(key) + } utilruntime.HandleError(fmt.Errorf("error processing ippool %v (will retry): %v", key, err)) - c.ippoolQueue.AddRateLimited(key) return true } diff --git a/pkg/simple/client/network/ippool/calico/provider.go b/pkg/simple/client/network/ippool/calico/provider.go index 4cb5c5846..b4d622208 100644 --- a/pkg/simple/client/network/ippool/calico/provider.go +++ b/pkg/simple/client/network/ippool/calico/provider.go @@ -695,9 +695,16 @@ func NewProvider(podInformer informercorev1.PodInformer, ksclient kubesphereclie }) p.block = blockI - if err := p.syncIPPools(); err != nil { - klog.Fatalf("failed to sync calico ippool to kubesphere ippool, err=%v", err) - } + go func() { + for { + if err := p.syncIPPools(); err != nil { + klog.Infof("failed to sync calico ippool to kubesphere ippool, err=%v", err) + time.Sleep(3 * time.Second) + continue + } + break + } + }() return p }