59 lines
3.9 KiB
Markdown
59 lines
3.9 KiB
Markdown
# Изменения в 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 без рестарта.
|