From f16aa030db3464a08ff655fe115c95c96a90c06b Mon Sep 17 00:00:00 2001 From: Naeel Date: Sun, 26 Apr 2026 10:57:29 +0300 Subject: [PATCH] layer1: log namespace manager summary --- .../2026-04-26-namespace-manager-step46.md | 19 +++++++++++++++++++ pkg/utils/namespace_manager.go | 12 ++++++++++++ pkg/utils/namespace_manager_test.go | 4 ++++ 3 files changed, 35 insertions(+) create mode 100644 doc/thinking/2026-04-26-namespace-manager-step46.md diff --git a/doc/thinking/2026-04-26-namespace-manager-step46.md b/doc/thinking/2026-04-26-namespace-manager-step46.md new file mode 100644 index 00000000..62f95b90 --- /dev/null +++ b/doc/thinking/2026-04-26-namespace-manager-step46.md @@ -0,0 +1,19 @@ +# 2026-04-26 — NamespaceManager rewrite, step 46 + +## Цель шага + +Начать реальное использование `NamespaceManager.Summary()` в orchestration layer. + +## Что меняем + +1. Добавляем helper `LogNamespaceManagerSummary()`. +2. `PrepareManagedNamespaceWatcher()` пишет summary после bootstrap. +3. В лог попадают: + - общее число namespace-ов; + - subscriber-ы; + - phase counts. + +## Что НЕ меняем + +- не экспортируем summary наружу через HTTP; +- не меняем runtime behavior watcher-ов. \ No newline at end of file diff --git a/pkg/utils/namespace_manager.go b/pkg/utils/namespace_manager.go index a057655b..e9287eff 100644 --- a/pkg/utils/namespace_manager.go +++ b/pkg/utils/namespace_manager.go @@ -113,9 +113,21 @@ func NewWatcherNamespaceManager(ctx context.Context, namespaces []string, source func PrepareManagedNamespaceWatcher(ctx context.Context, logger *zap.Logger, component string, namespaces []string, removalStrategy NamespaceRemovalStrategy, subscriber NamespaceSubscriber) (NamespaceManager, k8sCache.ResourceEventHandlerFuncs, error) { manager, err := NewWatcherNamespaceManager(ctx, namespaces, NamespaceSourceEnv, time.Now().UTC(), subscriber) handlers := NewNamespaceWatcherEventHandlers(ctx, logger, component, manager, removalStrategy) + LogNamespaceManagerSummary(logger, component+": prepared namespace manager", manager.Summary()) return manager, handlers, err } +func LogNamespaceManagerSummary(logger *zap.Logger, message string, summary NamespaceManagerSummary) { + if logger == nil { + return + } + logger.Info(message, + zap.Int("total_namespaces", summary.TotalNamespaces), + zap.Any("phase_counts", summary.PhaseCounts), + zap.Strings("subscribers", summary.Subscribers), + ) +} + func NamespaceBecameUnmanaged(oldNamespace *corev1.Namespace, newNamespace *corev1.Namespace) bool { if oldNamespace == nil || newNamespace == nil { return false diff --git a/pkg/utils/namespace_manager_test.go b/pkg/utils/namespace_manager_test.go index b276aca8..0822a043 100644 --- a/pkg/utils/namespace_manager_test.go +++ b/pkg/utils/namespace_manager_test.go @@ -475,6 +475,10 @@ func TestNamespaceManagerSummary(t *testing.T) { } } +func TestLogNamespaceManagerSummaryWithNilLogger(t *testing.T) { + LogNamespaceManagerSummary(nil, "ignored", NamespaceManagerSummary{TotalNamespaces: 1}) +} + func TestNamespaceManagerDispatchAdd(t *testing.T) { manager := NewNamespaceManager() manager.Upsert(NamespaceEvent{Type: NamespaceEventAdd, Name: "tenant-a", Source: NamespaceSourceWatcher})