fix(fix4): enforce runtime contract and orchestrator guardrails
This commit is contained in:
@@ -63,6 +63,8 @@
|
||||
- `SSH_PORT`
|
||||
- `HY2XS_FIREWALL_ENABLED`
|
||||
- `HY2XS_FIREWALL_STAGED_APPLY`
|
||||
- `HY2XS_ADMIN_USER`
|
||||
- `HY2XS_FORCE_PASSWORD_CHANGE`
|
||||
|
||||
### Hysteria
|
||||
- `HY2_SOURCE=official-upstream`
|
||||
@@ -101,6 +103,11 @@
|
||||
3. оператор запускает `reconfigure --dry-run`, затем `reconfigure --apply`;
|
||||
4. оркестратор обновляет runtime и перезаписывает snapshot.
|
||||
|
||||
Важно:
|
||||
- `HY2XS_ADMIN_INITIAL_PASSWORD` используется только для первичного bootstrap seed;
|
||||
- `HY2XS_ADMIN_CON_PASS` — отдельная runtime-сущность для Hysteria auth/smoke;
|
||||
- после первичного seed перезапуски `hy2xs-admin` не должны переопределять пароль admin и `con_pass`.
|
||||
|
||||
## Что нельзя делать
|
||||
|
||||
- сваливать туда временный мусор
|
||||
|
||||
@@ -49,7 +49,10 @@
|
||||
14. TLS mode в `config.yaml` соответствует runtime env (`acme|file|self_signed_dev`)
|
||||
15. при `HY2XS_TLS_MODE=acme` в `config.yaml` выставлен `acme.type` из `HY2XS_ACME_TYPE`
|
||||
16. subscribe/node URL в API/QR формируются по `HY2XS_PUBLIC_HOST` + `HY2XS_PUBLIC_PORT`
|
||||
15. `nft -c -f /etc/nftables.conf` проходит после apply
|
||||
17. `nft -c -f /etc/nftables.conf` проходит после apply
|
||||
18. пароль admin и `con_pass` не перезаписываются при рестарте `hy2xs-admin`
|
||||
19. остановка/рестарт UI не останавливает `hysteria-server`
|
||||
20. traffic accounting/kick ориентируются на systemd status, а не на SQLite `HYSTERIA2_ENABLE`
|
||||
|
||||
## D. Negative tests
|
||||
|
||||
@@ -79,3 +82,4 @@
|
||||
9. отсутствует production path для port hopping
|
||||
10. UI не запускается от root
|
||||
11. клиентские endpoint не зависят от request `Host`/`hostname`
|
||||
12. production build verify падает, если `config/hy2xs.env` содержит placeholder-значения
|
||||
|
||||
Reference in New Issue
Block a user