Argo-cd: Child applications should not effect parent application's health by default

Created on 16 Jun 2020  路  11Comments  路  Source: argoproj/argo-cd

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

bug

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 ;)

All 11 comments

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:

3781-before

After (Desired behavior):

3781-after

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.

StatusRemoved

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.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

hulu1522 picture hulu1522  路  3Comments

ksaito1125 picture ksaito1125  路  3Comments

KarstenSiemer picture KarstenSiemer  路  3Comments

rosscdh picture rosscdh  路  3Comments

turbotankist picture turbotankist  路  3Comments