doc: описание изменений fission-src vs официальный Fission (multi-tenant)
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
# Изменения в 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 <ns> fission.io/managed=true
|
||||
```
|
||||
|
||||
Fission автоматически начнёт обслуживать функции в этом namespace без рестарта.
|
||||
Reference in New Issue
Block a user