Open bobzoller opened 6 days ago
@bobzoller Thank you for the detailed issue report.
My theory is that the sync in step 4 is unrelated to the commit in step 3. Once the application falls out of sync in step 2, it attempts reconciliation at each timeout.reconciliation
interval (default: 3 minutes), regardless of any subsequent commits.
This can be confirmed if a sync attempt occurs before creating the commit in step 3.
Checklist:
argocd version
.Describe the bug
When an application is a) out of sync and b) uses the
manifest-paths
annotation, it will attempt a sync for every new repo revision, not only those whose content matches itsmanifest-paths
.To Reproduce
manifest-paths
:create a commit that adds a manifest at
development/infra-development-tester/manifest.yaml
that succeeds but does not match, thereby leaving the application Out of Sync (Not sure how to give you a reproducible test case for Out of Sync... in our case a custom operator was swallowing a particular field of the resource definition. Make sure the Application uses themanifest-paths
annotation.)create another commit in a different directory of the deployments repo.
watch the app attempt a sync. (it shouldn't)
create another commit that fixes the out of sync error in the manifest; watch it sync successfully
create another commit in an unrelated directory; watch it ignore that revision and skip the sync!
Expected behavior
That the application only attempts a sync when there's a new revision and it matches its
manifest-paths
annotation.Screenshots
none
Version
Logs