feat(#60): 一键部署编排与回滚引擎

纯标准库实现,对齐 PRD 5.6「⑥ 部署底座」(不真执行 k8s/helm,模拟编排):

- deploy_plan.py:DeployStep(4 类:pre_check/deploy/health_check/post_check)
  + DeployPlan(顺序约束自动校验,default_helm_release 默认 4 步计划)+
  DeployOrchestrator(按序执行,必需步骤失败即中止并标记 needs_rollback,
  deploy/health_check 为回滚检查点,pre_check 失败无需回滚)+
  HealthCheckContract(对齐 deploy/k8s/healthz 99.8% 目标)。
- rollback.py:RollbackPoint(部署前快照,values_hash SHA1 检测漂移)+
  RollbackManager(快照栈 + rollback_to_latest/rollback(n),失败压回栈顶
  保持一致性,FIFO 淘汰,支持回滚后健康检查)+ RollbackResult(4 状态)。
- tests:30 用例覆盖计划构造/顺序约束、全成功/各类失败、回滚检查点判定、
  action 异常、dry_run、空计划、快照压栈/FIFO、回滚成功/失败/多版本/空栈/
  异常、健康检查契约、values 漂移、报告序列化。
- _sanity_check.py:冒烟验证快照→部署成功→部署失败→回滚全流程。
This commit is contained in:
2026-08-05 05:32:27 +08:00
parent 2afea16005
commit 97fbbfa7b2
8 changed files with 1250 additions and 0 deletions
+42
View File
@@ -0,0 +1,42 @@
# -*- coding: utf-8 -*-
"""一键部署编排 + 回滚引擎包(Issue #60 / PRD 5.6「⑥ 部署底座」)。
把部署与回滚落为**可测试的纯标准库编排引擎**——不真执行 k8s/helm,但模拟
完整编排序列(pre_check → deploy → health_check → post_check)+ 部署前快照
+ 失败回滚。零运行时依赖,与 iAOP 部署底座一致。
"""
from .deploy_plan import (
DeployOrchestrator,
DeployOutcome,
DeployPlan,
DeployReport,
DeployStep,
DeployStepKind,
DeployStepResult,
DeployStatus,
HealthCheckContract,
)
from .rollback import (
RollbackManager,
RollbackPoint,
RollbackResult,
RollbackStatus,
)
__all__ = [
# deploy_plan
"DeployPlan",
"DeployStep",
"DeployStepKind",
"DeployStepResult",
"DeployStatus",
"DeployOutcome",
"DeployReport",
"DeployOrchestrator",
"HealthCheckContract",
# rollback
"RollbackPoint",
"RollbackManager",
"RollbackResult",
"RollbackStatus",
]