From e480f81937910819fdbb8d0a021cedd251945f76 Mon Sep 17 00:00:00 2001 From: Sanket Sudake Date: Fri, 20 Aug 2021 09:03:09 +0530 Subject: [PATCH] Change default informer resync period to 30 minutes (#2167) Currently most of informers used in Fission are using resync period of 30sec which is quite low and causes lot of disturbances in overall system. Since informers already have watchers which would be delivering events to the handlers. If any handlers require lower sync period they should register handler with `AddEventHandlersWithResyncPeriod` instead of we generaling informer. Signed-off-by: Sanket Sudake --- pkg/buildermgr/buildermgr.go | 4 ++-- pkg/canaryconfigmgr/canaryConfigMgr.go | 2 +- pkg/executor/executor.go | 4 ++-- pkg/logger/logger.go | 2 +- pkg/mqtrigger/scalermanager.go | 2 +- pkg/router/httpTriggers.go | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pkg/buildermgr/buildermgr.go b/pkg/buildermgr/buildermgr.go index 1c34573e6..6e4a9f4c9 100644 --- a/pkg/buildermgr/buildermgr.go +++ b/pkg/buildermgr/buildermgr.go @@ -50,8 +50,8 @@ func Start(logger *zap.Logger, storageSvcUrl string, envBuilderNamespace string) envWatcher := makeEnvironmentWatcher(bmLogger, fissionClient, kubernetesClient, fetcherConfig, envBuilderNamespace) go envWatcher.watchEnvironments() - k8sInformerFactory := k8sInformers.NewSharedInformerFactory(kubernetesClient, time.Second*30) - informerFactory := genInformer.NewSharedInformerFactory(fissionClient, 60*time.Minute) + k8sInformerFactory := k8sInformers.NewSharedInformerFactory(kubernetesClient, time.Minute*30) + informerFactory := genInformer.NewSharedInformerFactory(fissionClient, time.Minute*30) podInformer := k8sInformerFactory.Core().V1().Pods().Informer() pkgInformer := informerFactory.Core().V1().Packages().Informer() pkgWatcher := makePackageWatcher(bmLogger, fissionClient, diff --git a/pkg/canaryconfigmgr/canaryConfigMgr.go b/pkg/canaryconfigmgr/canaryConfigMgr.go index e117c5ca7..60835bc1d 100644 --- a/pkg/canaryconfigmgr/canaryConfigMgr.go +++ b/pkg/canaryconfigmgr/canaryConfigMgr.go @@ -93,7 +93,7 @@ func MakeCanaryConfigMgr(logger *zap.Logger, fissionClient *crd.FissionClient, k canaryCfgCancelFuncMap: makecanaryConfigCancelFuncMap(), } - informerFactory := genInformer.NewSharedInformerFactory(fissionClient, time.Second*30) + informerFactory := genInformer.NewSharedInformerFactory(fissionClient, time.Minute*30) informer := informerFactory.Core().V1().CanaryConfigs().Informer() configMgr.canaryConfigInformer = &informer configMgr.CanaryConfigEventHandlers() diff --git a/pkg/executor/executor.go b/pkg/executor/executor.go index 8bee46d6d..159be6e43 100644 --- a/pkg/executor/executor.go +++ b/pkg/executor/executor.go @@ -275,7 +275,7 @@ func StartExecutor(logger *zap.Logger, functionNamespace string, envBuilderNames logger.Info("Starting executor", zap.String("instanceID", executorInstanceID)) - informerFactory := genInformer.NewSharedInformerFactory(fissionClient, time.Second*30) + informerFactory := genInformer.NewSharedInformerFactory(fissionClient, time.Minute*30) funcInformer := informerFactory.Core().V1().Functions().Informer() pkgInformer := informerFactory.Core().V1().Packages().Informer() envInformer := informerFactory.Core().V1().Environments().Informer() @@ -330,7 +330,7 @@ func StartExecutor(logger *zap.Logger, functionNamespace string, envBuilderNames // TODO: use context to control the waiting time once kubernetes client supports it. util.WaitTimeout(wg, 30*time.Second) - k8sInformerFactory := k8sInformers.NewSharedInformerFactory(kubernetesClient, time.Second*30) + k8sInformerFactory := k8sInformers.NewSharedInformerFactory(kubernetesClient, time.Minute*30) configmapInformer := k8sInformerFactory.Core().V1().ConfigMaps().Informer() secretInformer := k8sInformerFactory.Core().V1().Secrets().Informer() diff --git a/pkg/logger/logger.go b/pkg/logger/logger.go index f4dd033c2..42adb638a 100644 --- a/pkg/logger/logger.go +++ b/pkg/logger/logger.go @@ -185,7 +185,7 @@ func Start() { if err != nil { log.Fatalf("Error starting pod watcher: %v", err) } - informerFactory := k8sInformers.NewSharedInformerFactory(kubernetesClient, 30*time.Second) + informerFactory := k8sInformers.NewSharedInformerFactory(kubernetesClient, time.Minute*30) podInformer := informerFactory.Core().V1().Pods().Informer() podInformer.AddEventHandler(podInformerHandlers(zapLogger)) podInformer.Run(make(chan struct{})) diff --git a/pkg/mqtrigger/scalermanager.go b/pkg/mqtrigger/scalermanager.go index d516cbee8..ed27ece8c 100644 --- a/pkg/mqtrigger/scalermanager.go +++ b/pkg/mqtrigger/scalermanager.go @@ -158,7 +158,7 @@ func StartScalerManager(logger *zap.Logger, routerURL string) error { if err != nil { return errors.Wrap(err, "error waiting for CRDs") } - informerFactory := genInformer.NewSharedInformerFactory(fissionClient, 30*time.Second) + informerFactory := genInformer.NewSharedInformerFactory(fissionClient, time.Minute*30) mqTriggerInformer := informerFactory.Core().V1().MessageQueueTriggers().Informer() mqTriggerInformer.AddEventHandler(mqTriggerEventHandlers(logger, kubeClient, routerURL)) mqTriggerInformer.Run(context.Background().Done()) diff --git a/pkg/router/httpTriggers.go b/pkg/router/httpTriggers.go index 830f11373..031f10d78 100644 --- a/pkg/router/httpTriggers.go +++ b/pkg/router/httpTriggers.go @@ -76,7 +76,7 @@ func makeHTTPTriggerSet(logger *zap.Logger, fmap *functionServiceMap, fissionCli unTapServiceTimeout: unTapServiceTimeout, } - informerFactory := genInformer.NewSharedInformerFactory(fissionClient, time.Second*30) + informerFactory := genInformer.NewSharedInformerFactory(fissionClient, time.Minute*30) httpTriggerSet.triggerInformer = informerFactory.Core().V1().HTTPTriggers().Informer() httpTriggerSet.funcInformer = informerFactory.Core().V1().Functions().Informer()