feat: add AgentRun L1 manager lifecycle

This commit is contained in:
pikastech
2026-07-20 07:55:55 +02:00
parent 88d25dd7db
commit 65d6ccdf1d
8 changed files with 497 additions and 2 deletions
+38
View File
@@ -76,6 +76,44 @@ bun scripts/cli.ts agentrun control-plane plan --node NC01 --lane nc01-release
不得把临时 NodePort、host port、pod IP、provider-gateway 业务 HTTP proxy 或一次性 port-forward 固化为 AgentRun 部署路径。任何公网入口、UniDesk/HWLAB 集成入口或跨服务访问路径,都必须先通过 AgentRun 仓库内经过审查的变更引入;UniDesk 只在后续记录对应运维入口。
## L1 Native Manager
AgentRun L1 manager 用于不依赖 CI/CD、GitOps rollout 或集群 manager
Deployment 的 native 联调。生命周期统一走:
```bash
bun scripts/cli.ts agentrun native-development manager start
bun scripts/cli.ts agentrun native-development manager status
bun scripts/cli.ts agentrun native-development manager logs
bun scripts/cli.ts agentrun native-development manager restart
```
- 唯一配置来源是 `config/agentrun.yaml#nativeDevelopment.manager`
- CLI 负责解析固定 workspace、port、state directory、store、Kafka、
runner、Kubernetes transport 和 SecretRef
- host-native manager 使用 YAML 声明的 `kubeconfig`
`kubectlCommand` 装配既有 explicit-kubectl transport
- 集群 manager 未设置 `kubectlCommand` 时继续使用既有
in-cluster HTTPS transport
- L1 使用独立 store 和 runner Job 前缀,不能与 development 或
release manager 共用 queue、lease 或 reconciler 写侧;
- Workbench L1 直接连接 AgentRun L1 managerAgentRun 固定 HTTPS
公共入口未就绪时单独登记公共服务面问题,不能改写内部连接关系;
- Workbench smoke 只通过产品 `--over-api` 入口提交;用户可见事件只由
`hwlab.event.v1` 的 Kafka retention replay 和 live SSE 提供;
- 禁止通过 REST result 合成、数据库快照或第二条 SSE 路径补终态。
故障定位先按阶段判定,避免重复进入大回环:
- `runner-dispatch-*`manager 的配置装配、Kubernetes 观察或 Job 创建;
- `runner-startup-*`Job 创建后的 runner 启动、claim 和 backend 连接;
- Pod 已进入 `Running` 但 runner 未 claim:仍处于 provider 调用之前;
- `schema-invalid``auth-missing``auth-failed`
`tenant-policy-denied``secret-unavailable`:确定性故障,首次失败即终态;
- DNS、连接超时、临时 `5xx` 和 Kubernetes observation:按 owning YAML
的有限重试策略退让,耗尽后发布语义化 `infra-failed`
- provider 尚未启动时禁止把耗时或失败归因到 provider。
## 受控 CI/CD 入口
AgentRun 目标必须从 `config/agentrun.yaml` 解析,不得从 service repo 的 `deploy.json` 或 URL 片段推断。Delivery authority 还必须与 `config/platform-infra/gitea.yaml``config/platform-infra/pipelines-as-code.yaml` 的 consumer/repository 组合校验。当前默认 `NC01/nc01-v02` 是 PaC migrated consumer;目标 source branch 的 GitHub PR merge 是唯一正式交付触发。`nc01-release` 的独立 PaC consumer 属于 #2154 后续阶段,R1 仅完成 namespace 与 lane 声明。