layer1: log namespace manager summary

This commit is contained in:
Naeel
2026-04-26 10:57:29 +03:00
parent 5c481b7293
commit f16aa030db
3 changed files with 35 additions and 0 deletions
@@ -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-ов.
+12
View File
@@ -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) { 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) manager, err := NewWatcherNamespaceManager(ctx, namespaces, NamespaceSourceEnv, time.Now().UTC(), subscriber)
handlers := NewNamespaceWatcherEventHandlers(ctx, logger, component, manager, removalStrategy) handlers := NewNamespaceWatcherEventHandlers(ctx, logger, component, manager, removalStrategy)
LogNamespaceManagerSummary(logger, component+": prepared namespace manager", manager.Summary())
return manager, handlers, err 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 { func NamespaceBecameUnmanaged(oldNamespace *corev1.Namespace, newNamespace *corev1.Namespace) bool {
if oldNamespace == nil || newNamespace == nil { if oldNamespace == nil || newNamespace == nil {
return false return false
+4
View File
@@ -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) { func TestNamespaceManagerDispatchAdd(t *testing.T) {
manager := NewNamespaceManager() manager := NewNamespaceManager()
manager.Upsert(NamespaceEvent{Type: NamespaceEventAdd, Name: "tenant-a", Source: NamespaceSourceWatcher}) manager.Upsert(NamespaceEvent{Type: NamespaceEventAdd, Name: "tenant-a", Source: NamespaceSourceWatcher})