-
Notifications
You must be signed in to change notification settings - Fork 5.7k
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
Please allow for defining dependency DAG (Directed Acyclic Graph) #3517
Comments
Hello, |
would love to know as well |
check out Skyscanner's project https://github.com/Skyscanner/applicationset-progressive-sync |
I think Dagger does this. |
Project lead here. I wrote Sync Waves, and know the Argo Workflows logic that determines how task dependencies are evaluated. I've always wanted to be able to better understand the impact of a sync. Today, you press "sync" and hope for this best. Hence "sync plans" #8511. A sync consists of a series of ordered "sync tasks": This code already supports ordering. It would need to be updated to take into account the topological sorting of tasks. One question would be - do dependencies take precedence over waves? I think either they have to (because you could create app which could not sync). |
Signed-off-by: Alex Collins <alex_collins@intuit.com>
sync-deps.mov |
I don't have enough bandwidth to continue this feature. Next steps:
|
I’m not sure that just the functionality to sync as a DAG is enough (and Argo CD app that is a DAG is a lot like an Argo Workflow!). You probably need a way to view the DAG so that you can debug problematic DAGs. |
Closing this in favor of #7437 since there's more discussion there, and it's effectively the same request. |
Summary
When defining Application please allow a new field that is very similar to SyncWaves but allows for more fine-grained control of dependencies, thus allowing more parallelism. For any Application, I should be able to define a DependsOn array that lists other applications that must be synced and correct before I am allowed to sync. This is very similar to SyncWaves but would allow for a much finer-grained parallelism.
Motivation
Below is our SyncWaves and they are very complex and we are unable to parallels everything to it's the fullest extent because of inherent limitation in the sync wave design. We would like to be able to completely express our fine-grained dependencies in a DAG so maximum parallelism can be reached.
Proposal
Please add a DependsOn array to the application so it can list out what other applications it depends on.
The text was updated successfully, but these errors were encountered: