3.3 KiB
2026-04-26 - Layer1 test доведён до PASS=5/5
Контекст
Внешний исходник Fission, который реально правился и тестировался, находится в отдельной рабочей копии:
~/terra/fission-src
Этот документ хранится в текущем workspace-репозитории как краткая рабочая фиксация результата и причин, чтобы не потерять контекст между шагами диагностики, скриптами и проверками.
Что было нужно получить
Тест test_layer1.sh должен был подтверждать, что новый namespace с label:
fission.io/managed=true
подхватывается без рестарта Fission, и в нём реально работает:
EnvironmentFunctionHTTPTrigger- вызов через router
Финальный результат
Финальный запуск дал:
PASS=5 FAIL=0
Функция ответила HTTP 200.
Две настоящие причины падения
1. Executor RBAC был неполным
Dynamic namespace registration в executor работал, но fission-executor не имел полного набора прав для provisioning fission-fetcher в новом namespace.
Не хватало не только прав на создание:
serviceaccountsrolesrolebindings
Но ещё и:
events.createlocalsubjectaccessreviews.create
Без этого executor не мог создать полный Role для fetcher.
2. Router RBAC отсутствовал для namespace watcher
После починки executor симптом сменился с 500 на 404.
Это показало, что executor-path уже работает, а router не подхватывает новый namespace.
Причина: у fission-router не было cluster-scope прав:
namespaces:listnamespaces:watch
Что было сделано
В fission-src был расширен deploy/multitenant/rbac.yaml:
- для executor dynamic SA provisioning
- для router namespace watcher
После этого:
fission-fetcherначал создаваться корректноRoleиRoleBindingстали появляться автоматически- router начал видеть новые namespace и подхватывать triggers
test_layer1.shпрошёл полностью
Полезный вывод
При multi-tenant hot registration нужно проверять не только код watcher-ов, но и весь Kubernetes RBAC contract по цепочке:
- namespace watch/list
- provisioning service account и RBAC в tenant namespace
- делегируемые permission-ы в создаваемых Role
- router runtime subscription на triggers/functions
Если ломается любой из этих этапов, симптомы будут меняться по мере частичных фиксов:
- сначала
serviceaccount not found - потом
500 timeout - потом
404
Именно такая последовательность и была здесь.