M1 贯通主线 · 端到端集成(主仓 owner)
M1 的跨仓集成主线——把各仓"各自 boot"的零件接成"真打通"。各仓 brief 只保证本服务起得来;本 issue 专门保证它们接起来。
上位总纲:docs/milestones/M1-单命名空间端到端贯通.md §3.5(贯通主线)+ §1.6(纵切验收 = M1 的 definition of done)。
0. 一句话目标
让"浏览器 → gateway(OIDC+租户) → 真实后端 → PG → 界面渲染"这条纵切链在本地 K8s 单 ns 真跑通,并使纳入 demo 的各服务都真实部署、经网关可达。
1. 起点 · 代码现状(实测缺口,架构无误但胶水缺失)
- gateway
apisix/apisix.yaml:routes /api/* → mock-upstream:8080,无真实后端 upstream [缺失]。
- umbrella
deploy/charts/platform:8 子 chart + postgresql/kafka/doris/minio/redis 全 enabled:false;无 keycloak 依赖 [缺失]。
- deploy 里 Keycloak 仅 gateway chart
oidc.discovery:"" 占位指向外部 host,无 in-cluster 部署 [缺失]。
- webui:
deploy/console/config.js.template 已有 api.baseUrl + oidc.* 注入位 [接线点在];但 webui 不在 umbrella、无 chart [缺失];packages/sdk/src/auth/mockSessionStore.ts 仍 mock session [stub]。
2. 范围边界
- ✅ I1 in-cluster Keycloak+PG / I2 gateway 真实路由 / I3 webui 进集群+指向网关+真实 session / I4 纵切链+集成验收 / I5 各服务真实化收口。
- ⛔ 不做:高可用基础设施、OIDC 企业联邦、完整业务功能、CDC/Pact。
3. 工作项 & 拆分指引
I1 In-cluster 基础设施(Keycloak + PG,dev 级)
- 要达成:demo ns 内跑起 Keycloak(预置 realm + console/admin client)+ PG(各服务独立 db),作为 umbrella 可选依赖。
- 入手点:
deploy/charts/platform/Chart.yaml 有状态依赖区(现注释钉版本)启用社区 chart 或加简单 manifest;values-localdev.yaml 打开。端口 Keycloak 8180 / PG 5432。
- 可拆:- [ ] PG dev + 各 db - [ ] Keycloak dev - [ ] realm/client 预置(import json) - [ ] values-localdev 接线。
- 验收:
kubectl get po -n demo 见 keycloak/pg Running,服务能连上。
I2 gateway 路由真实后端
- 要达成:apisix routes/upstreams 指向 in-cluster Service(governance:8082 / control-plane:8081 / …),弃
mock-upstream;oidc.discovery 指向集群内 Keycloak。
- 入手点:gateway
apisix/apisix.yaml;chart ConfigMap 注入。
- 验收:经网关
curl 到真实 governance 返回(非 mock-upstream)。
I3 webui 进集群 + 指向网关
- 要达成:建
deploy/charts/webui(nginx 部署 console);config.js 注入 in-cluster gateway 的 api.baseUrl + oidc.authority(=集群内 Keycloak);SDK 用真实 OIDC session 替 mockSessionStore。
- 入手点:webui
deploy/console/{Dockerfile,config.js.template}、packages/sdk/src/auth/。
- 验收:浏览器(port-forward/ingress)打开 console → 经网关登录 → 调通后端。
I4 纵切贯通链 + 集成验收(definition of done)
- 要达成:跑通总纲 §1.6 链路,并落一个可重复的集成自检(脚本/清单)。
- 验收:浏览器 → gateway(OIDC + 注入
X-Tenant-*) → governance /api/meta/search →(PG/ES)→ webui 数据目录页渲染真实返回;control-plane 真实开通一个租户。
I5 各服务真实化收口
- 要达成:纳入 demo 链路的服务都有真实子 chart + 镜像 + 接线(非占位),经网关可达、readiness 真实绿。
- 入手点:复制主仓黄金 chart 范式(主仓 brief WP1);各后端仓镜像入 ghcr 并接
values。
- 验收:demo ns 内各服务 Pod Running、经网关可达。
4. 关键参考
- 总纲 §3.5 / §1.6;
deploy/charts/{platform,tenant,privacy};gateway apisix/*;webui deploy/console/config.js.template + packages/sdk;docs/architecture/{05-多租户与控制平面,02-平台治理与网关}.md。
5. 依赖 & 约束
6. 完成判据
M1 贯通主线 · 端到端集成(主仓 owner)
0. 一句话目标
让"浏览器 → gateway(OIDC+租户) → 真实后端 → PG → 界面渲染"这条纵切链在本地 K8s 单 ns 真跑通,并使纳入 demo 的各服务都真实部署、经网关可达。
1. 起点 · 代码现状(实测缺口,架构无误但胶水缺失)
apisix/apisix.yaml:routes/api/*→mock-upstream:8080,无真实后端 upstream [缺失]。deploy/charts/platform:8 子 chart + postgresql/kafka/doris/minio/redis 全enabled:false;无 keycloak 依赖 [缺失]。oidc.discovery:""占位指向外部 host,无 in-cluster 部署 [缺失]。deploy/console/config.js.template已有api.baseUrl+oidc.*注入位 [接线点在];但 webui 不在 umbrella、无 chart [缺失];packages/sdk/src/auth/mockSessionStore.ts仍 mock session [stub]。2. 范围边界
3. 工作项 & 拆分指引
I1 In-cluster 基础设施(Keycloak + PG,dev 级)
deploy/charts/platform/Chart.yaml有状态依赖区(现注释钉版本)启用社区 chart 或加简单 manifest;values-localdev.yaml打开。端口 Keycloak 8180 / PG 5432。kubectl get po -n demo见 keycloak/pg Running,服务能连上。I2 gateway 路由真实后端
mock-upstream;oidc.discovery指向集群内 Keycloak。apisix/apisix.yaml;chart ConfigMap 注入。curl到真实 governance 返回(非 mock-upstream)。I3 webui 进集群 + 指向网关
deploy/charts/webui(nginx 部署 console);config.js注入 in-cluster gateway 的api.baseUrl+oidc.authority(=集群内 Keycloak);SDK 用真实 OIDC session 替mockSessionStore。deploy/console/{Dockerfile,config.js.template}、packages/sdk/src/auth/。I4 纵切贯通链 + 集成验收(definition of done)
X-Tenant-*) → governance/api/meta/search→(PG/ES)→ webui 数据目录页渲染真实返回;control-plane 真实开通一个租户。I5 各服务真实化收口
values。4. 关键参考
deploy/charts/{platform,tenant,privacy};gatewayapisix/*;webuideploy/console/config.js.template+packages/sdk;docs/architecture/{05-多租户与控制平面,02-平台治理与网关}.md。5. 依赖 & 约束
6. 完成判据