# 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/` 代码,除非仅做精确副本一致性验证。 - 保持现有用户改动:`.dockerignore`、`requirements.txt`、`canvas/`、架构图片文档和 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-egress` 是 `pre-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 收口。