1.5 KiB
1.5 KiB
2026-04-26 — NamespaceManager rewrite, step 4
Цель шага
Исправить реальный functional bug в dynamic onboarding buildermgr.
Дефект
buildermgr.StartNSWatcher() вызывает:
envw.AddNamespace()pkgw.AddNamespace()
Но оба watcher-а используют один и тот же глобальный nsResolver.AddNamespace() для dedup.
Из-за этого первый вызов добавляет namespace, а второй считает его уже обработанным и
выходит раньше времени. В результате у динамического tenant namespace может подняться только
Environment informer без Package informer.
Исправление
- Глобальный resolver обновляется один раз в
buildermgr/ns_watcher.go. environmentWatcherdedup делает только по своей mapenvWatchInformer.packageWatcherdedup делает только по своим mappkgInformer/podInformer.
Так buildermgr становится симметричнее executor path: общий registry обновляется один раз, а конкретные компоненты сами решают, подписаны ли они уже на namespace.
Что НЕ меняем
- не добавляем cleanup/remove semantics;
- не меняем router;
- не трогаем newdeploy parity gap на этом шаге.