Describe the bug
Currently, when you have an application of applications (parent, children) if the child application is unhealthy the parent application becomes unhealthy. There is currently a workaround to use a resource customization to do this but after discussing with Alex on slack he asked me to file a bug report to make this the default.
To Reproduce
Create an application that manages applications, take some action that forces a child application to an unhealthy state. The parent application will become unhealthy.
Expected behavior
I would like the parent application to remain healthy. it seems redundant for most peoples use cases to bubble up child application health to the parent.
Version
1.5.2
Relevant slack convo: https://argoproj.slack.com/archives/CASHNF6MS/p1585143412031500
I guess a case can be made for both. I have app-of-apps where independent apps are installed and I don't really care about the overall health, but I also have apps that consist of multiple component apps which must all be there for the entire thing to work (essentially being one system semantically), so in that case I'm interested in its overall health. Just like when an app is degraded when some resource in it is also degraded.
Whichever scenario is most used should be the default I guess, which is fine to me as long as I can configure otherwise ;)
Yeah, the discussion in slack leaned towards this being the default because it is the most common use.
Hi @alexmt, please assign this to me
+1
Is that slack link correct? I'm seeing a thread that talks about issue 2924
Note, currently, if the child's health state is missing or unknown, it will not affect the parent's health state.
So, if the child app's health state is "degraded", then the parent app should still be healthy.
Before:

After (Desired behavior):

Hi @alexmt , could you comment on this bug, whether there should be a setting of some sort to make the behaviour configurable, perhaps a preference setting from the Projects summary settings page (settings/projects/<projectName>) or somewhere else? IMHO, I think anything elaborate like this should be considered an enhancement, and not a bug.
This is how the child applications will appear now with the changes. There is no health status. You must open the child app to see it's health state.

Hi @alexmt , can this issue be set to verify?
What is the recommended way to configure the old behavior now, where you have a composite app whose parent should only be healthy when all children are healthy (just like it works with non-Application resources inside an Application)? I'm not sure it is really wise to override any built-in health check for the Application CR itself...
@sfynx https://argoproj.github.io/argo-cd/operator-manual/upgrading/1.7-1.8/#health-assessement-of-argoprojioapplication-crd-has-been-removed worked for me.
Most helpful comment
I guess a case can be made for both. I have app-of-apps where independent apps are installed and I don't really care about the overall health, but I also have apps that consist of multiple component apps which must all be there for the entire thing to work (essentially being one system semantically), so in that case I'm interested in its overall health. Just like when an app is degraded when some resource in it is also degraded.
Whichever scenario is most used should be the default I guess, which is fine to me as long as I can configure otherwise ;)