docs(chv): L4/M6 取舍定案 + 部署核对清单
- L4:保持警告不改硬拒(CHV_NET 是手动直接启动命令透传值, 与 API 的 CHV_NET_JSON 是两条路径;硬拒会断手动运维, 误配代价只是 API 模式忽略 CHV_NET);写清兼容影响与 将来改硬拒的前置条件;部署核对只设 CHV_NET_JSON - M6:确认声明 + 审计就是本项机制,不假装已校验;部署核对 加人工项(部署记录写明已核对租户数 = 1 与项目名一致, 并复核 disk_reuse_experiment_allowed 审计) - §11.4 加环境变量核对与残留尾巴审计抽查项 (net_registry_write_failed / dirty_marker_write_failed / vm_net_registry_delete_failed 任一出现即先修宿主再启用)
This commit is contained in:
1 parent
2ad29eeb1f
commit
f448ecb74b
1 file changed
+43
-9
@@ -342,11 +342,20 @@
|
|||||||
- M4 供应链版本钉死:已钉死——云镜像 SHA256 必填(干跑验
|
- M4 供应链版本钉死:已钉死——云镜像 SHA256 必填(干跑验
|
||||||
“已设”、全量验哈希)、Ubuntu 版本与 codex 版本均为必填
|
“已设”、全量验哈希)、Ubuntu 版本与 codex 版本均为必填
|
||||||
环境变量;BUILDINFO 新增 versions(构建时从客机读回的
|
环境变量;BUILDINFO 新增 versions(构建时从客机读回的
|
||||||
dpkg + pip freeze 实际版本,可审计、可复现比对)。未钉死
|
dpkg + pip freeze 实际版本,可审计、可复现比对)。
|
||||||
的清单:apt/pip 事前精确版本 lockfile(须在构建宿主上
|
generate_lockfile.py 已改写(to10 轨,本轮干跑复核):
|
||||||
生成一次、再固化进脚本,本轨无构建宿主、未编造版本号);
|
只读 BUILDINFO.versions 生成 lockfile,不再查构建宿主
|
||||||
Playwright Chromium 二进制版本同样只随 playwright pip
|
的 dpkg/pip,codex 三件套与 /app/host.py、gt、chv-sync
|
||||||
版本记录,未单独钉死。
|
走 BUILDINFO 声明字段;check_lockfile.py 已补强(条目
|
||||||
|
格式、contents 全覆盖、冻结清单双向比对)。
|
||||||
|
Chromium 已可单独钉死(本轮):CHROMIUM_HEADLESS_SHELL_REV
|
||||||
|
设为纯数字修订号时 buildinfo.py 校验读回的缓存目录名
|
||||||
|
须恰好是该修订号,否则构建失败,generate/check 的
|
||||||
|
--verify 也复核;未设时只记录、不强制,构建输出明说
|
||||||
|
“未钉死”。/app 已收紧为最小集(本轮):build.sh 只拷
|
||||||
|
host.py(只用标准库,不依赖 cloud/),不再把整个 cloud/
|
||||||
|
拷进客机。仍待真机:真实 lockfile 产出须等 V-9 真机
|
||||||
|
构建(本机无 /dev/kvm,版本号绝不编造)。
|
||||||
- M5 审计补齐:host_key_generated/host_key_captured/
|
- M5 审计补齐:host_key_generated/host_key_captured/
|
||||||
host_key_mismatch(stderr 含钉死拒绝标记时立即 fail-fast,
|
host_key_mismatch(stderr 含钉死拒绝标记时立即 fail-fast,
|
||||||
不轮询成普通超时)、preflight_failed、wake 前置失败
|
不轮询成普通超时)、preflight_failed、wake 前置失败
|
||||||
@@ -357,7 +366,12 @@
|
|||||||
实验放行须同时声明 CHV_SINGLE_TENANT_PROJECT,否则
|
实验放行须同时声明 CHV_SINGLE_TENANT_PROJECT,否则
|
||||||
preflight 拒绝(reuse_tenant_undeclared);不能校验的
|
preflight 拒绝(reuse_tenant_undeclared);不能校验的
|
||||||
部分明写:代码无法验证数据库里是否真的只有一个租户,
|
部分明写:代码无法验证数据库里是否真的只有一个租户,
|
||||||
声明 + 审计就是本项的机制,不假装已校验。
|
声明 + 审计就是本项的机制,不假装已校验。部署核对
|
||||||
|
(人工,见 §11.4):启用 reuse 前,部署人须在部署记录
|
||||||
|
里写明“已核对数据库租户数 = 1、项目名与
|
||||||
|
CHV_SINGLE_TENANT_PROJECT 一致”,并复核放行审计事件
|
||||||
|
disk_reuse_experiment_allowed;多租户部署上误设该标志
|
||||||
|
仍可能发生,代码拦不住,只能靠这道人工核对 + 审计告警。
|
||||||
- M7 容量计数残留 socket 误伤:只有真能连通的 socket 才
|
- M7 容量计数残留 socket 误伤:只有真能连通的 socket 才
|
||||||
计数,空文件/死 socket 不计入 CHV_MAX_VMS;竞态窗口
|
计数,空文件/死 socket 不计入 CHV_MAX_VMS;竞态窗口
|
||||||
写清(刚启动未 listen 的 VMM 会被判死,容量门是护栏
|
写清(刚启动未 listen 的 VMM 会被判死,容量门是护栏
|
||||||
@@ -380,9 +394,18 @@
|
|||||||
- L3 失败审计:preflight/容量/配额/net 冲突失败均发
|
- L3 失败审计:preflight/容量/配额/net 冲突失败均发
|
||||||
vm_failed 审计(见 M5)。
|
vm_failed 审计(见 M5)。
|
||||||
- L4 CHV_NET 与 CHV_NET_JSON 双变量:双设时发
|
- L4 CHV_NET 与 CHV_NET_JSON 双变量:双设时发
|
||||||
net_config_dual 警告审计(不硬拒,CHV_NET 是手动直接
|
net_config_dual 警告审计(不硬拒,取舍已定,见下);
|
||||||
启动命令的透传值);NET_JSON 条目字段白名单
|
NET_JSON 条目字段白名单(tap/mac/ip/mask),未知字段
|
||||||
(tap/mac/ip/mask),未知字段直接拒绝。
|
直接拒绝。取舍定案(feat-chv-closeup 复核):保持警告、
|
||||||
|
不改硬拒。理由:CHV_NET 是手动直接启动命令的透传值,
|
||||||
|
与 API 模式的 CHV_NET_JSON 是两条不同的使用路径,双设
|
||||||
|
不一定是误配;硬拒会断掉手动运维路径,而误配的代价
|
||||||
|
只是“API 模式忽略 CHV_NET”,已有警告审计 + 本条文档
|
||||||
|
写清。兼容影响评估:现存手动运维用法不受影响;若将来
|
||||||
|
改硬拒,须先全量核查现存部署的 env 是否双设,并给手动
|
||||||
|
路径留显式放行开关,不可直接改。部署核对(见 §11.4):
|
||||||
|
生产 API 部署只设 CHV_NET_JSON,不设 CHV_NET;双设时
|
||||||
|
net_config_dual 审计须在部署记录里复核。
|
||||||
- L5 WarmPool 预热盘与任务盘对应关系:定义已写进
|
- L5 WarmPool 预热盘与任务盘对应关系:定义已写进
|
||||||
pool.acquire 文档——预热盘是干净快照盘,不是任务盘;
|
pool.acquire 文档——预热盘是干净快照盘,不是任务盘;
|
||||||
本轨定案为实验性(ADR-5),不再作为接线待办。
|
本轨定案为实验性(ADR-5),不再作为接线待办。
|
||||||
@@ -402,6 +425,17 @@
|
|||||||
收紧 /proc 可见性、进程表采集不记录完整 cmdline;
|
收紧 /proc 可见性、进程表采集不记录完整 cmdline;
|
||||||
- 部署后核对:state_dir 权限、socket 实际权限、
|
- 部署后核对:state_dir 权限、socket 实际权限、
|
||||||
tap 规则实测(见 §11.5 否定测试)。
|
tap 规则实测(见 §11.5 否定测试)。
|
||||||
|
- 环境变量核对(L4/M6,人工):生产 API 部署只设
|
||||||
|
CHV_NET_JSON,不设 CHV_NET;双设时 net_config_dual
|
||||||
|
审计须在部署记录里复核;启用 reuse 前部署人须在部署
|
||||||
|
记录里写明“已核对数据库租户数 = 1、项目名与
|
||||||
|
CHV_SINGLE_TENANT_PROJECT 一致”,并复核放行审计事件
|
||||||
|
disk_reuse_experiment_allowed。
|
||||||
|
- 残留尾巴审计核对(P2-17/18/19/20,feat-chv-closeup
|
||||||
|
已修):部署后抽查审计里有无 net_registry_write_failed、
|
||||||
|
dirty_marker_write_failed、vm_net_registry_delete_failed
|
||||||
|
事件——任一出现即说明 state_dir 写路径或登记路径有
|
||||||
|
故障,须先修宿主再启用。
|
||||||
|
|
||||||
### 11.5 仍需真机验证的清单(本轨一律未做,不声称已验)
|
### 11.5 仍需真机验证的清单(本轨一律未做,不声称已验)
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user