63 lines
2.4 KiB
Markdown
63 lines
2.4 KiB
Markdown
# Интеграционный тест: 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 <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:
|
|
```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
|
|
```
|