Versioning and Compatibility
Argo CD follows semantic versioning with these guarantees:Patch Releases
v1.5.1 → v1.5.3No breaking changes or special instructions required. Safe to upgrade directly.
Minor Releases
v1.3.0 → v1.5.2May introduce changes with workarounds. Check upgrade notes for each minor version.
Major Releases
v2.14 → v3.0Introduces backward incompatible changes. Take backup and review migration guide carefully.
Standard Upgrade Procedure
Pre-Upgrade Checklist
Review release notes
Check the release notes for breaking changes and new features:
Upgrade Commands
- Non-HA Installation
- HA Installation
For standard installations:
The
--server-side --force-conflicts flags are required because some Argo CD CRDs exceed the size limit for client-side apply operations.Post-Upgrade Verification
Major Version Upgrades
Upgrading to v3.0
Argo CD 3.0 introduces several important changes. Below are the most impactful breaking changes:Annotation-Based Tracking (Default)
Annotation-Based Tracking (Default)
Change: Default resource tracking changed from labels to annotations.Detection:Impact: Labels will be replaced with annotations on next sync. Applications won’t be marked as out-of-sync if labels are missing.Action Required:
- Most users can upgrade safely
- Applications with
ApplyOutOfSyncOnly=trueneed manual sync after upgrade - Perform a sync operation on applications to apply annotations
Fine-Grained RBAC Changes
Fine-Grained RBAC Changes
Change: Policies granting Restore v2 behavior:
update or delete no longer automatically apply to sub-resources.Impact: Users with applications, update permission can no longer automatically update/delete managed resources.Action Required: Update RBAC policies to explicitly grant sub-resource permissions:Logs RBAC Enforcement
Logs RBAC Enforcement
Change: Logs RBAC is now enforced by default (previously optional).Detection:Impact: Users need explicit Recommended fix (per-policy):
logs, get permission to view pod logs in UI.Quick fix (global access):Default Resource Exclusions
Default Resource Exclusions
Change: High-volume Kubernetes resources are now excluded by default.Excluded resources:
- Kubernetes:
Endpoints,EndpointSlice,Lease,TokenReview,CertificateSigningRequest - Cert Manager:
CertificateRequest - Kyverno:
EphemeralReport,AdmissionReport,BackgroundScanReport - Cilium:
CiliumIdentity,CiliumEndpoint
Helm 3.17.1 Upgrade
Helm 3.17.1 Upgrade
Change: Helm upgraded to 3.17.1 with stricter Solution: Remove
null handling.Issue: values.yaml files with null object values will override subcharts.Example problem:null values:Dex SSO RBAC Changes
Dex SSO RBAC Changes
Change: RBAC subject now uses Update RBAC policies:
federated_claims.user_id instead of sub claim.Detection: If using Dex SSO, check existing RBAC policies.Action Required: Decode existing sub claims and update policies:Upgrading to v3.4
Application 'Missing' Health Status Change
Application 'Missing' Health Status Change
Change: Applications now show
Missing health only when ALL resources are missing.New behavior:- Individual missing resources don’t affect overall health
- Health reflects existing resources (Healthy, Progressing, Degraded)
- Use
OutOfSyncstatus to detect missing resources
Missing health status should check OutOfSync instead.gRPC DNS TXT Lookups Disabled
gRPC DNS TXT Lookups Disabled
Change: gRPC service config DNS lookups disabled by default.Reason: Prevents excessive DNS queries in dual-stack (IPv4+IPv6) environments.Impact: Minimal for most users. Only affects those using DNS TXT records for gRPC config.Re-enable (if needed):
Dex 2.45.0 Upgrade
Dex 2.45.0 Upgrade
Changes:
- Gomplate now used internally
ContinueOnConnectorFailureenabled by default
Upgrade Strategies
Rolling Upgrade (Zero Downtime)
For production environments:Blue-Green Upgrade
For critical environments:- Deploy new Argo CD instance: Install new version in parallel namespace
- Import configuration: Restore from backup to new instance
- Validate functionality: Test applications in new instance
- Switch traffic: Update ingress/LoadBalancer to new instance
- Decommission old instance: After validation period
Rollback Procedure
If issues occur after upgrade:Version-Specific Upgrade Guides
v3.3 to v3.4
Latest minor version upgrade
v3.0 to v3.1
Minor version with new features
v2.14 to v3.0
Major version upgrade guide
Best Practices
Backup First
Always create a backup before major version upgrades using
argocd admin export.Test Upgrades
Test upgrade procedures in non-production environments before applying to production.
Read Release Notes
Carefully review release notes for breaking changes and required actions.
Monitor After Upgrade
Watch metrics and logs closely after upgrade to catch issues early.
Staged Rollout
Upgrade development → staging → production in stages with validation between.
Maintain Version Parity
Keep CLI version matched with server version to avoid compatibility issues.