实现 Pod/VM 动态调度契约与 Pod Runner 后端 #5

Merged
panxiao81 merged 2 commits from feat/pod-runner-backend into main 2026-09-16 14:28:15 +00:00
Owner

变更

  • 将 webhook 消息规范化并分流到 ci.runner.podci.runner.vm
  • 使用 in_progress webhook 绑定 runner 实际领取的任务身份
  • 实现 Kubernetes API Pod worker、并发上限、ACK、重投与清理
  • 新增一次性 privileged host runner 镜像,不预制 Docker daemon
  • job-start hook 在第一步之前等待任务 SPIFFE 身份
  • VM runner 标签迁移到 [self-hosted, vm]

身份模型

创建环境时不根据 queued job 提前赋权。实际 runner 领取任务后,通过 runner_namerepository/job-name 身份绑定到对应 Pod,避免并发调度串身份。

验证

  • 14 passed
  • python -m compileall -q src
  • sh -n scripts/*
  • git diff --check
  • docker build -f container/runner.Dockerfile ...
  • 镜像内确认 timeout、SPIRE CLI、job-start hook 与 Gitea Runner v2.3.0
## 变更 - 将 webhook 消息规范化并分流到 `ci.runner.pod` 与 `ci.runner.vm` - 使用 `in_progress` webhook 绑定 runner 实际领取的任务身份 - 实现 Kubernetes API Pod worker、并发上限、ACK、重投与清理 - 新增一次性 privileged host runner 镜像,不预制 Docker daemon - job-start hook 在第一步之前等待任务 SPIFFE 身份 - VM runner 标签迁移到 `[self-hosted, vm]` ## 身份模型 创建环境时不根据 queued job 提前赋权。实际 runner 领取任务后,通过 `runner_name` 将 `repository/job-name` 身份绑定到对应 Pod,避免并发调度串身份。 ## 验证 - `14 passed` - `python -m compileall -q src` - `sh -n scripts/*` - `git diff --check` - `docker build -f container/runner.Dockerfile ...` - 镜像内确认 `timeout`、SPIRE CLI、job-start hook 与 Gitea Runner v2.3.0
panxiao81 added 2 commits 2026-09-16 14:26:52 +00:00
实现一次性 Pod Runner 后端
test / python (pull_request) Successful in 9s
test / shell (pull_request) Successful in 15s
4277bd907a
panxiao81 merged commit 75798f4c89 into main 2026-09-16 14:28:15 +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#5