# 2026-04-26 — RBAC fix для multi-tenant SA provisioning ## Симптом `test_layer1.sh` шаг 5 падает: pod poolmgr не создаётся в динамически добавленном NS. Event: `serviceaccount "fission-fetcher" not found` ## Путь диагностики 1. **Код есть** — `EnsureNamespaceSA` добавлена в `serviceaccount.go`, вызывается из `ns_watcher.go:168` 2. **Образ задеплоен** — v8 работает, executor регистрирует NS (шаги 1-4 PASS) 3. **RBAC проверка**: `kubectl auth can-i create serviceaccounts --as=...fission-executor -n l1-test-77773` → **`no`** 4. **ClusterRole `fission-executor-multi-ns`** имеет только `get/list/watch` для serviceaccounts, нет rules для `roles`/`rolebindings` ## Вывод `setupSAAndRoleBindings` вызывается, но k8s отвечает 403 → функция тихо логирует ошибку и возвращает → SA не создаётся. ## Решение Исправить `deploy/multitenant/rbac.yaml` — добавить ClusterRole с нужными правами + ClusterRoleBinding. ## Сделано - Добавлен ClusterRole `fission-executor-sa-provisioner` с `create/update/patch` для `serviceaccounts`, `roles`, `rolebindings` (namespace-scoped через ClusterRole) - Добавлен ClusterRoleBinding к SA `fission-executor` в NS `fission` - `kubectl apply` — применено - Верификация: `kubectl auth can-i create serviceaccounts/roles/rolebindings` → **`yes/yes/yes`** ✅ ## Следующий шаг Применить `kubectl apply -f deploy/multitenant/rbac.yaml`, коммит, запустить тест.