feat: 自动清理终态 Pod 执行器

This commit is contained in:
2026-09-21 05:24:38 +00:00
parent 2036584e80
commit be697a61cf
10 changed files with 155 additions and 9 deletions
+6 -1
View File
@@ -65,11 +65,16 @@ credential 都从挂载文件读取,不接受明文环境变量:
- `RUNNER_FACADE_CAPABILITY_KEY_FILE`:至少 32 字节的 controller HMAC key。
- `OPENSANDBOX_API_KEY_FILE`:仅启用 `vm-worker` 时读取。
必要的非 secret 配置包括 `POD_EXECUTOR_IMAGE`(应使用 digest)、
必要的非 secret 配置包括 `POD_EXECUTOR_IMAGE`(应使用 digest)、`SPIRE_AGENT_ID`、
`RUNNER_FACADE_URL`、`RUNNER_FACADE_SPIFFE_ID` 和 `SPIFFE_ENDPOINT_SOCKET`。默认
`COMPONENTS=all`、Pod 并发 4、VM 并发 1;首次 smoke test 应显式设为
`COMPONENTS=scheduler,pod-worker`,先验证 Pod 链路,避免同时消耗 VM 容量。
Pod task 的 terminal update 被 Gitea 接受后,controller 会在 Pod 上持久写入
`ci.ddupan.top/terminal=true` label。生命周期 reconciler 只清理同时带该 label 且已经
进入 `Succeeded` 或 `Failed` phase 的 Pod 及其同名 `ClusterStaticEntry`;controller
重启不影响清理恢复,上报终态前失败的 Pod 也不会被误删。
## 安全边界
- OpenSandbox API key、webhook secret 和 Gitea registration token 只从文件读取。