-
Couldn't load subscription status.
- Fork 19
Open
Description
When AddonsLayer.spec.hold: true, we often update shared ConfigMaps. Flux HelmReleases may still reconcile on those ConfigMap changes as their interval hits, even though the layer is on hold. This can push partial or unintended values into running releases.
- Change: When an AddonsLayer is put on hold, the controller sets
spec.suspend=trueon all HelmReleases owned by the layer and annotates them withkraan/suspended-by-hold: "true". This ensures Helm controller ignores ConfigMap/value changes while the layer is held. A Normal event is emitted with a count of suspended releases. - Resume: When hold is removed, the AddonsLayer applies the latest manifests from the Git repo. Because the repo HR specs typically do not include
suspend, the applied spec clears suspension and Helm controller reconciles the latest desired state. - Logging/visibility:
- Per-HelmRelease info log at V(1): “suspended HelmRelease due to layer hold”.
- AddonsLayer event: “Suspended N HelmRelease(s) due to hold”.
- Annotation allows operators to identify why a HR is suspended.
Acceptance Criteria
- Setting
spec.hold: trueon an AddonsLayer:- All owned HelmReleases get
spec.suspend=true. - Each HR is annotated
kraan/suspended-by-hold: "true". - A Normal event is recorded on the AddonsLayer summarizing how many were suspended.
- All owned HelmReleases get
- Removing hold:
- Controller does not auto-unsuspend; on the next layer apply from Git, HelmReleases are updated with the repo spec (typically
suspend: false) and Helm controller reconciles.
- Controller does not auto-unsuspend; on the next layer apply from Git, HelmReleases are updated with the repo spec (typically
- Flux does not reconcile HRs due to ConfigMap/value changes while the layer is on hold.
Notes
- If an operator needs a specific HelmRelease to remain suspended after hold removal, keep
spec.suspend: truein the repo manifest or re-apply it after the layer apply.
Metadata
Metadata
Assignees
Labels
No labels