wangbo
2636e93353
fix(acceptance): 按自适应容量执行单节点压测
...
修正单节点验收将 hard limit 等同空闲分配容量的问题,从冷启动容量 4 开始逐级加压,并要求实际分配容量和运行任务峰值均达到目标后才计入稳定并发。\n\n异常退出时同步清理模拟器和回调收集器资源。已执行 bash -n、ShellCheck 和 production acceptance 脚本测试。
2026-08-03 10:20:11 +08:00
wangbo
d8b86bb88c
fix(deploy): 合并香港容量环境清理
2026-08-03 10:11:09 +08:00
wangbo
0e292bb1d8
fix(deploy): 清理旧香港容量环境变量
...
单节点升级时显式删除旧 Deployment 模板中残留的香港副本环境变量,避免 ConfigMap 已清理后容量控制器仍访问退役站点。\n\n验证:bash -n;ShellCheck;cluster release helper 测试。
2026-08-03 10:10:56 +08:00
wangbo
699d004c5b
feat(deploy): 合并宁波单节点生产拓扑
2026-08-03 10:00:07 +08:00
wangbo
4ff85d96e0
feat(deploy): 切换宁波单节点生产拓扑
...
移除已停用的香港 API、Web、Worker 和边缘 Service 渲染结果,将 Worker 与容量控制器固定到宁波单实例,并在发布成功后清理旧香港资源。\n\n容量控制器忽略最大副本为零的站点,集群环境允许不再声明香港主机;单节点 production acceptance 不再依赖香港 Service、Deployment 或 SSH 回退。\n\n验证:Go 全量测试与 go vet;迁移安全检查;Kustomize 单节点渲染;ShellCheck;cluster release、production acceptance 和 manual release 测试。
2026-08-03 09:59:34 +08:00
wangbo
4fa1981bb8
fix(web): 按权限隐藏管理工作台入口
...
基于 /api/v1/me 返回的当前用户角色控制主导航,仅向具备 power 或 manager 权限的 operator、manager、admin 展示管理工作台。所有已登录页面统一加载当前用户身份,避免停留首页时无法正确判断权限。\n\n新增角色映射与导航渲染回归测试。已验证前端 152 项测试、前端构建、pnpm lint 和 git diff --cached --check。
2026-08-03 09:38:25 +08:00
wangbo
61a74445bc
chore(migration): 合并 Worker 负载迁移安全审查
2026-08-03 09:23:49 +08:00
wangbo
5e9a7888ae
chore(migration): 登记 Worker 负载迁移安全审查
...
基于宁波生产 PostgreSQL 18 的只读预检,gateway_worker_instances 当前为 96 行、180224 字节,常量默认值新增列不会触发表重写,回填和约束验证范围可控。\n\ngateway_concurrency_leases 仅增加可空列;记录迁移校验器允许的 non-null column addition,并保留迁移文件不可变。\n\n验证:node scripts/ci-validate-migrations.mjs ac8d6dcf452ac555eb344f76caf6965c2ea42a97;./tests/ci/migrations-test.sh
2026-08-03 09:23:34 +08:00
wangbo
dc2605fb39
fix(dev): 等待 PostgreSQL 容器就绪
...
数据库初始化脚本在容器停止时主动启动,并在执行 psql 前等待 PostgreSQL 就绪;若容器提前退出或超过等待时间则返回明确错误。
验证:bash -n、ShellCheck、git diff --check 与 pnpm db:create 通过。
2026-08-03 09:18:42 +08:00
wangbo
cc97e6649c
fix(access): 统一 API Key 模型权限与列表契约
...
将全局启用、用户组基线、API Key 专属或排除规则及 scope 按固定顺序求值,避免 Key 越过所属用户组权限,并让运行时候选与模型列表共用同一权限链。
新增 Key 级可分配模型与失效规则诊断接口、OpenAI 兼容 /v1/models 及 rich 列表迁移路径;前端权限弹窗改为按当前 Key 实时加载并支持清理失效规则。
验证:Go 全量测试与 go vet 通过;Web 22 个测试文件共 142 项通过;pnpm lint、pnpm openapi、pnpm build、Compose 配置、gofmt、ShellCheck 和 git diff --check 通过;独立 PostgreSQL 真实配置验收通过。
2026-08-03 09:17:15 +08:00
wangbo
c28bf74230
feat(worker): 实现集群限流与自适应负载
...
保留平台模型 RPM、TPM 和并发策略语义,增加 PostgreSQL 集群级租约、饱和候选重选和多平台自动负载,避免突发任务固定等待首个平台。\n\n新增 Worker 实时负载采样、自适应 active/heavy 容量、心跳与管理端指标,并扩展本地 acceptance runner,覆盖三 Worker、同模型三平台 2/4/6 并发和 48 个带图视频突发任务。\n\n验证:go test ./...、go vet ./...、PostgreSQL 跨 Store 集成测试、gofmt、bash -n、ShellCheck 及本地集群 provider-burst 验收通过;48/48 成功,无越限、重复提交、重复计费、重复回调或终态资源泄漏。
2026-08-03 00:13:46 +08:00
wangbo
9a01fd4657
fix(k3s): 修正磁盘调度 unit 启动命令
...
systemd 会展开 unit 命令中的百分号 specifier,导致原 oneshot 启动失败。改用 echo 写入调度器,并强制校验 unit 为 active;bash -n、ShellCheck、manual-release-test.sh 通过。
2026-08-02 10:41:16 +08:00
wangbo
e20688bbe2
fix(k3s): 持久化香港控制面磁盘调度缓解
...
原因:香港虚拟磁盘在低吞吐下仍出现高同步写延迟,触发 etcd slow apply、Handler timeout 和 PostgreSQL API Server 连通性异常。\n\n影响:新增仅针对香港根块设备的 mq-deadline 配置脚本,应用时不重启 K3s,并提供显式 rollback 恢复 none;运行手册明确该项仅为缓解,不能替代高性能云盘。\n\n验证:新香港节点同步写探针从 13.28ms 降至 6.25ms;bash -n、ShellCheck、manual-release-test.sh 通过。
2026-08-02 10:39:55 +08:00
wangbo
c55e52af11
fix(acceptance): 增强生产验收控制面容错
...
原因:资源前置检查中的一次瞬时 SSH 中断会直接终止 Run,失败收尾又可能因 partial 报告已存在而无法完成。\n\n影响:节点内存采集增加有界重试并区分传输故障;验收管理 GET 与 finish 支持香港本地入口安全回退,并对响应丢失后的 409 反查 Run 终态;已有 partial 报告会验证复用。\n\n验证:bash -n、ShellCheck、production-acceptance-script-test.sh、manual-release-test.sh 通过。
2026-08-02 10:13:35 +08:00
wangbo
ac8d6dcf45
fix(postgres): 放宽跨地域 WAL 连接抖动窗口
...
将生产 WAL sender/receiver timeout 从 CNPG 隐式 5 秒显式调整为 30 秒,避免短时控制面或 Pod 网络停顿反复拆除复制流并触发异步降级。保留 preferred 同步策略,防止副本不可达时冻结全部写入。\n\n影响:仅修改生产 CNPG 参数、发布门禁和运维说明,不改变应用镜像和迁移。仍需通过同步复制、六向链路与验收硬门禁。\n\n验证:kubectl kustomize、bash -n、ShellCheck、manual-release-test。
2026-08-02 00:10:25 +08:00
wangbo
a4046c2b81
perf(worker): 解耦准入调度与远端执行
...
原因:线上 P24 同构验收确认两台香港 Worker 的全局容量为 48,但跨地域逐行准入事务每轮只能形成 8 个活跃租约,队列最老等待超过 15 分钟。\n\n影响:新增可配置的异步准入 dispatcher 角色;生产两地 API 负责准入和过期回收,Worker 仅执行 River job。当前主库同站点 API 可低延迟填满容量,主库切换后另一地 API 通过既有数据库锁安全接管;未配置环境变量时保持原 Worker 一体化行为。\n\n验证:Go 全量测试、go vet、gofmt、真实 PostgreSQL 1000 任务双进程回归、前端 lint/test/build、Kubernetes server-side dry-run、Compose、ShellCheck、cluster/manual release tests 全部通过。
2026-08-01 23:24:30 +08:00
easyai
9c093974a1
fix(gateway): 修复 Qwen3.8 推理参数并增加上游自愈
...
统一 Qwen3.8 固定思考、推理档位、预算互斥与温度下限规则,并覆盖 Chat Completions 和原生 Responses 请求。
新增安全参数纠正、有限重试和并发安全的进程内 LRU 学习;补充共享行为向量、httptest 回归与真实模型验收用例。
验证:go test ./... -count=1 通过,gofmt 检查通过;真实 Qwen3.8 流式、非流式及缓存重学习验收通过。
2026-08-01 22:50:45 +08:00
wangbo
50a13de70b
fix(acceptance): 允许模拟器调度到专用 Worker
...
原因:新香港专用 Worker 节点带有 easyai.io/worker-only NoSchedule taint,现有模拟器只有节点选择器,导致线上验收滚动更新长期 Pending。\n\n影响:协议模拟器可在排除数据库与控制面节点的前提下调度到专用 Worker;正式 API、Worker 和流量门禁不变。\n\n验证:生产 API Server server-side dry-run 通过;manual-release-test 通过;git diff --check 通过。
2026-08-01 21:41:07 +08:00
wangbo
56a5176c92
perf(worker): 持久化准入快照提升队列吞吐
...
原因:线上 P24 验收显示 Worker 在每轮准入前逐条恢复媒体、重算候选和查询 attempts,跨地域查询导致 48 个执行槽长期只能使用约 8 至 16 个。\n\n影响:任务首次排队时保存鉴权后的 admission scope 快照,Worker 单次批量读取并只刷新动态总容量;显式重新选路保留完整慢路径。验收模拟器改到非数据库专用 Worker 节点,运行期 85% 作为立即中止硬门禁,80% 继续作为容量认证目标。\n\n验证:Go 全量测试、go vet、govulncheck、真实 PostgreSQL 迁移与跨 Store 集成测试、ShellCheck、发布及验收脚本、OpenAPI、前端 lint/test/build、pnpm audit high、Compose 与 Kubernetes 渲染均通过。
2026-08-01 21:25:54 +08:00
wangbo
c89c56ca65
perf(worker): 以有界微批次提升准入吞吐
...
原因:线上 P24 同构验收中,单任务同步复制提交与全局容量锁串行化,使两个 Worker 的 48 个执行槽只能维持约 10–14 个运行任务,最老等待超过 15 分钟。
影响:新增可配置的 1–32 条准入微批次,默认 8;租约、任务准入与唯一 River job 在一个有界事务内原子提交,并按确定顺序预锁任务和容量范围,避免整窗 48 条大事务和多 Dispatcher 死锁。并容忍 rebind 已被其他 Dispatcher 完成的幂等竞态。
验证:Go 全量测试、go vet、真实 PostgreSQL 跨 Store 集成测试、ShellCheck、迁移安全检查、OpenAPI、前端 lint/test/build、Compose/Kubernetes 渲染及人工发布脚本均通过。
2026-08-01 20:26:47 +08:00
wangbo
92e328a575
fix(acceptance): 隔离容量压测并稳定数据库连接
...
将协议模拟验收的供应商并发限额与 Worker 容量门禁分离,真实金丝雀继续保留生产限流。readyz 改用关键连接池并预热关键及 River 池,延长生产连接空闲周期,降低跨地域连接抖动。失败 Run 现在可以原子替换且失败报告记录任务数量,避免 validation 之间短暂放开正式流量。\n\n验证:Go 全量测试、go vet、PostgreSQL 集成测试、ShellCheck、迁移安全、发布脚本、pnpm lint/test/build、OpenAPI 无漂移均通过。
2026-08-01 19:29:08 +08:00
wangbo
89a0ff7e99
fix(release): 同步 API 运行 revision
...
生产发布滚动 API 时写入当前完整 release SHA,避免镜像 digest 已更新但运行 revision 仍指向上一版本。补充发布 helper 静态回归检查。\n\n验证:bash -n、ShellCheck、cluster release helper 测试通过。
2026-08-01 18:28:21 +08:00
wangbo
edcbbd6a87
fix(worker): 拆分准入事务并收敛验收失败状态
...
将批量准入改为每任务独立事务,避免 P24 压测时 48 条任务共享长事务造成 transactionid 锁潮与 Worker 槽位空转。失败验收在保持 validation 的同时清理未提交任务,并记录精确压力门禁原因。统一生产 0+2 Worker 拓扑、运行时 ConfigMap 与发布配置,补充镜像预检诊断和回归测试。\n\n验证:Go 全量测试、go vet、真实 PostgreSQL 48 任务集成测试、迁移安全检查、发布脚本测试、bash -n、ShellCheck、Compose 配置均通过。
2026-08-01 18:23:00 +08:00
wangbo
215b6b607f
fix(acceptance): 解除八任务准入瓶颈
...
线上 P24 验收证明 Worker 注册容量为 48,但异步 admission 始终只有 8 条活跃租约。将单事务调度窗口覆盖当前 2 x P32 的 64 槽,避免多 Worker 在同一 FIFO 小批次上竞争形成隐性全局上限。\n\nGemini 流式请求补充可回放 GetBody 与精确 Content-Length,使带幂等键的 POST 遇到 HTTP/2 可重试传输错误时可安全重放;同时提前部署验收回调收集器,保证旧 Run side effects 能在接管前收口。\n\n已通过 Go 全量测试、go vet、gofmt、Shell bash -n、ShellCheck、验收与人工发布脚本测试、迁移安全检查,以及独立 PostgreSQL 48 条 admission/租约/River job 原子集成测试。
2026-08-01 16:59:28 +08:00
wangbo
7623449e33
fix(acceptance): 复用集群 SSH 控制连接
...
线上验收在宁波 SSH 建连超时时于负载前失败。为集群脚本增加受限 ControlMaster 复用和仅建连阶段的 ConnectionAttempts,避免重放远程命令。\n\n生产快照导出增加三次只读重试、原子落盘和空 Pod 清理防护。已通过 bash -n、ShellCheck、production acceptance 脚本测试、人工发布脚本测试,并验证宁波真实 SSH 控制连接可复用。
2026-08-01 15:59:00 +08:00
wangbo
8ca3e2dbc2
fix(acceptance): 实时执行压力资源硬门禁
...
压力采样一旦发现节点内存、数据库连接、Pod RSS、租约或排队等待越线,立即联动停止负载,避免失败档继续堆积任务。\n\n同时保证连接池零值写入报告,并增加边界回归测试。已通过 bash -n、ShellCheck、production acceptance 脚本测试和人工发布脚本测试。
2026-08-01 15:44:57 +08:00
wangbo
3514c13b0d
fix(acceptance): 按实际节点聚合多 Worker 指标
...
同站点存在多个物理节点时,按每个 Ready Pod 的 nodeName 映射真实 SSH 主机采集 metrics,并隔离 ssh 标准输入,避免吞掉后续 Pod 目标。所有 Worker Pod 指标按容量最小/最大、连接池最小/最大和计数器总和聚合,不再随机漏采一个实例。\n\n运行时门禁根据已启用的第四节点计算 Ready 节点数,并跳过零副本站点,同时继续逐 Pod 校验 P24/P28/P32 容量、连接池和租约。\n\n验证:bash -n、ShellCheck、双节点 metrics 映射测试、生产只读双 Worker metrics 探针、manual-release-test。
2026-08-01 15:14:39 +08:00
wangbo
53fc79691a
fix(acceptance): 联动压力采样与负载停止
...
零副本 Worker 站点没有 metrics,应从聚合采样中跳过;有副本的站点采样失败仍保持硬失败。补充缺失字段诊断,避免只输出无上下文的采样失败。\n\n容量轮次和混合长稳压测现在持续监视压力采样进程;采样器提前退出时立即终止当前负载并走失败收口,避免在资源监控失效后继续造任务。\n\n验证:bash -n、ShellCheck、零副本站点测试、采样失败联动停止测试、manual-release-test。
2026-08-01 14:37:45 +08:00
wangbo
8749f38eb3
fix(acceptance): 完善跨版本验收状态收口
...
生产流量处于旧失败验收 Run 的 validation 状态时,允许新验收接管任意已验证的 Git 祖先 release,而非仅允许 release manifest 的直接 base;仍保留 Run 状态、镜像 digest、revision 与当前集群 release CAS 校验。\n\n允许 pending Run 在激活前异常时直接标记为 failed,避免验收工具在 CAS 或网络错误后遗留无法结束的 Run。新增祖先关系脚本测试及临时 PostgreSQL 集成验证。\n\n验证:Go 全量测试、go vet、临时 PostgreSQL 集成测试、bash -n、ShellCheck、manual-release-test。
2026-08-01 13:59:37 +08:00
wangbo
4d84210344
fix(release): 修正 Worker 滚动与失败传播
...
单站点 Worker 启用硬反亲和后,maxSurge=1 会让新 Pod 无法调度并造成滚动超时。将 Worker 改为先下线旧 Pod 再创建新 Pod,同时保持 API 的零中断滚动策略。\n\n发布辅助脚本为关键 kubectl 操作补充显式失败返回,避免函数位于条件表达式时 Bash 忽略 errexit,进而把失败发布误报为成功。新增回归测试模拟 rollout status 失败且旧 Pod 仍 Ready 的场景。\n\n验证:bash -n、ShellCheck、cluster-release-helper-test、manual-release-test、生产 API Server dry-run。
2026-08-01 13:43:33 +08:00
wangbo
80801b7bbb
fix(capacity): 允许显式禁用无节点站点
...
当 Worker Deployment 为零副本且站点没有 eligible Worker 节点时返回零容量状态,避免 min/max=0 的禁用站点令容量控制器持续 NotReady;非零副本仍保持失败关闭。\n\n验证:容量控制器单测、Go 全量测试、go vet、gofmt、迁移安全检查和人工发布脚本测试。
2026-08-01 13:02:55 +08:00
wangbo
773d310214
fix(cluster): 强制关键副本跨节点分散
...
避免同站点 Worker 与容量控制器在滚动发布时集中到同一节点,并让 Kubernetes 运行态清单变更进入可追溯的 API release。\n\n验证:bash -n、ShellCheck、manual-release-test、生产集群 server-side dry-run。
2026-08-01 12:33:19 +08:00
wangbo
fcc3dc3cb9
fix(acceptance): 排空后切换验收 Worker 拓扑
...
首次 CAS 只校验 release 与镜像,进入 validation 并排空既有任务后再快照并应用 P24 基线,随后执行副本放置与资源门禁。避免在 live 流量下从 1+1 竞态切换到 0+2,也解除验收前置副本与安全排空之间的循环依赖。\n\n验证:bash -n、ShellCheck、git diff --check。
2026-08-01 11:45:32 +08:00
wangbo
c9fbf6e6f6
fix(cluster): 稳定 Worker 节点首次接入
...
在新增 WireGuard 对等后等待全部握手并预热双向路由,再执行严格 10 包链路门禁;K3s 安装器检测到既有 unit 时显式启动未运行的 agent,并补充 Worker 标签校验。\n\n验证:bash -n、ShellCheck、四节点六向链路复测、K3s agent Ready 与隔离状态逐项核对。
2026-08-01 11:38:19 +08:00
wangbo
ed3b970178
refactor(cluster): 通用化第四个 Worker 节点接入
...
将原宁波专用接入脚本改为由环境变量控制节点名称、站点和 WireGuard 端口,支持香港双物理节点 Worker 池。增加候选节点启用开关和服务商网络许可门禁,未明确批准时禁止任何 WireGuard 或 K3s 写操作。同步调整生产验收、巡检、拓扑校验和运行手册。\n\n验证:\n- scripts/cluster 全部 Shell 脚本 bash -n\n- scripts/cluster 全部 ShellCheck\n- git diff --check\n- 本地凭据值扫描\n- 当前三节点 WireGuard/K3s/PostgreSQL 只读基线检查
2026-08-01 11:23:19 +08:00
wangbo
e77bd17754
fix(cluster): 固化宁波 Worker 隧道端口
...
新宁波节点改用 UDP/443 监听,其他三台节点保留 UDP/51820,并在全量 WireGuard 引导中按节点配置 endpoint 端口。\n\n三轮六向实测均为零丢包,香港 RTT 从 73-77ms 降至 48-53ms;已通过 bash -n、ShellCheck 和差异检查。
2026-08-01 10:54:30 +08:00
wangbo
53589fe3ef
fix(cluster): 以宁波专用节点替换深圳 Worker
...
移除深圳节点及中继拓扑,新增第二台宁波 K3s agent 的全互联 WireGuard 接入和严格 UFW 门禁。\n\nWorker Deployment 与容量控制器仅选择 easyai.io/worker=true 节点,使原宁波混部节点退出 Worker 资源预算,生产基线恢复为宁波专用节点与香港节点各一实例。\n\n已通过 Go 全量测试、go vet、gofmt、迁移安全检查、bash -n、ShellCheck、发布脚本测试和 Kubernetes 清单渲染。
2026-08-01 10:47:01 +08:00
wangbo
d3b36cf63d
fix(cluster): 保留深圳原有 UFW 防火墙
...
移除会与 UFW 冲突的 iptables-persistent 安装,改由 UFW 持久化 WireGuard、kubelet、Flannel 和 NodePort 规则。\n\n预检新增 UFW 已安装且处于 active 的硬门禁,避免包管理器切换防火墙后保留 DROP 默认策略并中断远程接入。\n\n已通过 bash -n、ShellCheck 和差异检查。
2026-08-01 09:51:03 +08:00
wangbo
c63709d785
fix(cluster): 经宁波中继深圳香港链路
...
香港与深圳公网直连出现高丢包和高时延时,固定将两地 WireGuard 数据前缀经宁波转发,同时保留直接 peer 心跳。\n\n中继规则和转发状态持久化,接入与全量 WireGuard 引导脚本保持一致;链路验收仍使用端到端丢包和 RTT 硬门禁。\n\n已通过 bash -n、ShellCheck、深圳资源预检和差异检查。
2026-08-01 09:42:59 +08:00
wangbo
70b0ffb9ae
feat(cluster): 接入深圳专用 Worker 节点
...
新增深圳 K3s agent 与四节点 WireGuard 全互联接入脚本,将深圳归入香港逻辑 Worker 池并用污点限制为 Worker 专用。\n\n生产验收支持宁波 0、香港逻辑池 2 的双物理节点基线,补充副本拓扑分散、容量档位、链路巡检和零副本站点校验。\n\n已通过 Go 全量测试、go vet、govulncheck、迁移安全检查、ShellCheck、发布脚本测试、前后端 lint/test/build、Compose 与 Kubernetes 渲染校验。
2026-08-01 09:38:10 +08:00
wangbo
132cda35d8
fix(acceptance): 隔离控制面抖动与租约瞬态故障
...
线上 P24 验收暴露出高频 kubectl exec 放大 K3s API 压力、门禁查询挤占关键连接池,以及 PostgreSQL 锁超时被误判为租约所有权丢失。
本次合并验收身份查询、在租约有效期内重试瞬态续期错误、修复人工审核残留 attempt,并增加滚动后 etcd 稳定窗口、节点直连指标和双站独立报告。
验证:Go 全量测试、go vet、聚焦 race、gofmt、迁移安全检查、bash -n、ShellCheck、manual release test。
2026-08-01 01:51:44 +08:00
wangbo
be6ce7f78a
fix(acceptance): 修复线上双站压测失真
...
将线上压力生成器拆分为宁波、香港宿主机上的 K3s 外进程,按全局序号分片并保守合并站点报告,避免操作者本机上行带宽成为容量瓶颈。\n\n为每次负载执行生成独立幂等键和 Run 级图片变体,阻止三轮验收重放旧任务或复用历史媒体缓存,并新增直接 OSS 物化一致性门禁。\n\n验证:Go 全量测试、go vet、迁移安全检查、bash -n、ShellCheck、manual-release-test 和双宿主机 linux/amd64 启动冒烟通过。
2026-08-01 01:02:07 +08:00
wangbo
9fd9c267d6
fix(acceptance): 配置化资源预热门槛
...
宁波节点混部 legacy 生产服务,固定 65% 预热门槛无法反映当前可用资源,也无法通过停止 staging/CI 实质改善。
预热内存门槛现在可在 50–79% 显式配置并写入报告;80%运行目标、85%硬上限和 15 分钟稳定窗口保持不变。
验证:bash -n、ShellCheck、验收报告测试。
2026-08-01 00:15:05 +08:00
wangbo
3a01a5c93e
fix(acceptance): 允许无运行时差异的工具更新
...
验收编排修复被正确分类为 components=none,但旧 CAS 要求工具 HEAD 与线上 release 完全相等,导致无运行时变化也必须重发镜像。
现在仅允许线上 release 到工具 HEAD 之间为无迁移、无 API/Web 运行时变化的后代提交;任何运行时或迁移差异仍立即阻断。
验证:bash -n、ShellCheck、验收报告测试、release-components 分类检查。
2026-08-01 00:11:25 +08:00
wangbo
a612c3cb4a
fix(acceptance): 按发布隔离验收身份组
...
历史验收主身份仍引用固定 production-acceptance 组,严格隔离门禁因此在切换 validation 前正确阻断。
验收组改为包含 release SHA 的稳定键;历史身份保持可审计,本次分片及已有 API Key 幂等迁移到当前发布专属组,避免清理或影响正式身份。
验证:bash -n、ShellCheck、验收报告测试、线上引用关系只读审计。
2026-08-01 00:10:41 +08:00
wangbo
b6ef0435ab
fix(controller): 隔离无关媒体凭据校验
...
容量控制器只负责读取容量状态和调整 Worker 副本,按最小权限不注入 OSS 或供应商凭据;全局媒体配置校验却导致控制器在生产启动时 CrashLoop。
容量控制器角色现在跳过不会使用的直传 OSS 校验,API/Worker 仍保持原校验;发布先以零副本应用目标状态,再用精确镜像和同构配置运行 Ready 预检,成功后才扩到双副本;同时补齐迁移 Job 的 restricted PodSecurity 配置。
验证:Go 全量测试、go vet、角色回归测试、bash -n、ShellCheck、人工发布测试、生产 server-side dry-run。
2026-07-31 23:52:22 +08:00
wangbo
993fb7d8be
fix(release): 兼容首次创建容量控制器
...
旧生产集群没有 capacity-controller,部署前精确快照此前对缺失 Deployment 直接报错,导致目标状态尚未应用就阻断发布。
快照现在允许目标 Deployment 不存在;失败恢复时,快照中原本不存在的资源会被删除,从而同时支持首次创建和精确回退。
验证:bash -n、ShellCheck、人工发布脚本测试、线上缺失控制器只读快照演练。
2026-07-31 23:38:55 +08:00
wangbo
744e4acd1f
fix(cluster): 消除发布前门禁假阴性
...
发布前巡检在 pipefail 下直接将 K3s readyz 管给 grep -q,可能因 SIGPIPE 误报 etcd 失败;链路和 PostgreSQL 断言失败时也缺少可定位证据。
改为完整读取 readyz,输出六向链路指标,并为复制、归档、备份和配置投影增加明确失败原因;同时缩短 10 包探测间隔,不改变丢包与 RTT 门槛。
验证:bash -n、ShellCheck、生产 precutover 只读巡检。
2026-07-31 23:34:22 +08:00
wangbo
709434a256
fix(acceptance): 自举线上隔离验收身份
...
线上验收此前依赖人工准备管理员 Token、专属用户、API Key、参考图片和数据库连接,导致跳过本地验收后仍无法安全、可重复执行。
本提交增加短期 Manager 登录、隔离用户/钱包/API Key 幂等创建、Pod 内脱敏快照导出和合成图片真实上传;敏感材料仅保留在进程或 0600 临时文件中。
验证:bash -n、ShellCheck、验收报告测试、参考图片生成测试、git diff --check。
2026-07-31 23:25:43 +08:00
wangbo
0b681275ed
fix(acceptance): 支持显式跳过本地验收
...
在用户明确授权时,将本地原生与 amd64 制品阶段记录为 skipped/waived,并直接使用当前生产脱敏快照进入线上模拟。修复线上报告合并未写入生产 Run ID 导致后续 promote CAS 必然失败的问题。已通过报告回归测试、bash -n、ShellCheck 和 diff 检查。
2026-07-31 23:15:22 +08:00