-
Notifications
You must be signed in to change notification settings - Fork 5.6k
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
apps of apps - dependency (sync-wave) between apps not working #5585
Comments
I seem to have hit the same issue. Argo is not waiting for the helm chart release of App A to become healthy before helm releasing App B. |
Same issue, were my app is not an helm chart but points to a Git remote directory. It looks like it only happens sometimes, I was not able to reproduce this behavior consistently. |
For people hitting this issue, have you enabled health assessment for Argo CD |
I don't have health assessment enabled for |
@jannfis thank you for the tip. I've seen this page just landed in the docs in the last few days. It works like a charm. |
Had this same issue with argocd v2.0.3, the fix linked here to modify the config map worked, but I also had to enable autosync on my child apps. Is sync wave supposed to work with autosync disabled? I have a 4 wave app of apps deployment and could not get sync waves to work without the configmap update and enabling autosync. I can provide repro steps if need be.
|
I am not sure either, I am looking at the docs, but I cannot for the life of me, get the child apps to autocreate without autosync. |
Hey, any news on that issue? are you guys found some good workaround? |
It looks I am having the same issue. I'm using ApplicationSet and created the top level application pointing to a set of ApplicationSet from UI, not sure if it introduces any difference. After the top level application created, the apps will be auto-generated after I registered a cluster (I'm using cluster generator), then I see all child applications are created automatically and some applications should have been created after others since I assigned different sync-wave values to them. However, I see they are synced and processing simultaneously. I've already added back the custom health check for |
Have an almost identical setup - top level Application pointing to directory with a few ApplicationSets. The resulting apps from the ApplicationSets have the appropriate wave annotations to install some of the apps before others, and they all show in the UI as part of the top level Application. This seems like it falls under the app of apps concept that should work based on other GH issue resolutions, yet they all install simultaneously. I do have the health check set up. This isn't so much a problem for me on new cluster creation, or general install, because retries eventually get everything installed. It is on cluster deletion though, as operators are being deleted before they can operate on (clean up) their custom resources. Bit more digging and I think this is what we're looking for #9437, progressive rollouts for ApplicationSets |
It seems the fix for the original issue here was to enable application health checking. The recent discussion concerning the non-functional 'App of ApplicationSets' pattern may be addressed by #9437. |
The progressive rollout feature mentioned above is now available in experimental status: https://argo-cd.readthedocs.io/en/release-2.6/operator-manual/applicationset/Progressive-Rollouts/ Seems like this is the best way to solve this problem. Though, I can think of situations where this is not appropriate. For example, imagine application1 is developed by team1 and application2 is developed by team2 and that application2 cannot start up until after application1 has started. In this scenario it doesn't make sense to deploy both application1 and application2 with a single applicationset since they are owned by different teams. I think in this situation the best thing to do is to have an initContainer in the pod spec for application2 that validates that application1 has started OR have code inside of application2 that does the check. |
Sync waves in 2.7.2 work only for the initial deployment of the apps and it's deletion. There the sequencing is properly working. But for any change in the apps, the sync does not wait for the apps in the earlier sync-waves to become healthy. And yes, I have configured the app health check. |
@fvogl I'm seeing the same thing. Initial deployment works as expected but subsequent updates do not obey sync waves. I don't suppose you managed to find a workaround for this? |
@adam-harries unfortunately not, so actually for us this sync-wave feature is not usable, as we constantly evolve our microservice based platform and not install it once only. |
I was afraid you'd say that :( Did you find an alternative approach to manage dependencies between app deployments? |
Several things to take away from this issue:
|
Describe the bug
I am trying to make an app dependent on other apps. Just for sake of an example, I have taken two off the shelf charts - kubernetes-external-secrets and prometheus
NOTE: I have just taken these charts as an example, we have different charts (stored in a git repository) in my organization along with a few
kustomized_helm
charts (like kustomize-guestbook) which uses kustomize-helm pluginTo Reproduce
I have tried to use sync-waves in vain, it does not look like it is coming into effect at all.
File
nonprod-apps.yaml
for calling other appsApp files in the git repository
File 1
prometheus.yaml
File 2
secrets-manager.yaml
Expected behavior
I want the status of the
prometheus
application to be healthy before argocd moves tosecrets-manager
application.Screenshots
Version
Related Issues / Questions
The text was updated successfully, but these errors were encountered: