Reconciliation Settings
Reconciliation settings allow you to tune how Argo CD processes application reconciliation. These settings can help prevent resource exhaustion and improve performance in large-scale deployments. All reconciliation settings can be located by navigating to Argo CD → your instance → Settings → Reconciliation Settings.
For more details on high availability and rate limiting, see the Argo CD High Availability documentation.
Bucket Rate Limiting
Bucket rate limiting uses a simple bucket-based approach to prevent resource spikes when many applications need reconciliation simultaneously.
To enable bucket rate limiting:
-
Toggle the Enabled switch to ON.
-
Configure the following settings:
- Bucket Size: The number of items that can be queued in a single burst (default: 500)
- Bucket QPS: The number of items that can be queued per second (default: 50)
-
Click Save.
Item Rate Limiting
Item rate limiting manages how frequently individual applications can be requeued using exponential backoff. This helps prevent sync loops and controller resource exhaustion.
To enable item rate limiting:
-
Toggle the Enabled switch to ON.
-
Configure the following settings:
- Failure Cooldown: The reset period in milliseconds. Backoff resets if this duration elapses without requeuing (default: 10000ms)
- Backoff Factor: The multiplier for exponential backoff increases (default: 1.5)
- Base Delay: The initial backoff value in milliseconds (default: 1ms)
- Max Delay: The maximum backoff ceiling in milliseconds (default: 1000ms)
-
Click Save.
Resources
The Resources section allows you to control which Kubernetes resources Argo CD monitors and reconciles.
Inclusions
By default, all resource groups/kinds are included. The Inclusions setting allows you to customize the list of included groups/kinds. If specified, only these resources will be monitored.
Exclusions
Configuration to completely ignore entire classes of resource groups/kinds (optional). Excluding high-volume resources improves performance and memory usage, and reduces load and bandwidth to the Kubernetes API server.
These are globs, so a * will match all values. If you omit groups/kinds/clusters, they will match all groups/kinds/clusters.
events.k8s.io and metrics.k8s.io are excluded by default.
Example exclusion configuration:
- apiGroups:
- '*.crossplane.io'
kinds:
- ProviderConfigUsage
Compare Options
The Compare Options section allows you to configure how Argo CD compares resources during reconciliation. This is specified in YAML format.
Available options include:
- ignoreAggregatedRoles: If set to
true, differences caused by aggregated roles in RBAC resources are ignored - ignoreResourceStatusField: Disables status field diffing in specified resource types. Options:
crd- CustomResourceDefinitions (default)all- All resourcesnone- Disabled
Example configuration:
ignoreAggregatedRoles: true
ignoreResourceStatusField: crd