To facilitate better testing, and an easier to follow reconciliation flow, the current reconcileRelease method should be split out into separate (logical) units that deal with separate stages of the reconciliation process (e.g. installation, testing, remediation, uninstall).
The stages should be self-determining (that being, an inspection of the Helm storage and state), and not rely on any observations of previous state on the HelmRelease itself.
This has been attempted before in #126 and #177, which at the time was more difficult due to the lack of tooling that is going to be introduced with #323.
To facilitate better testing, and an easier to follow reconciliation flow, the current
reconcileReleasemethod should be split out into separate (logical) units that deal with separate stages of the reconciliation process (e.g. installation, testing, remediation, uninstall).The stages should be self-determining (that being, an inspection of the Helm storage and state), and not rely on any observations of previous state on the
HelmReleaseitself.This has been attempted before in #126 and #177, which at the time was more difficult due to the lack of tooling that is going to be introduced with #323.