M1 自拆解简报 · 主仓 hashmatrix(deploy + contracts + libs + 协调)
粗粒度里程碑简报。目的:只读本简报 + 本仓代码即可自行拆出可执行子任务并自验收,无需再问人。
上位总纲:docs/milestones/M1-单命名空间端到端贯通.md(端口基线 §3、决策 D1–D6、推进顺序 §5)。
0. 一句话目标
让"一条 helm install 把平台装进单个 namespace 起 Pod"成为现实,并把契约/部署/身份的全局规则补齐到不阻塞各子仓。
1. 起点 · 代码现状
- deploy/charts/:
tenant(真实,7 模板:ns/quota/limit/netpol/tenant-context/services/externalsecret)、privacy(真实,engine-py+orchestrator-java 两 Deployment)、platform(umbrella,file://../<svc> 依赖 + baseNamespaces 建 4 个 ns);其余 7 个子 chart 仅 templates/NOTES.txt 占位,image.repository=""。
- deploy/values/:
values.yaml(共享) + values-{prod,test,xc}.yaml + values-tenant-<id>.yaml;三层叠加。校验脚本 deploy/scripts/{validate,secrets-guard,tenant-diff}.sh;CI .github/workflows/deploy-ci.yml。
- contracts/:OpenAPI3.1 + AsyncAPI + proto(buf) + ICD;
registry.yaml(8 契约 draft)、.spectral.yaml、contracts-ci.yml(Spectral+buf 已跑,oasdiff 破坏性门是 TODO @ contracts-ci.yml:60);传播模板 contracts/integration.md。⚠️ contracts/icd/tenant-context-headers-icd.md §3.4 现写死「多 org→403」,与 D1/D2 冲突。
- libs-java/:
starter-tenant(TenantContext{tenantId,org} + TenantContextFilter 解析 X-Tenant-Id)、starter-security(GatewayPreAuthFilter 信任网关 X-User/X-Roles + @PreAuthorize)。已发 0.2.0。
2. 范围边界
- ✅ M1:黄金 Deployment 模板范式;单 ns demo values;contracts 三处治理(ICD 修订 + oasdiff + error-envelope);D1/D2 落档;webui 纳入/排除 Helm 标准的决断。
- ⛔ 不做:Argo CD 自动化、CDC/Pact 契约测试、xc 信创全量镜像接线、多 ns 生产拓扑。
3. 工作项 & 拆分指引
WP1 黄金 Deployment 模板范式(解 7 个占位子 chart 的阻塞)
- 要达成:给
deploy/charts/control-plane(或 governance)写真实 Deployment+Service+readiness/liveness probe,作为其余子 chart 可复制的范式。
- 入手点:照抄
deploy/charts/privacy/templates/orchestrator-java.yaml 与 deploy/charts/tenant/templates/services.yaml 的写法;helpers 仿 deploy/charts/tenant/templates/_helpers.tpl。
- 可拆:- [ ] 写 1 个范式子 chart - [ ] 抽公共
_helpers.tpl/labels - [ ] 其余 6 个按范式补(可作独立子任务/分人)。
- 验收:
helm template deploy/charts/control-plane 出完整工作负载;deploy/scripts/validate.sh test 通过。
WP2 单 ns demo values(一条命令起 Pod)
- 要达成:
deploy/values/values-localdev.yaml:baseNamespaces.create=false、ESO/NetPol 关、本地 image tag、≥1 服务 enabled=true。
- 参考:现有
values-test.yaml;tools/local-infra 起 kind + kind load docker-image。
- 验收:
helm install platform deploy/charts/platform -n demo -f values-localdev.yaml 后 kubectl get po -n demo 有 Running。
WP3 deploy/README 落 D5 + webui 归属
- 要达成:写明「子仓交付 Dockerfile/image、主仓 owns charts」;决断 webui 是否进 umbrella(建
charts/webui 或文档化排除)。
WP4 contracts 治理三件
- ICD:改
tenant-context-headers-icd.md §3.4(多 org→403 ⇒ 解析到单活动租户、头/模型预留多 membership,切换经重新换 token)。
- oasdiff:落地
contracts-ci.yml:60 的破坏性门。
- error-envelope:新建
contracts/icd/error-envelope-icd.md 抽 {code,message,traceId},三个 OpenAPI $ref 之。
WP5 决策落档
- 把 D1/D2 写入
docs/architecture/05-多租户与控制平面.md 与 prototype/docs/01-管理中心/02-工作空间与租户开通(自研).md。
4. 关键参考
- 部署标准:
deploy/README.md、docs/architecture/04-工程与部署.md;范式:deploy/charts/{privacy,tenant}/templates/*。
- 契约:
contracts/README.md、contracts/CONVENTIONS.md、contracts/integration.md、contracts/icd/tenant-context-headers-icd.md。
- 身份:
docs/architecture/05-多租户与控制平面.md;libs libs-java/starter-tenant、starter-security。
5. 依赖 & 约束
- 被所有子仓依赖(charts + 契约 + libs);WP1/WP2 是 ③单 ns demo 的前置。
- 受 D5(charts 归属)、D1/D2(ICD 修订)约束。
6. 完成判据
M1 自拆解简报 · 主仓 hashmatrix(deploy + contracts + libs + 协调)
0. 一句话目标
让"一条
helm install把平台装进单个 namespace 起 Pod"成为现实,并把契约/部署/身份的全局规则补齐到不阻塞各子仓。1. 起点 · 代码现状
tenant(真实,7 模板:ns/quota/limit/netpol/tenant-context/services/externalsecret)、privacy(真实,engine-py+orchestrator-java 两 Deployment)、platform(umbrella,file://../<svc>依赖 + baseNamespaces 建 4 个 ns);其余 7 个子 chart 仅templates/NOTES.txt占位,image.repository=""。values.yaml(共享) +values-{prod,test,xc}.yaml+values-tenant-<id>.yaml;三层叠加。校验脚本deploy/scripts/{validate,secrets-guard,tenant-diff}.sh;CI.github/workflows/deploy-ci.yml。registry.yaml(8 契约 draft)、.spectral.yaml、contracts-ci.yml(Spectral+buf 已跑,oasdiff 破坏性门是 TODO @contracts-ci.yml:60);传播模板contracts/integration.md。contracts/icd/tenant-context-headers-icd.md §3.4现写死「多 org→403」,与 D1/D2 冲突。starter-tenant(TenantContext{tenantId,org}+TenantContextFilter解析X-Tenant-Id)、starter-security(GatewayPreAuthFilter信任网关X-User/X-Roles+@PreAuthorize)。已发 0.2.0。2. 范围边界
3. 工作项 & 拆分指引
WP1 黄金 Deployment 模板范式(解 7 个占位子 chart 的阻塞)
deploy/charts/control-plane(或 governance)写真实 Deployment+Service+readiness/liveness probe,作为其余子 chart 可复制的范式。deploy/charts/privacy/templates/orchestrator-java.yaml与deploy/charts/tenant/templates/services.yaml的写法;helpers 仿deploy/charts/tenant/templates/_helpers.tpl。_helpers.tpl/labels - [ ] 其余 6 个按范式补(可作独立子任务/分人)。helm template deploy/charts/control-plane出完整工作负载;deploy/scripts/validate.sh test通过。WP2 单 ns demo values(一条命令起 Pod)
deploy/values/values-localdev.yaml:baseNamespaces.create=false、ESO/NetPol 关、本地 image tag、≥1 服务enabled=true。values-test.yaml;tools/local-infra起 kind +kind load docker-image。helm install platform deploy/charts/platform -n demo -f values-localdev.yaml后kubectl get po -n demo有 Running。WP3 deploy/README 落 D5 + webui 归属
charts/webui或文档化排除)。WP4 contracts 治理三件
tenant-context-headers-icd.md §3.4(多 org→403 ⇒ 解析到单活动租户、头/模型预留多 membership,切换经重新换 token)。contracts-ci.yml:60的破坏性门。contracts/icd/error-envelope-icd.md抽{code,message,traceId},三个 OpenAPI$ref之。WP5 决策落档
docs/architecture/05-多租户与控制平面.md与prototype/docs/01-管理中心/02-工作空间与租户开通(自研).md。4. 关键参考
deploy/README.md、docs/architecture/04-工程与部署.md;范式:deploy/charts/{privacy,tenant}/templates/*。contracts/README.md、contracts/CONVENTIONS.md、contracts/integration.md、contracts/icd/tenant-context-headers-icd.md。docs/architecture/05-多租户与控制平面.md;libslibs-java/starter-tenant、starter-security。5. 依赖 & 约束
6. 完成判据
values-localdev.yaml,单 nshelm install出 Running Podvalidate.sh/ contracts-ci 绿