Skip to content

feat(syncwaves): add DAG for syncwaves v2 (alpha) #7437#25282

Open
SebastienFelix wants to merge 1 commit into
argoproj:masterfrom
SebastienFelix:addSyncDagV2
Open

feat(syncwaves): add DAG for syncwaves v2 (alpha) #7437#25282
SebastienFelix wants to merge 1 commit into
argoproj:masterfrom
SebastienFelix:addSyncDagV2

Conversation

@SebastienFelix
Copy link
Copy Markdown

@SebastienFelix SebastienFelix commented Nov 13, 2025

This PR resolves #7437

This PR introduces a new concept to sync-waves : sync-groups, which allows to define groups of resources that could be synced independently using a DAG representing their dependencies.

To give some insights of what I am trying to achieve with this PR, I add a new layer to sync-waves in to order to define groups of resources that could be synced independently (in parallel) using sync waves. By adding a wave-group id and wave group dependencies, it allows to define a DAG operating on the different wave groups. Here is an example of resource definition and the expected behavior :

apiVersion: v1
kind: Pod
metadata:
name: label-demo
labels:
argocd.argoproj.io/sync-wave: -1
argocd.argoproj.io/sync-wave-group: 2
argocd.argoproj.io/sync-wave-group-dependencies: 0,1

This pod belongs to wave-group 2 with sync-wave value -1. It will be synced only when no more resources from sync-groups 0 and 1 needs to be synced.

How Does It Work Together?

Syncing process orders the resources in the following precedence:

The phase
The group with respect to group dependencies
The wave they are in (lower values first)
By kind (e.g. namespaces first)
By name

Hope it clarifies.

Checklist:

  • Either (a) I've created an enhancement proposal and discussed it with the community, (b) this is a bug fix, or (c) this does not need to be in the release notes.
  • The title of the PR states what changed and the related issues number (used for the release note).
  • The title of the PR conforms to the Title of the PR
  • I've included "Closes [ISSUE #]" or "Fixes [ISSUE #]" in the description to automatically close the associated issue.
  • I've updated both the CLI and UI to expose my feature, or I plan to submit a second PR with them.
  • Does this PR require documentation updates?
  • I've updated documentation as required by this PR.
  • I have signed off all my commits as required by DCO
  • I have written unit and/or e2e tests for my change. PRs without these are unlikely to be merged.
  • My build is green (troubleshooting builds).
  • My new feature complies with the feature status guidelines.
  • I have added a brief description of why this PR is necessary and/or what this PR solves.
  • Optional. My organization is added to USERS.md.
  • Optional. For bug fixes, I've indicated what older releases this fix should be cherry-picked into (this may or may not happen depending on risk/complexity).

@SebastienFelix SebastienFelix requested review from a team as code owners November 13, 2025 07:31
@bunnyshell
Copy link
Copy Markdown

bunnyshell Bot commented Nov 13, 2025

❌ Preview Environment undeployed from Bunnyshell

Available commands (reply to this comment):

  • 🚀 /bns:deploy to deploy the environment

@SebastienFelix SebastienFelix changed the title Add sync dag v2 feat(syncwaves): Add sync dag v2 Nov 13, 2025
@codecov
Copy link
Copy Markdown

codecov Bot commented Nov 13, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 62.29%. Comparing base (b74cf45) to head (883f632).
⚠️ Report is 107 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master   #25282      +/-   ##
==========================================
+ Coverage   60.82%   62.29%   +1.46%     
==========================================
  Files         351      351              
  Lines       60439    49346   -11093     
==========================================
- Hits        36760    30738    -6022     
+ Misses      20757    15670    -5087     
- Partials     2922     2938      +16     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Comment thread docs/user-guide/sync-waves.md Outdated
@SebastienFelix SebastienFelix force-pushed the addSyncDagV2 branch 3 times, most recently from 4d18ec6 to d4abd45 Compare November 15, 2025 14:54
@SebastienFelix SebastienFelix changed the title feat(syncwaves): Add sync dag v2 feat(syncwaves): add DAG for syncwaves v2 (alpha) #7437 Nov 15, 2025
@SebastienFelix SebastienFelix force-pushed the addSyncDagV2 branch 2 times, most recently from 7b2370e to 6734b5a Compare November 15, 2025 17:05
Signed-off-by: SebastienFelix <sebastien.felix3@gmail.com>
@kahirokunn
Copy link
Copy Markdown

I really like this feature, but is there some issue preventing this PR from moving forward?

@tcapko
Copy link
Copy Markdown

tcapko commented May 20, 2026

Is there something to be done to help merge this sooner? This is really cool.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Application dependencies

4 participants