From 71225289c97af7e3910a0a3d16d47c5018882fb5 Mon Sep 17 00:00:00 2001 From: panxiao81 Date: Wed, 16 Sep 2026 16:16:46 +0000 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=8A=A8=E6=80=81=20runner?= =?UTF-8?q?=20=E5=90=AF=E7=94=A8=E9=98=B6=E6=AE=B5=E4=B8=8E=E6=80=BB?= =?UTF-8?q?=E5=B9=B6=E5=8F=91=E5=B9=B6=E8=B0=83=E6=95=B4=E5=85=A5=E9=97=A8?= =?UTF-8?q?=20workflow?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/gitea-dynamic-runner.md | 16 +++++++++++++++- services/gitea.md | 16 +++++++++++----- services/index.md | 2 +- verification.md | 2 ++ 4 files changed, 29 insertions(+), 7 deletions(-) diff --git a/services/gitea-dynamic-runner.md b/services/gitea-dynamic-runner.md index 4388fc5..dd711da 100644 --- a/services/gitea-dynamic-runner.md +++ b/services/gitea-dynamic-runner.md @@ -17,9 +17,23 @@ microVM;每个环境只执行一个 job,结束后销毁环境及本地状态 更名由维护者提供;以下组件与接口说明依据 2026-09-16 查阅的项目 README。 维护者进一步明确:**项目正在积极开发,具体启用范围和实现进度以该项目文档为准。** -本页保留用途、设计原则和该次 README 的摘要,不另行维护部署范围或消息队列参数清单。 +本页保留用途、设计原则和该次 README 的摘要,仅补充维护者明确提供的阶段与容量,不复制维护完整部署范围或消息队列参数清单。 本轮未查询现场,不将设计接口视为已完成的上线验收。 +## 当前开发与启用阶段 + +维护者于 2026-09-16 补充:开发接近完成,动态 `pod` 已上线测试,`vm` 正在工作; +纯 `self-hosted` 的旧常驻 runner 准备退役。 + +| 执行环境 | workflow labels | 系统总并发量 | 阶段 | +|---|---|---:|---| +| Pod | `[self-hosted, pod]` | 4 | 已上线测试 | +| VM | `[self-hosted, vm]` | 1 | 正在工作,具体进度以项目文档为准 | + +并发量是对应环境在系统中的总容量,不按仓库或 workflow 分别分配一份额度。 +本页记录维护者提供的阶段与容量,不将“上线测试”写成完整正式验收; +旧常驻 runner 也尚未标记为已退役。后续变化继续以项目文档为准。 + ## workflow 如何选择执行环境 README 定义两种稳定接口,在 workflow 的 job 中选择: diff --git a/services/gitea.md b/services/gitea.md index c222d2e..42f17ed 100644 --- a/services/gitea.md +++ b/services/gitea.md @@ -41,7 +41,7 @@ name: Hello on: [push] jobs: hello: - runs-on: self-hosted + runs-on: [self-hosted, pod] steps: - name: Check execution run: echo 'homelab CI is running' @@ -52,15 +52,21 @@ jobs: 若仓库设置没有 Actions 开关,先确认自己的管理权限。 workflow 路径、启用方式与事件规则见 [Gitea 官方入门](https://docs.gitea.com/usage/actions/quickstart/)。 -`self-hosted` 来自现有 homelab-infra workflow。本页没有检查当前在线 runner: -如果任务排队,先查看 runner 是否在线以及是否匹配 labels,不能把入队当作执行成功。 +维护者于 2026-09-16 说明:动态 `pod` 已上线测试,系统总并发量为 4; +纯 `self-hosted` runner 准备退役,新 workflow 使用明确的动态环境 labels。 +本例据此采用 `[self-hosted, pod]`,本轮未实际运行示例。 +若任务排队,除 runner 在线状态和 labels 外,也要考虑系统并发容量,不能把入队当作执行成功。 ## 选择 runner | 需求 | 使用入口 | |---|---| -| 现有可信仓库的常规 CI | 已有 workflow 使用 `self-hosted`;常驻 runner 的实现见 `platform/gitea-runner/README.md` | -| 动态一次性 Pod 或 VM | [Dynamic Runner](gitea-dynamic-runner.md),接口为 `[self-hosted, pod]` / `[self-hosted, vm]`;开发进度及启用条件以项目文档为准 | +| 动态 Pod:已上线测试 | `[self-hosted, pod]`;系统总并发 4,不是每个仓库各有 4 个名额 | +| 动态 VM:正在工作 | `[self-hosted, vm]`;系统总并发 1,具体可用范围和进度以项目文档为准 | +| 旧常驻 runner:准备退役 | 纯 `self-hosted`,不再作为新 workflow 的默认示例;已有 workflow 需按需求迁移到明确的 Pod/VM 接口 | + +上述阶段与容量由维护者于 2026-09-16 提供。实现与后续变化见 +[Dynamic Runner](gitea-dynamic-runner.md) 及其项目文档。 常驻 runner 使用 privileged DinD,README 明确限定可信 workflow;不要为不可信代码开放它。 动态 runner 提供环境及获取自身 SPIFFE 身份的能力;登录下游、请求 token 和凭据清理由 workflow 负责。 diff --git a/services/index.md b/services/index.md index 17b8c6a..8a428fd 100644 --- a/services/index.md +++ b/services/index.md @@ -39,7 +39,7 @@ SPIFFE/SPIRE 已按维护者授权补读 #34;LAN DNS 与 Authelia 已按维护 | cert-manager | 签发与续期 TLS 证书 | `ClusterIssuer API` | 记录已接管 Flux | `platform/cert-manager/README.md` | 已有签发和验证说明 | | envoy-gateway | LAN HTTP 入口与认证集成 | `192.168.10.127:443` | 记录已接管 Flux | `platform/envoy-gateway/README.md` | 已有服务接入说明 | | external-secrets | OpenBao 到 Kubernetes 的秘密投射 | `Kubernetes API` | Helm 记录已接管;对象范围需区分 | `platform/external-secrets/README.md` | 补新增秘密引用的使用流程 | -| gitea-runner | 可信 Gitea Actions 任务执行 | `Gitea Actions` | 记录已接管 Flux | `platform/gitea-runner/README.md` | 补 workflow label 与使用限制 | +| gitea-runner | 旧常驻 Gitea Actions runner | 纯 `self-hosted` | 维护者说明准备退役,尚未标为已退役 | `platform/gitea-runner/README.md`、维护者说明 | 新 workflow 改用 [动态 Pod/VM](gitea-dynamic-runner.md) 的明确 labels | | k3s | 集群 CoreDNS 定制 | `集群内 DNS` | 仅发现 DNS 配置 | `platform/k3s/Corefile.desired` | 缺组件 README | | [nats](nats.md) | 集群共享消息与 JetStream 队列 | `nats.ad.ddupan.top:4222` | 已部署;维护者说明目前唯一消费者为 Dynamic Runner | 维护者 2026-09-16 说明、`platform/nats/README.md` | runner 消息队列约定以独立项目文档为准 | | [observability / Grafana](grafana.md) | Grafana、指标、日志和追踪 | `grafana.ad.ddupan.top` | 记录已接管 Flux;9 月 16 日变更入口 | `platform/observability/README.md` | 已有看板、指标与日志查询指南 | diff --git a/verification.md b/verification.md index 3adecd6..f42927c 100644 --- a/verification.md +++ b/verification.md @@ -12,6 +12,8 @@ NATS 已作为集群共享服务部署,当前唯一消费者为 Dynamic Runner,见 [NATS](services/nats.md)。 维护者明确 Dynamic Runner 正在积极开发,其启用范围、durable 名称和实现进度以 [项目文档](https://git.ddupan.top/panxiao81/gitea-dynamic-runner)为准。 +维护者补充动态 Pod 已上线测试、系统总并发 4,VM 正在工作、系统总并发 1; +纯 self-hosted runner 准备退役。使用入口见 [Gitea / Actions](services/gitea.md)。 不再将旧示例的 durable 名称差异或启用范围列为独立待核实项。 NATS 原生通过 Account 隔离租户,跨 Account 的名称不构成全局冲突; runner 的队列协调约定仅在其所属 Account 和 stream 范围内讨论。