trivy разбирает pip/_vendor/vendor.txt и репортит вендоренные msgpack 1.1.2 /
urllib3 2.7.0 / setuptools 70.3.0 как установленные пакеты — при том что в venv
реально стоят 1.2.4 / 2.8.0 / 84.2.1 (проверено pip list внутри образа staging-cc3621a1).
py3-pip переведён в .build-deps и удаляется вместе с ними; pip в venv и системный
pip вычищаются — runtime не должен содержать инсталлятора.
Refs #61
После бампа Go 1.26 / alpine 3.23 в образе остались только Go-модули:
x/crypto v0.43.0 — 5 HIGH (ssh*, фиксы до v0.55.0)
x/net v0.45.0 — 16 HIGH (http2/idna/dnsmessage, фиксы до v0.60.0)
Оба подняты на актуальные версии из proxy.golang.org (v0.58.0 / v0.62.0).
В alpine 3.23.7 находок нет (66 пакетов).
Refs #61
Гоняно на 192.168.1.147 на дереве, сверенном по git-blob-SHA: ci.sh 0/4/3/1,
make при коде 4 и 1 отдаёт 2 (контейнерные коды видны в логе), AWG_NS_EXEC_MODE
больше не перекрывается, DEV_SKIP_BUILD=1 даёт AC-1 (200 + healthy), test-deploy
51 passed / 98.86 %, manifests и shellcheck — 0.
Refs #21
Refs #56
Приведение документации к фактическому поведению после ревью PR #53 (раунд 2):
точка входа для CI без make (контракт 0/1/3/4), приоритет AWG_NS_EXEC_MODE над
make-алиасом, сборка без сети (DEV_SKIP_BUILD=1).
Refs #21
Refs #56
- netns-ci в контейнере: причина (ip netns exec/ip -n перемонтируют /sys),
переход на nsenter, контракт кодов 0/1/3/4 — все четыре воспроизведены.
- гейт покрытия: make test-deploy = 51 passed, 98.86 %.
Refs #21, Refs #15, Refs #56
- topology.sh: ns_exec для всех ip -n <ns> и ip netns exec, коды 0/1/3/4.
- netns_common.py: ns_exec_mode()/ns_exec_direct(), addrs/links/link_is_up через ns_sh.
- docker-compose.test.yml: проброс AWG_NS_EXEC_MODE в netns-сервис.
- tests/netns/README.md: режимы входа в netns, коды возврата, новый pitfall.
Refs #21, Refs #15, Refs #56
- 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