Files
fission-src/doc/progress.md
T

3.0 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: добавить полный набор прав для 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 в 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 с правами:

  • serviceaccounts: get/list/watch/create/update/patch
  • roles, rolebindings: get/list/watch/create/update/patch
  • events: create
  • localsubjectaccessreviews.authorization.k8s.io: create

Применить через kubectl apply.

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

Последняя верификация

  • kubectl auth can-i create events --as=system:serviceaccount:fission:fission-executoryes
  • kubectl auth can-i create localsubjectaccessreviews.authorization.k8s.io --as=system:serviceaccount:fission:fission-executoryes
  • В новом NS rbac-verify-83117 автоматически созданы:
    • ServiceAccount/fission-fetcher
    • Role/fission-fetcher-role-*
    • RoleBinding/fission-fetcher-rolebinding-*