Add AutoDL Pro runner controller
Controller CI / test (push) Successful in 1s

This commit is contained in:
2026-10-02 01:51:33 +08:00
commit 9bd8b7cc1e
6 changed files with 756 additions and 0 deletions
+59
View File
@@ -0,0 +1,59 @@
# AutoDL GPU Runner Controller
该仓库只管理算力,不包含 Evidence Extractor 研究代码。控制流程运行在阿里云的常驻
`ces-control:host` Gitea Runner 上,并通过 AutoDL Pro API 创建和关闭 GPU 实例。
## 边界
- 本仓库:AutoDL Pro 生命周期、模型传输、GPU Runner 注册和产物回收。
- 阿里云:常驻控制 Runner、SigLIP2 权重以及训练产物的持久存储。
- AutoDL:临时 GPU 执行节点。
- 研究仓库:训练代码、配置和 Gitea Actions workflow 的唯一来源。
## Repository Secrets
在本仓库 `Settings → Actions → Secrets` 配置:
- `AUTODL_API_TOKEN`:AutoDL 控制台的开发者 Token。
- `TRAINING_RUNNER_REGISTRATION_TOKEN`:研究仓库 `Create new Runner` 页面显示的
Registration Token。
Secret 只注入阿里云控制任务,不落盘、不打印。AutoDL SSH 私钥保存在阿里云
`/root/.config/ces-controller/autodl_ed25519`,不进入 Gitea。
## 首次启动
阿里云需要先作为本仓库的常驻 Runner 注册一次,且只使用标签:
```text
ces-control:host
```
该 bootstrap 使用的是“本控制器仓库”的 Runner Registration Token,不是 Secret 中用于
AutoDL GPU Runner 的 `TRAINING_RUNNER_REGISTRATION_TOKEN`。
Runner online 后,第一次 push 只执行 `Controller CI`,不会创建实例或产生 AutoDL 费用。
## 管理 workflow
从 Actions 手动运行 `Manage AutoDL GPU runner`:
- `discover`:列出可供 API 使用的私有镜像,不产生 GPU 费用;
- `provision`:创建 PRO6000、传输模型并注册 GPU Runner;必须填写镜像 UUID,并把确认值
填为 `CREATE`;
- `status`:查询实例和 Runner 进程状态;
- `shutdown`:回收训练产物并关闭实例,不释放系统盘。
`provision` 在创建实例前会检查 SigLIP2 的两个权重分片是否完整、AutoDL SSH 私钥权限是否为
`0600`,并预下载及校验 `gitea-runner`。任何配置失败都会尝试关闭刚创建的实例,避免继续计费。
控制器固定使用官方 `gitea-runner 3.5.0` Linux AMD64 二进制及其 SHA-256,下载和校验均在
创建付费实例之前完成。
AutoDL GPU Runner 注册为 host runner,并提供:
```text
ubuntu-latest:host
ces-ci:host
gpu:host
```