# Изменения в fission-src относительно официального Fission Базовый коммит официального Fission: `82e1ff76` (Add npm dependabot rules, 2025-12-16) --- ## Что менялось ### 1. Ядро — `pkg/utils/` - `namespace_manager.go` (+608 строк) — новый компонент: менеджер namespace. Отслеживает появление/исчезновение namespace с меткой `fission.io/managed=true` в реальном времени без рестарта Fission. - `namespace_manager_model.go` (+181 строк) — модель данных менеджера namespace. - `namespace.go` (+66 строк) — расширена логика работы с namespace. - `serviceaccount.go` (+25 строк) — добавлена функция `EnsureNamespaceSA`: при появлении нового namespace автоматически создаёт ServiceAccount, Role, RoleBinding, необходимые для работы fetcher/builder. ### 2. Executor — `pkg/executor/` - `multitenant/ns_watcher.go` (+137 строк) — watcher namespace-событий для executor. При появлении namespace с меткой `fission.io/managed=true` — executor начинает обслуживать функции в этом namespace без рестарта. - `executortype/poolmgr/gpm.go` (+69 строк) — poolmgr динамически добавляет новые namespace. - `executortype/newdeploy/newdeploymgr.go` (+61 строка) — аналогично для newdeploy. - `executortype/container/containermgr.go` (+49 строк) — аналогично для container executor. - `executortype/poolmgr/poolpodcontroller.go` (+43 строки) — контроллер подов poolmgr знает о новых namespace. ### 3. Router — `pkg/router/` - `httpTriggers.go` (+116 строк) — роутер подписывается на ns_watcher, динамически добавляет маршруты для функций в новых namespace. - `namespace_subscriber.go` (+31 строка) — подписка роутера на namespace-события. - `ns_watcher.go` (+32 строки) — watcher namespace для роутера. - `functionReferenceResolver.go` (+11 строк) — резолвер функций знает о мультинеймспейс. ### 4. BuilderMgr — `pkg/buildermgr/` - `ns_watcher.go` (+32 строки) — watcher namespace для buildermgr. - `namespace_subscriber.go` (+43 строки) — подписка buildermgr на namespace-события. - `envwatcher.go` (+45 строк) — watcher окружений теперь реагирует на новые namespace. - `pkgwatcher.go` (+38 строк) — watcher пакетов — аналогично. ### 5. RBAC — `deploy/multitenant/rbac.yaml` (+122 строки) - Новые ClusterRole и ClusterRoleBinding для автоматического создания SA/Role/RoleBinding в пользовательских namespace. - `deploy/executor-ns-watcher-rbac.yaml` (+26 строк) — дополнительный RBAC для ns_watcher executor. --- ## Обратная совместимость **Полная.** Если в кластере нет namespace с меткой `fission.io/managed=true` — поведение идентично официальному Fission v1.22.0. - CRD не изменялись. - API (fission CLI) не изменялся. - Helm-чарт не изменялся. - Существующие функции, env, пакеты работают без изменений. --- ## Как активировать мультитенантность Добавить метку на namespace: ```bash kubectl label namespace fission.io/managed=true ``` Fission автоматически начнёт обслуживать функции в этом namespace без рестарта.