-
Notifications
You must be signed in to change notification settings - Fork 123
Open
Description
[任务] 优化 Orion Client 部署流程与 Antares 配置代码重构
[任务分值] 30 分
[背景描述]
目前项目中 Orion 已经深度集成了 Scorpio(作为 Antares 模块),不再需要启动独立的 Scorpio daemon 进程。然而,当前的部署脚本和相关代码中仍残留着大量关于独立 Scorpio 进程的管理逻辑(如 works=[] 状态文件、强杀进程等)。
同时,Orion 客户端的部署在 Terraform (Infrastructure) 和 GitHub Actions CI (Application) 之间存在职责模糊和配置冲突(两边都在尝试管理 scorpio.toml 和 run.sh)。此外,Orion 代码中还存在冗余的配置路径解析逻辑和已废弃的文件(如 fs.rs)。
为了提升部署的稳定性和开发体验,我们需要对相关代码和部署脚本进行一次全面的清理与架构优化,实现“基础设施与应用配置”的职责分离。
[需求描述]
本项目包含对 mega 仓库代码及部署脚本的修改,核心需求如下:
-
Orion 代码精简与重构:
- 简化
orion/src/antares.rs中的配置解析逻辑:移除冗余的自动生成scorpio.toml逻辑。采用 Fail-fast 策略:优先读取SCORPIO_CONFIG环境变量 -> 回退到程序运行同级目录 -> 找不到则直接panic!。 - 删除已废弃的模块
orion/src/fs.rs(其功能已被 Antares overlay mount 替代)。
- 简化
-
收敛运行配置 (Runner Config):
- 在
orion目录下新建runner-config/目录,统一存放生产环境配置文件:.env.prod、scorpio.toml和run.sh。 - 重写
run.sh:将原来的run.sh和reset.sh合并。脚本在启动 Orion 前需自动执行环境清理(停止旧进程buck2 killall/pkill,以及卸载并清理 FUSE 挂载点fusermount -u),并移除旧版 Scorpio 相关的 config.toml 操作逻辑。 - 在
orion根目录补充本地开发所需的.env、scorpio.toml以及一键运行脚本run-dev.sh,提升本地开发体验。
- 在
-
优化 CI/CD 部署流水线:
- 更新
.github/workflows/orion-client-deploy.yml,在 Build 阶段将orion/runner-config/里的配置文件与编译出的orion二进制文件统一打包至 artifacts。 - 在 Deploy 阶段,移除 SSH 内联硬编码写入
scorpio.toml的冗余逻辑,直接使用 rsync 将整个 artifacts 目录部署到目标 VM (orion_vm部署到/root/orion-runner/,gcp_vm部署到/home/orion/orion-runner/)。
- 更新
-
梳理 Terraform 启动脚本 (Infrastructure 端协作):
- 修改
deployment/envs/gcp/prod/scripts/startup-orion-client.sh,去除 Terraform 对配置文件 (orion-config) 的强依赖,彻底将应用配置权交接给 CI。 - 增加容错逻辑:在设置
chmod +x前检查文件是否存在(以兼容 Terraform 创建 VM 后、CI 尚未部署文件的空窗期);服务首次启动失败时优雅处理 (systemctl restart orion-runner || true),等待 CI 部署后再次唤醒。
- 修改
[代码标准]
- 所有 PR 提交必须签署
Signed-off-by和 使用GPG签名,即提交代码时(使用git commit命令时)至少使用-s -S两个参数,参考 Contributing Guide; - 所有 PR 提交必须通过
GitHub Actions自动化测试,提交 PR 后请关注GitHub Actions结果; - 代码注释均需要使用英文;
[PR 提交地址] 提交到 mega 仓库的 main 分支 orion 及 .github/workflows 目录;(若涉及 deployment 仓库,也提相应的 PR 至其主分支)。
[开发指导]
- 认领任务参考 r2cn 开源实习计划 - 任务认领与确认;
[导师及邮箱] 请申请此题目的同学使用邮件联系导师,或加入到 R2CN Discord 后在 #p-meta 频道和导师交流。
- Quanyi Ma genedna@gmail.com
- Tianxing Ye yetianxing2014@gmail.com
[备注]
- 认领实习任务的同学,必须完成测试任务和注册流程,请参考: r2cn 开源实习计划 - 测试任务 和 r2cn 开源实习计划 - 学生注册与审核
Reactions are currently unavailable