Files
fission-src/doc/progress.md
T
Naeel 8ccc9fb342 rbac: add fission-executor-sa-provisioner for SA/Role/RoleBinding creation in user NS
Fixes EnsureNamespaceSA getting 403 Forbidden when provisioning fission-fetcher
SA in dynamically registered namespaces. Adds ClusterRole + ClusterRoleBinding
with create/update/patch for serviceaccounts, roles, rolebindings.

Also adds doc/progress.md and doc/thinking/2026-04-26-rbac-fix.md.
2026-04-26 07:46:33 +03:00

2.3 KiB
Raw Blame History

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: добавить create/update/patch для SA/roles/rolebindings в deploy/multitenant/rbac.yaml 🔄 IN PROGRESS
7 Применить RBAC через kubectl apply, верифицировать TODO
8 Коммит RBAC fix TODO
9 Запустить test_layer1.sh, добиться 5/5 PASS TODO

Текущий результат теста

test_layer1.sh — 4/5:

  • Шаг 5 падает: serviceaccount "fission-fetcher" not found в NS l1-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-77773no
  • ClusterRole fission-executor-multi-ns не имеет create для serviceaccounts, и нет rules для roles/rolebindings
  • Вывод: setupSAAndRoleBindings вызывается, но получает 403 Forbidden и тихо фейлится → SA не создаётся → pod не стартует

Решение

Добавить в deploy/multitenant/rbac.yaml новый ClusterRole + ClusterRoleBinding с правами create/update/patch для serviceaccounts, roles, rolebindings. Применить через kubectl apply.

Пересборка образа НЕ нужна — логика правильная, проблема только в RBAC.