# Интеграционный тест: P1/P2 (namespace lifecycle hardening) ## Контекст Ветка: `fix/namespace-lifecycle-hardening` (fission-src) Коммиты: P1 (auto-recovery failed NS), P2 (adopt orphaned pods) Образ executor: `naeel/fission-bundle:v1.22.1` (задеплоен 2026-05-18) Тестирование — через **fission-console** UI. --- ## 1. Проверка P1: auto-recovery failed NS 1. Открыть fission-console, создать tenant (новый managed namespace) 2. Нарочно сломать ServiceAccount или RoleBinding: ```bash kubectl delete sa fission-fetcher -n ``` 3. В UI убедиться, что namespace ушёл в фазу `failed` 4. Через ~30 сек namespace должен автоматически восстановиться (`active`) - SA/RB пересозданы - Функции снова работают (запустить любую тестовую функцию) --- ## 2. Проверка P2: adopt orphaned pods после рестарта executor 1. Через fission-console вызвать несколько функций (чтобы были warm pods) 2. Рестартовать executor: ```bash kubectl rollout restart deployment/executor -n fission kubectl rollout status deployment/executor -n fission ``` 3. Убедиться что: - Функции продолжают работать без cold start задержки - В логах executor есть строки `PreRegisterManagedNamespaces`, `adopt`, `cleanup`: ```bash kubectl logs -n fission -l svc=executor --tail=100 | grep -E "PreRegister|adopt|cleanup" ``` --- ## 3. Проверить отсутствие регрессий (через fission-console) - Создание/удаление tenant работает - Функции создаются, редактируются, выполняются - Логи функций доступны в UI - Нет ошибок в UI и в логах executor/router --- ## 4. Команды для диагностики ```bash # Текущий образ executor kubectl get deployment executor -n fission -o jsonpath="{.spec.template.spec.containers[0].image}" # Логи executor (последние 200 строк) kubectl logs -n fission -l svc=executor --tail=200 # Статус managed NS kubectl get ns -l managed-by=fission ```