-
Notifications
You must be signed in to change notification settings - Fork 5.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
App health status is Healthy even if repoURL is wrong and Application healthcheck is enabled #10088
Comments
same problem here, be closed without solution |
Thanks for the reply! |
If relevant, if API status for app-of-apps:
API status for worng app as part of app-of-apps:
|
Another impact of this issue, is that the false "Healthy" status appears to fool the sync-wave and causes later syncs to run earlier than expected |
I believe the definition of an app health is "unhealthy if and only if one of its immediate child resources is unhealthy." Since an Application is not a child of itself, it is not considered unhealthy, even if its health check would fail. That's why it works in an app of apps - the unhealthy app is the immediate child of an app. I think it would probably be okay to surface, at least in the UI, the health check result of the root node (the app itself). |
I really have no idea what you mean here. If a child app is in an unknown state the parent app should show this. Its common sense that we see the error at the top level. |
I don't disagree. I'm just describing the current behavior and why it is the way it is. The following describes the current behavior. None of these is correct, it's just the way it is today.
I think that, to get the behavior requested in this issue, we'd need to change at least For the requested behavior to be the default, we'd need to change |
The health of a parent should be the health of all children and chidren of children. If a single child is unhealthy the parent, parent of the parent etc is not healthy. |
This is intentionally not the case. For example, imagine this:
Argo CD would be wrong to assume that the degraded ReplicaSet/Pod mean that the app is degraded. In fact, the Argo Rollout is handling the situation fine. It's aware of the current state of the canary ReplicaSet and is routing traffic appropriately. Argo CD trusts the health check of a parent resource to describe the aggregate health of its child resources. Argo CD does not and should not make assumptions about what the health of a child resource means for the health of a parent resource. Only the parent resource knows its current aggregate health. |
All I am asking for is some kind of notice at the top level that there is an error! I do not care how this is done but if there is an error somewhere I should be informed without needing to know which application to look for |
Understood. I care how it is done, because someone will need to design, write, and test the code. Hopefully someone who is reading this thread. :-) I also care how it is done, because "some kind of notice at the top level" is ambiguous. What should the notice look like? Will it affect Application filters in the Applications list view? If it means that we need to ship an Application health check by default, how do we make that opt-in to avoid changing the behavior of existing apps-of-apps? Maintaining software requires collaboration between customers and coders in order to establish complete, clear, and accurate requirements. In this case, both the customers and the coders are on this thread. |
Checklist:
argocd version
.Describe the bug
App health status is
Healthy
even if repoURL is wrong andresource.customizations.health.argoproj.io_Application
is in place.To Reproduce
Expected behavior
Application health status should not be
Healthy
Screenshots
Version
Logs
Question: is there a way to modify health.lua to set proper health status? It is working for the app-of-apps Application (Status is Degraded, if
wrong
application is part of it), but not for the actualwrong
app.The text was updated successfully, but these errors were encountered: