Files
fission-src/doc/INTEGRATION_TEST_PLAN_P1_P2.md
T

2.4 KiB

Интеграционный тест: 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:
    kubectl delete sa fission-fetcher -n <tenant-ns>
    
  3. В UI убедиться, что namespace ушёл в фазу failed
  4. Через ~30 сек namespace должен автоматически восстановиться (active)
    • SA/RB пересозданы
    • Функции снова работают (запустить любую тестовую функцию)

2. Проверка P2: adopt orphaned pods после рестарта executor

  1. Через fission-console вызвать несколько функций (чтобы были warm pods)
  2. Рестартовать executor:
    kubectl rollout restart deployment/executor -n fission
    kubectl rollout status deployment/executor -n fission
    
  3. Убедиться что:
    • Функции продолжают работать без cold start задержки
    • В логах executor есть строки PreRegisterManagedNamespaces, adopt, cleanup:
      kubectl logs -n fission -l svc=executor --tail=100 | grep -E "PreRegister|adopt|cleanup"
      

3. Проверить отсутствие регрессий (через fission-console)

  • Создание/удаление tenant работает
  • Функции создаются, редактируются, выполняются
  • Логи функций доступны в UI
  • Нет ошибок в UI и в логах executor/router

4. Команды для диагностики

# Текущий образ 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