3.0 KiB
3.0 KiB
Fission Multi-Tenant — Progress
Задача
Добиться 5/5 PASS в test_layer1.sh: динамически добавленный NS с меткой fission.io/managed=true должен работать без рестарта Fission.
Статус задач
| # | Задача | Статус |
|---|---|---|
| 1 | Добавить EnsureNamespaceSA в pkg/utils/serviceaccount.go |
✅ DONE |
| 2 | Вызов EnsureNamespaceSA из ns_watcher.go при регистрации NS |
✅ DONE |
| 3 | Сборка образа naeel/fission-bundle:v1.22.0-multi-ns-8 |
✅ DONE |
| 4 | Деплой образа v8 в кластер (executor/router/buildermgr) | ✅ DONE |
| 5 | Коммит 161de70 "multi-tenant: EnsureNamespaceSA + ns_watcher SA provisioning (v8)" |
✅ DONE |
| 6 | Исправить RBAC: добавить полный набор прав для SA provisioning в deploy/multitenant/rbac.yaml |
✅ DONE |
| 7 | Применить RBAC через kubectl apply, верифицировать SA/Role/RoleBinding |
✅ DONE |
| 8 | Коммит RBAC fix | 🔄 IN PROGRESS |
| 9 | Запустить test_layer1.sh, добиться 5/5 PASS |
⏳ TODO |
Текущий результат теста
test_layer1.sh — 4/5:
- Шаг 5 падает:
serviceaccount "fission-fetcher" not foundв NSl1-test-77773
Диагностика (2026-04-26)
- Код
EnsureNamespaceSAприсутствует вserviceaccount.go✅ ns_watcher.goстрока 168 вызываетEnsureNamespaceSA✅- RBAC:
kubectl auth can-i create serviceaccounts --as=...fission-executor -n l1-test-77773→no❌ - ClusterRole
fission-executor-multi-nsне имеетcreateдляserviceaccounts, и нет rules дляroles/rolebindings - Вывод:
setupSAAndRoleBindingsвызывается, но получает 403 Forbidden и тихо фейлится → SA не создаётся → pod не стартует
Решение
Добавить в deploy/multitenant/rbac.yaml новый ClusterRole + ClusterRoleBinding с правами:
serviceaccounts:get/list/watch/create/update/patchroles,rolebindings:get/list/watch/create/update/patchevents:createlocalsubjectaccessreviews.authorization.k8s.io:create
Применить через kubectl apply.
Пересборка образа НЕ нужна — логика правильная, проблема только в RBAC.
Последняя верификация
kubectl auth can-i create events --as=system:serviceaccount:fission:fission-executor→yeskubectl auth can-i create localsubjectaccessreviews.authorization.k8s.io --as=system:serviceaccount:fission:fission-executor→yes- В новом NS
rbac-verify-83117автоматически созданы:ServiceAccount/fission-fetcherRole/fission-fetcher-role-*RoleBinding/fission-fetcher-rolebinding-*