Полный production-рефакторинг билдера, drift-reconcile и документации по up5

This commit is contained in:
2026-05-10 16:42:09 +05:00
parent b3dad5974c
commit b8d2c4592b
12 changed files with 571 additions and 266 deletions
+4 -5
View File
@@ -15,15 +15,14 @@ peer_ipv4_cidr = "10.8.1.0/24"
enabled = true
peer_limit = "70mbit"
root_rate = "1000mbit"
reconcile_interval_secs = 60
container_ready_timeout_secs = 30
reconcile_interval_secs = 15
container_ready_timeout_secs = 120
class_start_id = 10
ifb_name = "ifb0"
full_rebuild_on_drift = true
[anti_torrent]
enabled = true
max_connections_per_peer = 200
max_connections_per_peer = 100
peer_ipv4_cidr = "10.8.1.0/24"
apply_in_amnezia_netns = true
@@ -62,7 +61,7 @@ swappiness = 1
`traffic.ifb_name` — имя IFB-интерфейса для ingress shaping. В старой системе это `ifb0`. Этот параметр можно оставить в конфиге, потому что бинарь реально создаёт/удаляет этот интерфейс.
`traffic.full_rebuild_on_drift` — безопасная v1-модель: при drift удалить owned topology и собрать заново.
При drift orchestrator всегда делает controlled rebuild owned topology.
`anti_torrent.enabled` — включает nftables connection-count guard против high-peer-count P2P-нагрузки. Это новое расширение, не часть old bash.
+3 -6
View File
@@ -236,11 +236,8 @@ reconcile_traffic():
return NoChange
if drift.exists:
if config.traffic.full_rebuild_on_drift:
teardown_owned_topology(target, desired)
apply_full_topology(target, desired)
else:
apply_incremental_fix(drift)
teardown_owned_topology(target, desired)
apply_full_topology(target, desired)
verify_after_apply(target, desired)
if firewall_drift.exists:
@@ -248,7 +245,7 @@ reconcile_traffic():
verify_firewall_after_apply(target, firewall_desired)
```
For v1, `full_rebuild_on_drift = true` is the safer default.
For production v1, controlled full rebuild on drift is the only supported path.
Parser hardening requirements:
+2 -12
View File
@@ -31,6 +31,7 @@ nft
Сборку лучше выполнять на отдельной build-машине с тем же целевым ABI.
```bash
./tools/build.sh --prepare-build-env --bootstrap-rust --yes
./tools/build.sh
```
@@ -150,15 +151,4 @@ awg2-harness status --config /etc/awg2-harness/config.toml
## 9. Rollback
Если нужно временно вернуться к old bash:
```bash
systemctl stop awg2-harness.service
systemctl disable awg2-harness.service
# вернуть /opt/amnezia/limit_peers.sh и /opt/amnezia/docker_watcher.sh
# вернуть amnezia-tc.service и amnezia-tc-watcher.service
systemctl daemon-reload
systemctl enable --now amnezia-tc.service amnezia-tc-watcher.service
```
Rollback должен быть проверен до первой production-выкладки.
Production-путь AWG2 Harness не включает возврат к old bash в штатный процесс выкладки.
+3 -4
View File
@@ -183,15 +183,14 @@ peer_ipv4_cidr = "10.8.1.0/24"
enabled = true
peer_limit = "70mbit"
root_rate = "1000mbit"
reconcile_interval_secs = 60
container_ready_timeout_secs = 30
reconcile_interval_secs = 15
container_ready_timeout_secs = 120
class_start_id = 10
ifb_name = "ifb0"
full_rebuild_on_drift = true
[anti_torrent]
enabled = true
max_connections_per_peer = 200
max_connections_per_peer = 100
peer_ipv4_cidr = "10.8.1.0/24"
apply_in_amnezia_netns = true