Files
fission-src/doc/thinking/2026-04-26-namespace-manager-step4.md
T

1.5 KiB

2026-04-26 — NamespaceManager rewrite, step 4

Цель шага

Исправить реальный functional bug в dynamic onboarding buildermgr.

Дефект

buildermgr.StartNSWatcher() вызывает:

  1. envw.AddNamespace()
  2. pkgw.AddNamespace()

Но оба watcher-а используют один и тот же глобальный nsResolver.AddNamespace() для dedup. Из-за этого первый вызов добавляет namespace, а второй считает его уже обработанным и выходит раньше времени. В результате у динамического tenant namespace может подняться только Environment informer без Package informer.

Исправление

  1. Глобальный resolver обновляется один раз в buildermgr/ns_watcher.go.
  2. environmentWatcher dedup делает только по своей map envWatchInformer.
  3. packageWatcher dedup делает только по своим map pkgInformer / podInformer.

Так buildermgr становится симметричнее executor path: общий registry обновляется один раз, а конкретные компоненты сами решают, подписаны ли они уже на namespace.

Что НЕ меняем

  • не добавляем cleanup/remove semantics;
  • не меняем router;
  • не трогаем newdeploy parity gap на этом шаге.