:seedling: Refactor `ClusterExtension` reconciler to use composable step-based pipeline by pedjak · Pull Request #2332 · operator-framework/operator-controller

AI review requested due to automatic review settings

November 13, 2025 15:54

@pedjak pedjak changed the title Refactor ClusterExtension reconciler to use composable step-based pipeline 🌱 Refactor ClusterExtension reconciler to use composable step-based pipeline

Nov 13, 2025

perdasilva

perdasilva

joelanford

Copilot AI review requested due to automatic review settings

November 18, 2025 12:19

Copilot AI review requested due to automatic review settings

November 20, 2025 15:08

joelanford

@openshift-ci openshift-ci bot added the approved

Indicates a PR has been approved by an approver from all required OWNERS files.

label

Nov 21, 2025

@pedjak

…ipeline

Replaces the monolithic 170-line reconcile() method with a flexible
step-based architecture that executes discrete reconciliation phases in
sequence. Each phase (`HandleFinalizers`, `RetrieveRevisionStates`,
`RetrieveRevisionMetadata`, `UnpackBundle`, `ApplyBundle`) is now a standalone
function that can be composed differently for Helm vs Boxcutter workflows.

Changes:
  - Introduce `ReconcileStepFunc` type and `ReconcileSteps` executor
  - Extract reconcile logic into individual step functions in new file
    `clusterextension_reconcile_steps.go`
  - Move `BoxcutterRevisionStatesGetter` to `boxcutter_reconcile_steps.go`
    alongside `MigrateStorage` step
  - Configure step pipelines in `main.go` for each applier type
  - Refactor tests to use functional options pattern for reconciler setup