guanghu-ice-heart/deployment/requests/README.md

35 lines
1.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 部署请求
本目录同时容纳两类严格区分的清单:
- `guanghu.architecture-provision-request/v1`:服务器上尚不存在的新架构单元首次进入现实层;
- `guanghu.existing-service-update-request/v1`:更新已经存在的 systemd 服务,必须先备份全部声明目标,重启后做回环健康检查,失败则恢复全部文件和旧单元。
不得用“首次部署”清单替代已有服务升级,也不得把升级失败降级为继续运行未验证的新文件。
固定流程:
```text
架构代码、systemd 单元、回滚与回环健康检查进入同一提交
→ 取得该提交的 40 位 SHA
→ 申请 provision-approved-architecture
→ resource = REQUEST-ID@COMMIT-SHA
→ 人类在可信当前对话签字,或通过邮件兜底核对请求与提交
→ 首装执行器读取不可变提交并验证清单
→ 备份旧单元、复制声明文件、安装单元、回环验收、写服务器私有回执
→ 任一步失败则恢复旧单元或撤掉本次新单元
→ 后续升级再登记 deploy/restart/health/rollback 动作
```
请求必须满足:
- `target_node` 是当前工单目标;
- `status``ARCHITECTURE_PACKAGE_READY · INITIAL_PROVISION_PENDING`
- `initial_provision.kind``new-architecture-unit`
- `source_paths` 只含仓库内相对普通文件;
- systemd 单元不得以 root 运行,必须包含 `NoNewPrivileges=true``ProtectSystem=strict``__RELEASE_ROOT__`
- `module.run_user` 可以是每个人格体自己的独立低权限账户,不再固定为 `guanghu`
- `module.environment_files` 只能声明 `/etc/guanghu/persona-secrets/` 下的密钥文件;
- `module.writable_paths` 只能声明 `/var/lib/guanghu/personas/<run_user>/` 下的状态目录;
- `runtime_check.url` 只能是 `127.0.0.1` 回环 HTTP 地址;
- 说明文字不参与执行。