feat(chv-guest): seed 附加项供客机用户与静态网络(wake 路径前置)
wake_vm 在 WSL 台架上跑通需要客机身份与网络:镜像本身不建 用户、tap 无 DHCP,缺 users 块的 VM 登不进去、缺 network-config 的 VM 拿不到静态 IP。最小补法(复用 write_seed 机制): - hostkeys.write_seed 新增 user_data_extra(原样追加进 user-data,供 users: 块)与 network_config(写 seed network-config 文件,0600);附加项含 runcmd: 即 ValueError - config _seed_fragment:CHV_SEED_USER_DATA_EXTRA_FILE / CHV_SEED_NETWORK_CONFIG_FILE(只存路径) - executor._seed_extras 在 wake 起 VMM 前读入,缺失即 ChvFailure seed_extra_missing;provision_host_key 透传 - README §7 残留更新:guest-env 集成已做 - 测试:test_chv_gitea_sync 新增 5 项(写盘/禁 runcmd/ 配置映射/wake 带附加项/缺失 fail-closed)
This commit is contained in:
1 parent
e7f699c62b
commit
d7cc482ed5
5 files changed
+184
-11
No files matched your search
+13
-3
@@ -143,6 +143,16 @@ rebase、不静默丢提交。
|
||||
- 验收(用户视角):VM 启动后仓在 `~/workspace` 且是最新
|
||||
HEAD;VM 内改文件 commit push 后 Gitea 网页可见该提交;
|
||||
Gitea 上改一次后 VM 内 pull 能同步回来。双向都通才算集成通。
|
||||
- 残留:执行器生成 seed 时自动写 guest-env 的集成未做(本轨
|
||||
验收用手工 seed 测通链路);专用 token 与测试仓名须用户给,
|
||||
本轨不自编 token、不动生产 Gitea 配置。
|
||||
- 集成(2026-11-07,第二轮第一棒):执行器生成 seed 时自动写
|
||||
guest-env 已做(`cloud/chv/gitea_sync.py` + `wake_vm`):
|
||||
GITEA_TOKEN 进密钥集(只进 seed,绝不进 argv),其余 5 键
|
||||
也随 seed 进 guest-env;来源是宿主 `CHV_GITEA_*` 环境变量
|
||||
或任务 `gitea_sync` dict;必填 4 键缺失时起 VMM 前
|
||||
fail-closed(`gitea_sync_incomplete`),无同步变量时静默
|
||||
不同步。客机用户与静态网络由 seed 附加项供给:
|
||||
`CHV_SEED_USER_DATA_EXTRA_FILE`(含 `users:` 块的文件)与
|
||||
`CHV_SEED_NETWORK_CONFIG_FILE`(NoCloud network-config),
|
||||
路径配了但文件读不出时 wake 前 fail-closed
|
||||
(`seed_extra_missing`);附加 user-data 里禁 `runcmd:`。
|
||||
专用 token 与测试仓名须用户给,本轨不自编 token、不动
|
||||
生产 Gitea 配置。
|
||||
Reference in new issue
Block a user