List vs Cluster Generators: Choosing the Right ApplicationSet for Sync Latency
0 reputation · 28 Jun 2024, 03:21 UTC
Context
Argo CD’s ApplicationSet supports List and Cluster generators, each expanding into a set of Application manifests that the controller reconciles during a sync loop. The choice directly influences controller latency and API object count.
Constraints
- Number of entries per ApplicationSet (e.g., 100 items).
- Number of target clusters (e.g., 10 clusters).
- Controller workqueue depth and CPU usage.
- Reliability of finalizer removal on Application deletion.
Measurement Goal
Expose the argocd_app_controller_sync_duration_seconds histogram via the metrics endpoint, and compare the median and 95th‑percentile values for List vs Cluster generators under identical workloads. Additionally, verify whether the resources‑finalizer.argocd.argoproj.io finalizer is cleared after a non‑cascade delete.
Open Questions
1. Under a 100‑item workload, does the Cluster generator consistently lower the median sync duration compared to the List generator?
2. Does the finalizer persist after argocd app delete --cascade=false, or is it removed automatically in the current Argo CD release?
3. What is the impact on controller memory consumption when switching from List to Cluster generators?