From cde5d8e36e30e9722ee399e75a1b42c4519c8b83 Mon Sep 17 00:00:00 2001 From: cyclinder Date: Fri, 1 Mar 2024 15:23:47 +0800 Subject: [PATCH] Fix panic in spidercoordinator informer Signed-off-by: cyclinder --- .../coordinator_informer.go | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/pkg/coordinatormanager/coordinator_informer.go b/pkg/coordinatormanager/coordinator_informer.go index 20f9aabc6e..ef6ac33b89 100644 --- a/pkg/coordinatormanager/coordinator_informer.go +++ b/pkg/coordinatormanager/coordinator_informer.go @@ -86,14 +86,18 @@ type CoordinatorController struct { Client client.Client APIReader client.Reader - CoordinatorLister spiderlisters.SpiderCoordinatorLister - ConfigmapLister corelister.ConfigMapLister - ServiceCIDRLister networkingLister.ServiceCIDRLister + CoordinatorLister spiderlisters.SpiderCoordinatorLister + ConfigmapLister corelister.ConfigMapLister + // only not to nil if the k8s serviceCIDR is enabled + ServiceCIDRLister networkingLister.ServiceCIDRLister + // only not to nil if the cilium multu-pool is enabled CiliumIPPoolLister ciliumLister.CiliumPodIPPoolLister - CoordinatorSynced cache.InformerSynced - ConfigmapSynced cache.InformerSynced - ServiceCIDRSynced cache.InformerSynced + CoordinatorSynced cache.InformerSynced + ConfigmapSynced cache.InformerSynced + // only not nil if the k8s serviceCIDR is enabled + ServiceCIDRSynced cache.InformerSynced + // only not to nil if the cilium multu-pool is enabled CiliumIPPoolsSynced cache.InformerSynced Workqueue workqueue.RateLimitingInterface @@ -505,7 +509,7 @@ func (cc *CoordinatorController) updatePodAndServerCIDR(ctx context.Context, log } if err = cc.updateServiceCIDR(logger, coordCopy); err != nil { - logger.Sugar().Warn("failed to list the serviceCIDR resources: %v, update service cidr from cluster service cidr", err) + logger.Sugar().Infof("failed to list the serviceCIDR resources: %v, update service cidr from cluster service cidr", err) coordCopy.Status.ServiceCIDR = k8sServiceCIDR } @@ -706,6 +710,10 @@ func (cc *CoordinatorController) fetchCiliumIPPools(coordinator *spiderpoolv2bet func (cc *CoordinatorController) updateServiceCIDR(logger *zap.Logger, coordCopy *spiderpoolv2beta1.SpiderCoordinator) error { // fetch kubernetes ServiceCIDR + if cc.ServiceCIDRLister == nil { + return fmt.Errorf("the kubernetes serviceCIDR is disabled") + } + svcPoolList, err := cc.ServiceCIDRLister.List(labels.NewSelector()) if err != nil { return err