Open yogeek opened 2 months ago
UPDATE : I tried to use argocd.argoproj.io/compare-options: IgnoreExtraneous
(http://argocd.argoproj.io/compare-options) on the Custom Resources but this did not change anything... (as explained in https://github.com/argoproj/argo-cd/issues/4487#issuecomment-2334312951)
Checklist:
argocd version
.Describe the bug
I am trying to use the Progressive Sync feature The doc mentions that All Applications in each group must become
Healthy
before the ApplicationSet controller will proceed to update the next group of Applications. But the rollout is blocked at step 1 whereas all applications in step 1 are Healthy (even if they are OutOfSync , which is desired as some custom resources cannot be deployed because of missing CRDs, but I configured these CRs with the argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true to not block the sync)If I remove the resources that caused the "SyncFailed" status from the state and it unblocks the rolling...
Use Case:
My use case is :
multiple addons can be deployed to a cluster. I am using applicationset to generate the list of addons apps.
Most of the time, all the addons are deployed => no problem
But sometimes, to be more efficient in testing a specific feature, I want to deploy only some addons : let's call it the "minimal" addon list. (for example, in some cases, prometheus-operator will not be deployed)
some addons from the "minimal" list could include some CustomResources without the corresponding CRD being deployed (for example, an addon has a ServiceMonitor but prometheus-operator is not present, hence the ServiceMonitor CRD is missing)
To prevent sync to block in this case, all the CR are annotated with
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
Consequently, in the "minimal" case, all my apps can be Healthy but some can be OutOfSync because of the missing CRD that cause the CR to no being deployed.
And with this setting, I would expect that, as progressive sync step promotion is based on the Health status of the apps, it will finish its rollout successfully. But apparently, if the Sync is failed, the progressive rollout is blocked at the current step.
In the end, not sure if it is a bug or not but I would like to know if there is a way to get a successful progressive sync even if some resources are OutOfSync.
To Reproduce
Deploy an appset with progressive sync that generates apps which include one with a state containing custom resources without the corresponding CRD being present in the cluster (but including the
SkipDryRunOnMissingResource=true
option) The progressive sync sould be blocked at the step that includes this appExpected behavior
I would expect all apps from the step 1 being
Healthy
a sufficient condition to trigger the step 2 as mentioned in the doc.Slack discussion
https://cloud-native.slack.com/archives/C01U45M2SVB/p1725025472494469
Version
Logs