Managed Deployment Controller
每套项目侧 Docker Compose 自带的独立控制面。它主动通过短 HTTPS 轮询连接 Server,自注册并受控诊断、修改允许配置、重启、重建、固定版本更新和回滚;v2 Release 可在同一主干选择带内容层增量/完整包兜底的 Generic Package,或受 repository allowlist 限制的 OCI digest Provider,不要求主机公网 IP、SSH 或远程终端。
职责与边界
负责
- 上报项目、节点、应用、版本和健康状态
- 领取 Server 持久化的受控部署命令并返回脱敏证据
- 只管理同一 Compose Project 内登记的 Flynor 服务
- 在新容器健康前保留旧容器,并持久化恢复中的命令和回执
- 通过独立 Docker API 代理执行最小固定动作目录
不负责
- 不提供任意主机 Shell 或 Management 远程终端
- 不访问与本部署无关的宿主文件、应用、容器、网络或卷
- 不替代 Robot、Project Intelligence、Test Runtime 或 Server
- 不在未确认时执行配置、重启、重建、升级或回滚
- 不把 Controller Token、Registry Auth 或其他 Secret 写入项目配置和日志
数据与接口
拥有的数据
- Controller 本地恢复状态
- 允许目录内的项目配置变更备份
- Server 侧受控部署状态、命令、版本和结果回执
输入
project.yaml 受控部署身份和固定镜像;deployment_controller_token Secret;Server 短轮询命令;带可选内容目录的 Generic Package 或 OCI digest v2 Release;Docker Compose 标签和容器状态
输出
managed-deployment heartbeat;受控命令结果和脱敏证据;配置补丁、容器生命周期和版本切换结果
协议
HTTPS short polling;Flynor managed-deployment legacy v1 and distributed-release v2 contracts;internal Docker Engine HTTP through socket proxy
依赖
server;management;secret-store
运行与部署
运行平台组 · pilot · active;升级路径:平台运行组 → Server / Management 维护者
embedded · limited;每套 deploy/project 标准 Compose 强制包含 Controller 与隔离 Docker API Proxy;独立维护但随项目整体交付。Controller 主动短 HTTPS 轮询 Server,只管理登记应用和受控配置,不需要主机 IP/SSH。完整 Robot/PI/Test 组合的诊断、配置修复、故障恢复、加密备份恢复,以及 Generic Package v2 回滚/升级、自交接与七容器健康替换均已通过 deployed-contract;受限 OCI Provider 完成真实 Registry push/pull 与失败保护,Generic Package 内容目录又完成缺失层下载、Range 续传、摘要失败关闭、同版本完整包兜底、零网络缓存回滚和健康再升级。
deploy/project/project.yaml control、从 digest 镜像推导或显式声明的 OCI repository allowlist、.runtime/deployment-controller.json 与共用 Registry Secret 引用
每套 deploy/project Compose 默认包含 Controller 和仅控制网络可见的 Docker Socket Proxy;业务 Compose 故障时控制面独立存活。Generic Package 的缺失层下载、Range 续传、重组/摘要校验、完整包自动兜底和 OCI digest pull 共用同一 Controller 生命周期。
Controller 状态新鲜度、Server 报到、Docker API 可用性、分发准备结果、应用健康和最近命令结果
Management 可视化节点/应用/版本/在线状态;Codex 查询受限日志、doctor、结果回执和错误边界。
业务容器先保留旧实例,再启动固定镜像并等待健康;失败恢复旧实例。Controller 自身在回执落盘后完成同 Compose 内镜像交接。