2.7 KiB
2.7 KiB
Promotion Gate Registry with Built-in Gates (Freeze Window, Manual, Policy, Approval, Schedule, Dependency)
Module
ReleaseOrchestrator
Status
IMPLEMENTED
Description
Gate registry managing 8 built-in promotion gate types. This sprint implements 6: freeze-window-gate, manual-gate, policy-gate (OPA/Rego), approval-gate (N of M), schedule-gate (deployment windows), and dependency-gate (upstream health checks). Supports plugin gates via IGateProviderCapability.
Implementation Details
- Modules:
src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Promotion/Gate/ - Key Classes:
GateRegistry(src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Promotion/Gate/GateRegistry.cs) - manages gate provider registration and lookupFreezeWindowGate(src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Promotion/Gate/BuiltIn/FreezeWindowGate.cs) - blocks promotions during freeze windowsManualGate(src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Promotion/Gate/BuiltIn/ManualGate.cs) - requires manual human approvalPolicyGate(src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Promotion/Gate/BuiltIn/PolicyGate.cs) - OPA/Rego policy evaluationApprovalGate(src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Promotion/Gate/BuiltIn/ApprovalGate.cs) - N-of-M approval requirementsScheduleGate(src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Promotion/Gate/BuiltIn/ScheduleGate.cs) - deployment window schedulingDependencyGate(src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Promotion/Gate/BuiltIn/DependencyGate.cs) - upstream health check dependenciesSecurityGate(src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Promotion/Gate/Security/SecurityGate.cs) - security scan gate
- Interfaces:
IGateProvider,IGateRegistry,IGateProviderCapability(plugin extension) - Source: SPRINT_20260110_106_003_PROMOT_gate_registry.md
E2E Test Plan
- Register all built-in gates with
GateRegistryand verify they are discoverable - Evaluate
FreezeWindowGateduring a freeze window and verify it blocks the promotion - Evaluate
ManualGateand verify it requires human interaction to proceed - Evaluate
PolicyGatewith a passing and failing OPA/Rego policy - Evaluate
ApprovalGatewith N-of-M approvers and verify threshold enforcement - Evaluate
ScheduleGateinside and outside a deployment window - Evaluate
DependencyGatewith healthy and unhealthy upstream dependencies - Register a plugin gate via
IGateProviderCapabilityand verify it integrates with the registry