layer1: harden namespace watcher logging path
This commit is contained in:
@@ -119,7 +119,15 @@ func NewDefaultManagedNamespaceWatcherConfig(component string, subscriber Namesp
|
||||
}
|
||||
}
|
||||
|
||||
func namespaceManagerLogger(logger *zap.Logger) *zap.Logger {
|
||||
if logger != nil {
|
||||
return logger
|
||||
}
|
||||
return zap.NewNop()
|
||||
}
|
||||
|
||||
func PrepareManagedNamespaceWatcher(ctx context.Context, logger *zap.Logger, config ManagedNamespaceWatcherConfig) (NamespaceManager, k8sCache.ResourceEventHandlerFuncs, error) {
|
||||
logger = namespaceManagerLogger(logger)
|
||||
strategy := config.RemovalStrategy
|
||||
if strategy == "" {
|
||||
strategy = NamespaceRemovalStrategyTrackOnly
|
||||
@@ -131,6 +139,7 @@ func PrepareManagedNamespaceWatcher(ctx context.Context, logger *zap.Logger, con
|
||||
}
|
||||
|
||||
func RunManagedNamespaceWatcher(ctx context.Context, logger *zap.Logger, kubeClient kubernetes.Interface, mgr managerPkg.Interface, config ManagedNamespaceWatcherConfig) (NamespaceManager, error) {
|
||||
logger = namespaceManagerLogger(logger)
|
||||
manager, handlers, err := PrepareManagedNamespaceWatcher(ctx, logger, config)
|
||||
StartManagedNamespaceWatcher(ctx, logger, config.Component, kubeClient, mgr, handlers)
|
||||
LogNamespaceManagerSummary(logger, config.Component+": started namespace watcher", manager.Summary())
|
||||
@@ -187,6 +196,7 @@ func RecordNamespaceRemoval(manager NamespaceManager, obj interface{}, source Na
|
||||
}
|
||||
|
||||
func HandleWatcherNamespaceAdd(ctx context.Context, logger *zap.Logger, component string, manager NamespaceManager, namespace *corev1.Namespace) {
|
||||
logger = namespaceManagerLogger(logger)
|
||||
if namespace == nil || namespace.Name == "" {
|
||||
return
|
||||
}
|
||||
@@ -198,6 +208,7 @@ func HandleWatcherNamespaceAdd(ctx context.Context, logger *zap.Logger, componen
|
||||
}
|
||||
|
||||
func HandleWatcherNamespaceUpdate(ctx context.Context, logger *zap.Logger, component string, manager NamespaceManager, oldNamespace *corev1.Namespace, newNamespace *corev1.Namespace, strategy NamespaceRemovalStrategy) {
|
||||
logger = namespaceManagerLogger(logger)
|
||||
if newNamespace == nil {
|
||||
return
|
||||
}
|
||||
@@ -220,6 +231,7 @@ func HandleWatcherNamespaceDelete(ctx context.Context, logger *zap.Logger, compo
|
||||
}
|
||||
|
||||
func HandleWatcherNamespaceRemoval(ctx context.Context, logger *zap.Logger, component string, manager NamespaceManager, obj interface{}, strategy NamespaceRemovalStrategy) {
|
||||
logger = namespaceManagerLogger(logger)
|
||||
record, ok := RecordNamespaceRemoval(manager, obj, NamespaceSourceWatcher, time.Now().UTC())
|
||||
if !ok {
|
||||
return
|
||||
@@ -240,6 +252,7 @@ func HandleWatcherNamespaceRemoval(ctx context.Context, logger *zap.Logger, comp
|
||||
}
|
||||
|
||||
func NewNamespaceWatcherEventHandlers(ctx context.Context, logger *zap.Logger, component string, manager NamespaceManager, strategy NamespaceRemovalStrategy) k8sCache.ResourceEventHandlerFuncs {
|
||||
logger = namespaceManagerLogger(logger)
|
||||
return k8sCache.ResourceEventHandlerFuncs{
|
||||
AddFunc: func(obj interface{}) {
|
||||
namespace, ok := obj.(*corev1.Namespace)
|
||||
@@ -261,6 +274,7 @@ func NewNamespaceWatcherEventHandlers(ctx context.Context, logger *zap.Logger, c
|
||||
}
|
||||
|
||||
func StartManagedNamespaceWatcher(ctx context.Context, logger *zap.Logger, component string, kubeClient kubernetes.Interface, mgr managerPkg.Interface, handlers k8sCache.ResourceEventHandlerFuncs) {
|
||||
logger = namespaceManagerLogger(logger)
|
||||
factory := k8sInformers.NewSharedInformerFactoryWithOptions(
|
||||
kubeClient,
|
||||
30*time.Minute,
|
||||
|
||||
Reference in New Issue
Block a user