P3_WP07_ENTERPRISE_DELIVERY_IMPLEMENTATION_PLAN.md 5.4 KB

P3-WP07 企业生产交付与恢复实施计划

1. 范围与状态边界

本工作包把既有 Compose 离线包、环境剖面、升级前检查、备份/恢复和 P3-WP04 的签名发布经验,扩展为可在本地验证的企业交付工程合同。app/deployment/app/migrations/deployment/migrations/ 继续维持发布副本一致性;现有 WP05/WP06 未提交成果和用户资产均不属于本工作包修改目标。

基础设施输入仍为 TBD_EXTERNAL:目标 Kubernetes/OpenShift、企业制品库及签名证书、SLA、RTO/RPO、变更窗口均未确认。本轮不得把本地 Helm 渲染、Compose 演练或模拟签名表述为真实集群、企业制品库或生产灾备验收。第二轮独立复验后的 Critical 整改已通过全部定向本地门禁,状态恢复为 ENGINEERING_COMPLETE_ENTERPRISE_INFRASTRUCTURE_UAT_BLOCKED;企业基础设施验收仍未开始。

2. 任务分解

  1. P3-WP07-01:交付基线与 Helm 合同:增加离线可渲染 Helm chart、严格 values.schema.json、镜像 digest、Secret 引用、非 root/read-only/drop capabilities/seccomp、探针、资源、PDB、反亲和/拓扑、NetworkPolicy、服务账户及角色初始化/迁移 Job。
  2. P3-WP07-02:签名、SBOM 与不可变晋级:以 digest 为唯一对象建立候选包、审批引用、签名验证提供方、SBOM/漏洞/许可证门禁、漂移检查和回滚指针;默认关闭真实签名/制品库提供方,缺项、伪造或过期均拒绝。
  3. P3-WP07-03:备份、恢复、HA 与兼容性:建立不含明文密钥的批次备份/恢复清单、异地介质与密钥引用合同、恢复到新目标的门禁、故障注入证据、连接池预算/多 worker 无状态合同,以及 base→candidate→rollback 兼容矩阵。
  4. P3-WP07-04:交付证据与台账:形成 Compose-vs-Kubernetes 功能等价/差异、运行手册、故障合同、验证证据、阶段总计划及需求台账更新。

3. 保护文件与约束

  • 不修改既有 WP05/WP06 的 app/migrations/deployment/app/deployment/migrations/ 代码,除非仅做精确副本一致性验证。
  • 保持现有用户改动:.dockerignorerequirements.txtcanvas/、架构图片文档和 EAI Compose/配置文件。
  • 不暂存、提交、推送、部署,不运行全量回归;只运行 P3-WP07 与直接相关的现有 Compose 交付门禁。
  • 备份清单只允许配置与密钥的引用/digest,禁止归档或打印明文 secret;恢复只允许新目标并先验签/兼容/完整性。

4. 验证清单

  • RED→GREEN 定向合同测试;Helm 等价渲染、JSON Schema、YAML、bash 和 Python 语法验证。
  • 签名/SBOM/许可证/漏洞/审批/漂移/回滚均验证拒绝路径;镜像、制品和证据只允许 digest。
  • Compose 配置解析和既有离线包/恢复脚本的直接受影响门禁。
  • 发布副本、迁移 head=20260811_495、OpenAPI、manifest、secret scan 和临时验证数据清理。

4.1 Helm hook NetworkPolicy 生命周期契约

dataops-hook-egresspre-install/pre-upgrade hook,权重 -30,先于 role-init/db-migrate(分别为 -20/-10)创建;它仅选择两个 hook Job Pod,且只允许 kube-dns 与 PostgreSQL TCP/UDP 端口。该 policy 使用 before-hook-creation,在本次 hook Job 完成后保留,直至下一次同名 hook 创建前被替换:因此安装和升级均不会依赖普通 release 资源在 Job 之后才出现。该合同仅验证模板排序与生命周期;网络策略控制器的实际生效时序仍须在 目标 Kubernetes/OpenShift UAT 中验证。

4.2 最终整改信任与恢复契约

  • 兼容性批准不是任意 JSON:当 base 与 candidate 的 artifact/SBOM 不同时,批准记录必须绑定两侧 artifact/SBOM component identity、三方合同的 digest 与审批引用,并由受控 registry 中预批准的 external signer 验签。默认 external provider 禁用,缺少企业 signer 的本地环境 fail-closed。
  • production 备份与恢复只接受预批准 external KMS key reference 和 registry signer;manifest 仅记录 provider/key-id/signature,绝不内嵌公钥、trust-root 或动态 self-signing key。fake 只允许显式 --test-only 的非生产工程合同。
  • restore target 是一次性状态:同一 target 的任何重复请求均拒绝,先前的 restore plan 保留可审计记录, 因而没有第二次副作用或隐式 replay。
  • runtime ServiceAccount 明确使用 .Values.namespace,与 backend/runner 和 Helm release namespace 的 values 覆盖保持一致。
  • compatibility approval 的 issued_at/expires_at 必须是带 Z 的 UTC RFC3339;时钟偏差最多 5 分钟、 有效窗口最多 24 小时,且两字段本身也进入签名 payload。过期、未来、无界或重签旧 approval 均拒绝。
  • restore 先要求 integrity signature 的 algorithm/provider/key-id 与 manifest signature_provider/ signer_key_id 精确一致,再用相同 registry key 验签固定的 manifest、encryption provider 与 KMS key binding;不同已批准 key 不能替换或重签另一个 key-id 的 manifest。

5. 外部 UAT 清单

目标集群调谐、真实 HA/负载均衡/节点或区域故障转移、企业签名 CA/制品库、批准 SLA 与 RTO/RPO、异地加密介质、变更窗口和客户恢复签字均为 TBD_EXTERNAL,由 P3-WP14 或企业 UAT 收口。