重构事件驱动 Runner 并接入 OpenSandbox VM #30

Merged
panxiao81 merged 24 commits from refactor/go-task-scheduler into main 2026-09-21 06:11:41 +00:00
Owner

变更

  • 使用 Go 单进程组合 scheduler、Pod worker 与 VM worker
  • 使用 JetStream 持久化 assignment handoff,并保持 Pod/VM consumer 隔离
  • 通过 SPIFFE mTLS facade 精确绑定 Gitea task 与官方 runner
  • Pod 直接运行于 homelab,VM 通过 OpenSandbox ci-vm Pool
  • 将终态持久化到 backend metadata,支持 Pod 与 VM 自动清理和重启恢复
  • 代理 checkout 所需的 Gitea Git Smart HTTP

验证

  • go test ./...
  • go vet ./...
  • 真实 ayatori Pod workflow:test/lint 全部成功
  • OpenSandbox 内网 API:无 key 401、ESO key 200

上线计划

保持单副本和单并发,先部署新 controller 镜像,再启用 vm-worker 触发最小 [self-hosted, vm] workflow,验证 sandbox、Pod UID、SPIFFE entry、runner 执行和完整清理。

## 变更 - 使用 Go 单进程组合 scheduler、Pod worker 与 VM worker - 使用 JetStream 持久化 assignment handoff,并保持 Pod/VM consumer 隔离 - 通过 SPIFFE mTLS facade 精确绑定 Gitea task 与官方 runner - Pod 直接运行于 homelab,VM 通过 OpenSandbox `ci-vm` Pool - 将终态持久化到 backend metadata,支持 Pod 与 VM 自动清理和重启恢复 - 代理 checkout 所需的 Gitea Git Smart HTTP ## 验证 - `go test ./...` - `go vet ./...` - 真实 ayatori Pod workflow:test/lint 全部成功 - OpenSandbox 内网 API:无 key 401、ESO key 200 ## 上线计划 保持单副本和单并发,先部署新 controller 镜像,再启用 `vm-worker` 触发最小 `[self-hosted, vm]` workflow,验证 sandbox、Pod UID、SPIFFE entry、runner 执行和完整清理。
panxiao81 added 24 commits 2026-09-21 06:02:14 +00:00
panxiao81 merged commit 327c73e744 into main 2026-09-21 06:11:41 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: panxiao81/gitea-dynamic-runner#30