Продакшн рефактор без легаси
This commit is contained in:
@@ -123,9 +123,10 @@ project/
|
||||
- целевая установка должна брать его с official upstream на момент развёртывания
|
||||
|
||||
Дополнительно:
|
||||
- `HY2XS_HYSTERIA_VERSION=latest|vX.Y.Z` задаётся через runtime env;
|
||||
- при `latest` оркестратор записывает **фактически установленную** версию в `post-install.env`;
|
||||
- install flow использует download-to-temp + explicit execute + post-install verification binary/version.
|
||||
- версия Hysteria2 фиксируется в metadata install package (`metadata/hysteria.version`);
|
||||
- URL артефакта и SHA256 фиксируются в metadata install package (`metadata/hysteria.url`, `metadata/hysteria.sha256`);
|
||||
- runtime `reconfigure` не обновляет и не откатывает бинарник Hysteria2;
|
||||
- install flow валидирует SHA256 и фактическую версию установленного бинарника.
|
||||
|
||||
## Инварианты
|
||||
|
||||
|
||||
@@ -22,8 +22,9 @@ Hysteria2 — основной транспортный компонент се
|
||||
|
||||
- по умолчанию install layer тянет **свежий upstream release / install source**
|
||||
- фактически установленная версия обязательно записывается в `post-install.env`
|
||||
- поддерживаются политики `latest | vX.Y.Z` через `HY2XS_HYSTERIA_VERSION`
|
||||
- при `vX.Y.Z` install обязан валидировать соответствие фактически установленной версии
|
||||
- бинарник Hysteria2 устанавливается только на этапе `install`
|
||||
- версия, URL и SHA256 фиксируются в metadata install package
|
||||
- `reconfigure` не обновляет и не откатывает бинарник Hysteria2
|
||||
|
||||
## Платформа
|
||||
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
2. Проверяет базовые зависимости и install context.
|
||||
3. Создаёт каталоги установки.
|
||||
4. Разворачивает bundled HY2XS admin.
|
||||
5. Скачивает installer Hysteria2 в temp-файл и выполняет install с policy `latest|vX.Y.Z`.
|
||||
5. Скачивает pinned Hysteria2 binary из package metadata, проверяет SHA256 и выполняет install.
|
||||
6. Генерирует Hysteria config.
|
||||
7. Создаёт systemd unit для Hysteria.
|
||||
8. Создаёт systemd unit для HY2XS admin.
|
||||
@@ -123,6 +123,8 @@
|
||||
- TLS modes: `acme | file | self_signed_dev`;
|
||||
- `trafficStats.secret` отдельный от `JWT_SECRET`;
|
||||
- install flow фиксирует фактически установленную версию Hysteria в snapshot;
|
||||
- версия/URL/SHA256 Hysteria берутся из metadata install package;
|
||||
- `reconfigure` не обновляет бинарник Hysteria, только runtime-слой.
|
||||
- при `reconfigure --apply`: backup -> staged apply -> smoke -> rollback on fail.
|
||||
|
||||
## Что не реализовывать
|
||||
|
||||
@@ -20,7 +20,10 @@
|
||||
- какую фактическую версию оркестратор установил
|
||||
- что записано в `HY2_VERSION`
|
||||
- не связано ли поведение со свежим upstream release
|
||||
- какая policy была в `HY2XS_HYSTERIA_VERSION` (`latest|vX.Y.Z`)
|
||||
- какая версия Hysteria зафиксирована в metadata установленного пакета
|
||||
|
||||
Для обновления бинарника Hysteria2 используйте новый release install package.
|
||||
Изменение runtime env не обновляет бинарник Hysteria2.
|
||||
|
||||
### 4. Оркестратор — Bun/TypeScript, но target не билдит его
|
||||
Если проблема в install flow, сначала смотреть:
|
||||
|
||||
Reference in New Issue
Block a user