feat(chv-guest): Gitea 同步变量经 seed 进 guest-env(执行器集成)
- 新增 cloud/chv/gitea_sync.py:6 键白名单,三源合并 (宿主 CHV_GITEA_* < 任务 gitea_sync < extra_env), 必填 4 键缺失即 fail-closed,空即不同步 - ssh_transport:GITEA_TOKEN 进密钥集(argv 拒绝),其余 5 键进 guest-env 集(split_guest_env) - hostkeys.write_seed:guest_env 与 secret_env 合并写同一 条目,仍无 runcmd、0600 - config:_gitea_fragment 产 gitea_sync_env(函数内 import, 叶子模块顶层只许标准库) - executor.wake_vm:起 VMM 前合并+校验(gitea_sync_incomplete), guest-env 随 seed 投递;provision_host_key 透传 guest_env - worker:_run_attempt 仅对 CHV 执行器把同步变量并进 gateway_env - 测试:cloud/tests/test_chv_gitea_sync.py 20 项 - 边界:tasks 表无 JSON 列,DB 往返丢任务 gitea_sync; 生产主来源是宿主 CHV_GITEA_* 环境变量
This commit is contained in:
1 parent
67ca0b86cd
commit
e7f699c62b
7 files changed
+785
-37
No files matched your search
@@ -245,6 +245,20 @@ def _timeout_fragment(params: dict, env: dict) -> dict:
|
||||
}
|
||||
|
||||
|
||||
def _gitea_fragment(env: dict) -> dict:
|
||||
"""Gitea 同步片段:宿主配置环境变量 CHV_GITEA_*(见
|
||||
gitea_sync.CHV_GITEA_ENV_MAP)映射成的 guest-env 键值
|
||||
dict。无配置即空 dict(本次启动不同步);值本身不校验
|
||||
完整性——完整性由 wake_vm 在起 VMM 前 fail-closed
|
||||
(validate_gitea_sync_env),构造时不拦,免得一个配
|
||||
错的宿主连执行器对象都建不出来、排障信息全丢。
|
||||
import 在函数内:本模块是叶子模块,顶层只许 import
|
||||
标准库(见 test_leaf_modules_only_import_stdlib),
|
||||
与执行器的方法内 import 同款惯例。"""
|
||||
from cloud.chv.gitea_sync import config_gitea_sync_env
|
||||
return {"gitea_sync_env": config_gitea_sync_env(env)}
|
||||
|
||||
|
||||
def _assemble_chv_config(fragments: list) -> "ChvConfig":
|
||||
"""把各片段 dict 合并成 ChvConfig(纯合并,不改值)。
|
||||
|
||||
@@ -277,4 +291,5 @@ def build_chv_config(params: dict, env: dict) -> "ChvConfig":
|
||||
_disk_fragment(env),
|
||||
_network_fragment(params, env),
|
||||
_timeout_fragment(params, env),
|
||||
_gitea_fragment(env),
|
||||
])
|
||||
Reference in new issue
Block a user