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

  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