Files
git.stella-ops.org/docs/features/unchecked/releaseorchestrator/promotion-gate-registry-with-built-in-gates.md

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 lookup
    • FreezeWindowGate (src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Promotion/Gate/BuiltIn/FreezeWindowGate.cs) - blocks promotions during freeze windows
    • ManualGate (src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Promotion/Gate/BuiltIn/ManualGate.cs) - requires manual human approval
    • PolicyGate (src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Promotion/Gate/BuiltIn/PolicyGate.cs) - OPA/Rego policy evaluation
    • ApprovalGate (src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Promotion/Gate/BuiltIn/ApprovalGate.cs) - N-of-M approval requirements
    • ScheduleGate (src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Promotion/Gate/BuiltIn/ScheduleGate.cs) - deployment window scheduling
    • DependencyGate (src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Promotion/Gate/BuiltIn/DependencyGate.cs) - upstream health check dependencies
    • SecurityGate (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 GateRegistry and verify they are discoverable
  • Evaluate FreezeWindowGate during a freeze window and verify it blocks the promotion
  • Evaluate ManualGate and verify it requires human interaction to proceed
  • Evaluate PolicyGate with a passing and failing OPA/Rego policy
  • Evaluate ApprovalGate with N-of-M approvers and verify threshold enforcement
  • Evaluate ScheduleGate inside and outside a deployment window
  • Evaluate DependencyGate with healthy and unhealthy upstream dependencies
  • Register a plugin gate via IGateProviderCapability and verify it integrates with the registry