From ae8275d0a77326ca4505d594c37d6b7728b346f3 Mon Sep 17 00:00:00 2001 From: Naeel Date: Sun, 26 Apr 2026 10:21:26 +0300 Subject: [PATCH] layer1: add namespace lifecycle subscribers step 16 --- .../2026-04-26-namespace-manager-step16.md | 18 ++++++++++++++++++ pkg/utils/namespace_manager.go | 4 ++++ pkg/utils/namespace_manager_test.go | 13 +++++++++++++ 3 files changed, 35 insertions(+) create mode 100644 doc/thinking/2026-04-26-namespace-manager-step16.md diff --git a/doc/thinking/2026-04-26-namespace-manager-step16.md b/doc/thinking/2026-04-26-namespace-manager-step16.md new file mode 100644 index 00000000..aca12c6a --- /dev/null +++ b/doc/thinking/2026-04-26-namespace-manager-step16.md @@ -0,0 +1,18 @@ +# 2026-04-26 — NamespaceManager rewrite, step 16 + +## Цель шага + +Подготовить lifecycle subscriber contract для будущего reconcile path. + +## Что меняем + +1. Расширяем `NamespaceSubscriber` методами: + - `OnNamespaceAdd()` + - `OnNamespaceRemove()` + - `OnNamespaceResync()` +2. Обновляем тестовую заглушку subscriber-а. + +## Что НЕ меняем + +- не вызываем subscriber-ов из manager; +- не подключаем contract к runtime components. \ No newline at end of file diff --git a/pkg/utils/namespace_manager.go b/pkg/utils/namespace_manager.go index ea2d4a05..a41fe15a 100644 --- a/pkg/utils/namespace_manager.go +++ b/pkg/utils/namespace_manager.go @@ -1,6 +1,7 @@ package utils import ( + "context" "sort" "sync" "time" @@ -8,6 +9,9 @@ import ( type NamespaceSubscriber interface { Name() string + OnNamespaceAdd(ctx context.Context, record NamespaceRecord) error + OnNamespaceRemove(ctx context.Context, record NamespaceRecord) error + OnNamespaceResync(ctx context.Context, record NamespaceRecord) error } type NamespaceManager interface { diff --git a/pkg/utils/namespace_manager_test.go b/pkg/utils/namespace_manager_test.go index 1b224ad3..76f0dafe 100644 --- a/pkg/utils/namespace_manager_test.go +++ b/pkg/utils/namespace_manager_test.go @@ -1,6 +1,7 @@ package utils import ( + "context" "errors" "reflect" "testing" @@ -15,6 +16,18 @@ func (s testNamespaceSubscriber) Name() string { return s.name } +func (s testNamespaceSubscriber) OnNamespaceAdd(ctx context.Context, record NamespaceRecord) error { + return nil +} + +func (s testNamespaceSubscriber) OnNamespaceRemove(ctx context.Context, record NamespaceRecord) error { + return nil +} + +func (s testNamespaceSubscriber) OnNamespaceResync(ctx context.Context, record NamespaceRecord) error { + return nil +} + func TestNamespaceManagerSnapshotAndGet(t *testing.T) { manager := NewNamespaceManager() now := time.Now().UTC()