You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Release digest/ownership status is not reliably observable, and chart URL drift goes undetected #382
status.atProvider.digest and ownershipTaken are set during Create, but crossplane-runtime reverts any status written during Create when it persists critical annotations (pkg/reconciler/managed/reconciler.go), so both are lost. generateObservation additionally zeroes ownershipTaken on every Observe, so the re-adoption guard only holds for one poll after each upgrade.
isUpToDate never compares spec.forProvider.chart.url, so changing the chart URL on a URL-only deployment is never detected as drift.
Proposed fix
Persist the deploy facts as helm release labels - helm stores them on the release Secret atomically with the deploy and returns them on read:
Observe rehydrates status.atProvider from the labels (with a fallback for releases deployed before label support), and isUpToDate compares the url-hash label against the spec URL to detect URL drift.
Environment
provider-helm main (post helm-v4), helm.sh/helm/v4 v4.2.3, crossplane-runtime/v2 v2.3.3.
Activity
feat(release): observe deploy facts via helm release labels
feat(release): observe deploy facts via helm release labels