feat: add isolated read-only gray deployment

This commit is contained in:
john
2026-07-21 17:07:13 +08:00
parent 280cae028b
commit 816af97bb0
5 changed files with 259 additions and 0 deletions
+7
View File
@@ -91,6 +91,11 @@ bash scripts/release-prod.sh --package-only
# 候选包生成后,只读检查 103 灰度前置条件
bash scripts/check-gray-ready.sh --candidate-dir release-candidates/<release-id>
# 明确批准后,部署 103 loopback-only 灰度实例;不切换 live
bash scripts/deploy-gray-103.sh \
--candidate-dir release-candidates/<release-id> \
--yes
# 正式生产发布;必须在灰度通过并得到明确许可后执行
bash scripts/release-prod.sh
```
@@ -109,6 +114,8 @@ bash scripts/release-prod.sh
1. `check-gray-ready.sh` 默认只做后台候选包、103 当前健康状态、灰度端口和 image_make 版本的只读预检。
2. `--require-image-integration` 额外要求 Portal runtime-config 路由、image_make 配置 URL 和 worker 均已就绪。该条件涉及生产运行态,未经单独许可不得开启。
3. `deploy-gray-103.sh` 只在 `127.0.0.1:15174/18085` 启动独立灰度实例,不替换 live,不重启 `5174/8085`,并设置 `ADM_READ_ONLY_MODE=1` 阻断管理后台与 Plaza API 写操作。
4. 灰度页面默认只能通过 SSH 端口转发访问,不增加 105 nginx/Caddy 路由,也不产生公网入口。
`release-prod.sh` 没有“灰度即生产”的隐式行为:不带 `--package-only` 时就是正式 live 原子切换,必须等灰度验收通过后再执行。