fix: 建立 SelfMedia Pod 语音 bridge

This commit is contained in:
Codex
2026-07-15 17:18:48 +02:00
parent a532dbd751
commit 10f769b6d3
5 changed files with 186 additions and 4 deletions
@@ -0,0 +1,22 @@
# R9.5.2 任务报告
## 结果
NC01 的 `24317` 由 Docker proxy 监听。host 访问该端口有 HTTP 响应,但 `selfmedia` namespace 现有 Pod 访问 `10.42.0.1:24317` 明确连接失败,确认问题位于 Pod 到 host Docker published port 的 hairpin 路径。
`config/platform-infra/selfmedia-voice.yaml` 新增 `systemd-socket-proxyd` bridge 声明:监听 `10.42.0.1:24318`,转发至 `127.0.0.1:24317``platform-infra selfmedia-voice bridge plan|apply|status|validate` 负责渲染、安装和核对 systemd socket/service unit,不新增 Caddy、Ingress、NodePort 或第二配置来源。
`config/selfmedia.yaml` 只修改开发目标:`SELFMEDIA_TTS_BASE_URL``networkPolicy.allowedTcpEndpoints` 切到 `10.42.0.1:24318`;生产目标继续保持空 endpoint 和空允许列表。
## 验证
- Target worktree`NC01:/root/unidesk/.worktree/selfmedia-voice-bridge`
- `bun --check scripts/src/platform-infra-selfmedia-voice.ts` 通过。
- `bun test scripts/src/selfmedia-config.test.ts` 通过,结果为 `1 pass, 0 fail`
- bridge plan 渲染 socket/service unitapply 后 socket 为 `active/enabled`unit 内容匹配,host probe `http://10.42.0.1:24318/v1/models` 返回 HTTP `404`,证明请求已到达 upstream 而非连接拒绝。
-`selfmedia` namespace 创建带唯一标签的短生命周期 smoke Pod 和只允许 `10.42.0.1/32:24318` 的临时 NetworkPolicy,请求 `/v1/models` 返回 HTTP `404``connectionRefused=false`;随后 Pod 与临时 NetworkPolicy 均已删除。
- 配置解析确认开发 endpoint/egress 为 `24318`,生产 endpoint 仍为空且允许列表仍为空。
## 边界
未修改现有 Deployment/Pod,未修改生产 SelfMedia endpoint,未打印 Secret,未人工创建 PipelineRun、mirror sync 或 Argo sync。bridge 已通过当前分支受控 CLI 部署到 NC01PR 合并前,Git source authority 尚未进入 `master`,因此运行面与 source 的最终收敛依赖本任务 PR 正常合并。
@@ -126,3 +126,13 @@
### R9.5 [in_progress]
将 D518 CosyVoice3 公网端点以 YAML-first 接入 SELFMEDIA 开发集群,吸收远程语音适配、精确 egress 与 PaC target 分组改动,只滚动 master/4317,并实际执行一期 voice step 完成 WAV 与时间轴 smoke,生产 release/4319 保持不变,完成任务后将详细报告写入任务报告,完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R9.5_Task_Report.md)。
#### R9.5.2 [completed]
依据 [UniDesk #2216](https://github.com/pikasTech/unidesk/issues/2216) 为 SelfMedia 开发 Pod 建立 NC01 host-native 语音 bridge
- `config/platform-infra/selfmedia-voice.yaml` 声明 Pod 可达监听地址、独立端口、loopback upstream、systemd unit 和 probe
- 受控 CLI 提供 bridge plan、apply、status、validate 单步;
- 开发 `SELFMEDIA_TTS_BASE_URL` 与精确 NetworkPolicy egress 切到 bridge,生产 endpoint 保持空;
- 不 patch Deployment/Pod,不人工触发 PipelineRun、mirror 或 Argo
- 完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R9.5.2_Task_Report.md)。