Skip to main content

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 CDyour instanceSettingsReconciliation 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:

  1. Toggle the Enabled switch to ON.

  2. 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)
  3. 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:

  1. Toggle the Enabled switch to ON.

  2. 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)
  3. 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.

note

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 resources
    • none - Disabled

Example configuration:

ignoreAggregatedRoles: true
ignoreResourceStatusField: crd