Skip to content

docs: argocd healthcheck - mark packages Degraded when Installed=False#1091

Open
ytsarev wants to merge 1 commit into
crossplane:masterfrom
ytsarev:argocd-health-pkg-installed
Open

docs: argocd healthcheck - mark packages Degraded when Installed=False#1091
ytsarev wants to merge 1 commit into
crossplane:masterfrom
ytsarev:argocd-health-pkg-installed

Conversation

@ytsarev
Copy link
Copy Markdown
Member

@ytsarev ytsarev commented May 11, 2026

Crossplane packages (Function, Provider, Configuration) expose two status conditions: Installed (the package spec resolved and was unpacked) and Healthy (the active PackageRevision is healthy). When spec.package is changed to a tag that cannot be resolved or unpacked, the new generation reports Installed=False (reason: UnpackingPackage, InvalidPackageRevisionSpec, ...), but the previously active revision continues to report Healthy=True / HealthyPackageRevision with a stale observedGeneration. The Lua healthcheck only matched positive condition types and therefore stamped the package as Healthy in ArgoCD even though the GitOps change had failed to roll out.

Add an explicit branch that early-returns Degraded when an Installed condition is False, mirroring the existing handling for Synced and LastAsyncOperation. The new branch is a no-op for non-package kinds and for the steady-state Installed=True / ActivePackageRevision case.

Before - the error is unclear and hidden by Progressing:

image

After - the error is surface:

image image

Crossplane packages (Function, Provider, Configuration) expose two
status conditions: `Installed` (the package spec resolved and was
unpacked) and `Healthy` (the active PackageRevision is healthy). When
`spec.package` is changed to a tag that cannot be resolved or unpacked,
the new generation reports `Installed=False` (reason: `UnpackingPackage`,
`InvalidPackageRevisionSpec`, ...), but the previously active revision
continues to report `Healthy=True / HealthyPackageRevision` with a stale
`observedGeneration`. The Lua healthcheck only matched positive
condition types and therefore stamped the package as Healthy in ArgoCD
even though the GitOps change had failed to roll out.

Add an explicit branch that early-returns Degraded when an `Installed`
condition is False, mirroring the existing handling for `Synced` and
`LastAsyncOperation`. The new branch is a no-op for non-package kinds
and for the steady-state `Installed=True / ActivePackageRevision` case.

Signed-off-by: Yury Tsarev <yury@upbound.io>
@netlify
Copy link
Copy Markdown

netlify Bot commented May 11, 2026

Deploy Preview for crossplane ready!

Name Link
🔨 Latest commit c741d04
🔍 Latest deploy log https://app.netlify.com/projects/crossplane/deploys/6a01d21f9af7e000080ba41d
😎 Deploy Preview https://deploy-preview-1091--crossplane.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 95 (🟢 up 2 from production)
Accessibility: 90 (🔴 down 2 from production)
Best Practices: 92 (no change from production)
SEO: 100 (no change from production)
PWA: 70 (no change from production)
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify project configuration.

@ytsarev ytsarev closed this May 12, 2026
@ytsarev ytsarev reopened this May 12, 2026
@haarchri
Copy link
Copy Markdown
Member

@ytsarev can you check for vale Issues ?

@ytsarev
Copy link
Copy Markdown
Member Author

ytsarev commented May 13, 2026

@haarchri none of them are related to the change. Do you want me to fix it inline in this PR?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants