59c3ad4918
- 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
2.5 KiB
2.5 KiB
deploy — сборка и развёртывание
| Артефакт | Назначение | Задача |
|---|---|---|
Dockerfile |
multi-stage: amneziawg-go + awg-tools → runtime alpine | #18 |
entrypoint.sh |
супервизор: awg-agent (root) + awg-api |
#18 |
docker-compose.dev.yml |
dev-стенд: порт 8080, тома /config /data, healthcheck |
#21 |
docker-compose.test.yml |
стенд для тестов | #21 |
docker-compose.stub.yml |
DEV-ONLY оверрайд: health-заглушка до мержа #31 | #21 |
api_stub.py |
минимальный /api/v1/health для проверки плумбинга стенда |
#21 |
verify-dev-stand.sh |
проверка AC #21 на Docker-хосте (make dev-verify) |
#21 |
dev-stand.md |
runbook dev-стенда: запуск, AC, откат, pitfalls | #21 |
grafana/ |
дашборд JSON (опциональный профиль monitoring) | #46 |
awg0.conf.example |
пример клиентского конфига | #22 |
Запуск по ТЗ (после релиза): --network=host, --device=/dev/net/tun, --cap-add=NET_ADMIN --cap-add=SYS_MODULE, --restart always.
Dev-стенд (задача #21)
make dev-up # поднять стенд (compose project awg-dash-dev)
make dev-verify # AC: health 200 + /config /data переживают restart
make dev-up-stub # + health-заглушка, пока нет API (#31)
make dev-logs
make dev-down
- Состояние:
/opt/awg-dash-dev/{config,data}на Docker-хосте (AWG_DASH_HOST_DIR). - Хост-порт:
AWG_DASH_PORT(по умолчанию 8180 — 8080 занят на dev-хосте; в контейнере всегда 8080). - Подробности, таблица AC, откат и pitfalls — dev-stand.md.
Тестовый стенд без реального провайдера
make test-netns # netns-топология client/gw/uplink + мок WireGuard-endpoint
make test-netns-ci # то же в привилегированном контейнере (путь для CI, #17)
make test-manifests # статическая проверка compose-файлов (без Docker)
make lint-shell # shellcheck для скриптов стенда
Описание топологии, тестов и pitfalls — ../tests/netns/README.md.