重构为直接 OpenSandbox 生命周期调度 #24

Merged
panxiao81 merged 3 commits from refactor/direct-opensandbox-scheduler into main 2026-09-18 18:19:38 +00:00
Owner

内容

  • controller 对 pod/vm queued job 直接调用 OpenSandbox Lifecycle API,不再经过 NATS JetStream
  • API key 仅从 OPENSANDBOX_API_KEY_FILE 读取,并通过 OPEN-SANDBOX-API-KEY header 发送
  • Gitea registration token 通过内网单次 nonce URL 投递,不进入 Lifecycle 请求或 BatchSandbox
  • 新增 sandbox 内 opensandbox-identity reconciler,按 allocation Pod UID 创建并清理 ClusterStaticEntry
  • SPIFFE ID 使用 repository/task 业务语义,job ID 只用于日志 label
  • 保证 runner labels 以 self-hosted 开头
  • 更新 runner 契约与清理 runbook

验证

  • pytest: 20 passed
  • compileall: passed
  • git diff --check: passed
  • 真实 OpenSandbox API key smoke:无 key 401、ESO key 200;未输出或复制 key

关联 homelab-infra #83、#94

## 内容 - controller 对 pod/vm queued job 直接调用 OpenSandbox Lifecycle API,不再经过 NATS JetStream - API key 仅从 `OPENSANDBOX_API_KEY_FILE` 读取,并通过 `OPEN-SANDBOX-API-KEY` header 发送 - Gitea registration token 通过内网单次 nonce URL 投递,不进入 Lifecycle 请求或 BatchSandbox - 新增 sandbox 内 `opensandbox-identity` reconciler,按 allocation Pod UID 创建并清理 ClusterStaticEntry - SPIFFE ID 使用 repository/task 业务语义,job ID 只用于日志 label - 保证 runner labels 以 `self-hosted` 开头 - 更新 runner 契约与清理 runbook ## 验证 - `pytest`: 20 passed - `compileall`: passed - `git diff --check`: passed - 真实 OpenSandbox API key smoke:无 key 401、ESO key 200;未输出或复制 key 关联 homelab-infra #83、#94
panxiao81 added 1 commit 2026-09-18 18:12:29 +00:00
重构为直接 OpenSandbox 生命周期调度
test / python (pull_request) Successful in 13s
test / shell (pull_request) Failing after 21s
f3a199e7ba
panxiao81 added 1 commit 2026-09-18 18:13:51 +00:00
修复 runner token 清理路径
test / python (pull_request) Successful in 15s
test / shell (pull_request) Failing after 17s
523ccbae2f
panxiao81 added 1 commit 2026-09-18 18:18:14 +00:00
修复 runner 清理脚本检查
test / shell (pull_request) Successful in 18s
test / python (pull_request) Successful in 15s
f756a83013
panxiao81 merged commit 58b48207fe into main 2026-09-18 18:19:38 +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#24