- tests/deploy/test_compose_manifests.py — 7 тестов на compose-инварианты
(без Docker, только PyYAML) — готовы к включению в CI (#17);
- Makefile: dev-up/dev-up-stub/dev-down/dev-logs/dev-verify/dev-verify-stub/
dev-reset/test-netns/test-netns-keep/test-netns-ci/test-manifests/lint-shell,
переменные HOST_DIR, DASH_PORT, NETNS_ARGS; dev-up без docker падает с внятным
сообщением, а не трейсбеком;
- deploy/README.md — таблица артефактов и быстрые команды стенда.
Refs #21
Refs #15
- verify-dev-stand.sh (`make dev-verify`): AC-1 (health 200, различает
api=real/stub), AC-2 (маркеры в /config и /data до и после restart и
--force-recreate, включая проверку на хосте), проверка монтирований и
health контейнера, JSON-отчёт; коды 0/1/2/3 — ok/regression/blocked-#31/
blocked-env;
- tests/deploy/validate_compose.py — проверки без Docker: контейнерный порт
8080, тома /config и /data, healthcheck /api/v1/health, NET_ADMIN и
/dev/net/tun, ip_forward, лимит логов, privileged netns-раннер и DEV-ONLY
заглушка. Флаг --require-dockerfile для интеграционного дерева.
Refs #21
Refs #15