Type something to search...

Upgrading to Argo CD 3.0

Introduction

The release of Argo CD 3.0 represents a significant leap forward in GitOps for Kubernetes, driven by the incredible efforts of the open-source Argo community. As someone who has worked extensively with Argo CD, I'm thrilled to share insights into this upgrade and guide you through the process of migrating from version 2.14 to 3.0.

In this blog, I'll walk you through the key changes introduced in 3.0, the challenges you might encounter during the upgrade, and how to ensure a seamless transition while maintaining backwards compatibility.


What's New in Argo CD 3.0?

0. Breaking Changes (Important!)

Before diving into the new features, be aware of these critical changes:

  • Minimum Kubernetes Version: Now requires Kubernetes 1.21+
  • Redis Removal: Redis dependency has been completely removed
  • Deprecated APIs: Several deprecated APIs have been removed
  • Configuration Changes: Some configuration fields have been renamed or restructured

1. Simplified Configuration

The Argo community has streamlined configuration management, removing redundant settings and deprecating outdated fields. This ensures cleaner, more consistent manifests across teams.

2. Enhanced Performance

Performance improvements are among the most exciting changes:

  • Faster Sync Operations: Syncs are now up to 40% faster due to optimized resource reconciliation.
  • Reduced Memory Usage: The application controller has been refactored to consume less memory, particularly beneficial in large-scale environments.

3. Improved UI/UX

The user interface has been significantly enhanced:

  • Dark Mode: A highly requested feature, dark mode improves readability in low-light environments.
  • Customizable Dashboards: Users can now create personalized dashboards to monitor specific applications or clusters.

4. Security Enhancements

Security remains a top priority for the community:

  • RBAC Improvements: Fine-grained role-based access control (RBAC) policies now allow more granular permissions.
  • Secret Management: Integration with external secret management tools like HashiCorp Vault has been enhanced.

5. API Versioning

The introduction of versioned APIs ensures stability and future-proofing, making breaking changes easier to manage in subsequent releases.

6. Resource Health Assessment

The community has improved resource health assessment with:

  • Better handling of custom resources
  • More accurate status reporting for managed resources
  • Enhanced health check customization options

7. Application Set Improvements

  • Enhanced progressive syncs
  • Better handling of matrix generators
  • Improved error reporting and validation

Challenges During the Upgrade Process

While upgrading to Argo CD 3.0 brings many benefits, it also comes with challenges. Here are some common hurdles and how to address them:

1. Backwards Compatibility

Ensuring backwards compatibility was a major focus for the community. However, some legacy configurations may no longer be supported. Carefully review your existing setup and update deprecated features before upgrading.

2. Deprecation of Legacy Features

Several features from 2.14 have been deprecated, including:

  • The argo-cd-util CLI tool, replaced by native kubectl plugins.
  • Support for older Kubernetes versions (pre-1.21).

3. Performance Bottlenecks

Early adopters reported performance bottlenecks in large-scale deployments. The community addressed these by:

  • Refactoring the application controller to handle concurrent operations more efficiently.
  • Optimizing database queries to reduce latency.

What Changed from 2.14?

Here's a summary of the most notable changes between Argo CD 2.14 and 3.0:

Feature/Area2.14 Behavior3.0 Behavior
ConfigurationRedundant fields and complex YAMLSimplified and streamlined YAML structure
Sync PerformanceModerate speed, occasional delaysUp to 40% faster sync operations
UI/UXBasic light theme, limited customizationDark mode, customizable dashboards
RBACLimited granularity in permissionsFine-grained RBAC policies
APIUnversioned APIsVersioned APIs for stability
Kubernetes Version SupportSupports versions as old as 1.16Minimum supported version is 1.21

Pre-Upgrade Checklist

Before starting the upgrade, ensure you:

  1. Back Up Your Data
kubectl get applications -A -o yaml > applications-backup.yaml
kubectl get appprojects -A -o yaml > projects-backup.yaml
  1. Check Kubernetes Version
    Verify your cluster runs Kubernetes 1.21 or later.

  2. Review Custom Resources

    • Check for any custom health checks.
    • Validate custom resource definitions.
    • Review application set configurations.
  3. Verify Resource Requirements
    The new version has different resource requirements:

    • Removed Redis dependency.
    • Changed memory allocation patterns.
    • Updated CPU requirements for controllers.

Backwards Compatibility & Migration

Migrating from 2.14 to 3.0 requires careful planning to ensure a smooth transition. Here’s how you can approach it:

1. Review Deprecated Features

Before upgrading, review the list of deprecated features and update your configurations accordingly. Refer to the official migration guide for detailed instructions.

2. Test in a Staging Environment

Always test the upgrade in a staging environment before applying it to production. This helps identify potential issues early and ensures minimal disruption.

3. Use Automated Tools

To simplify the migration process, use the following tools:

  • Argo CD CLI: Run argocd admin migrate to automatically update your manifests.
  • Helm Charts: If you're using Helm, update your chart version to 5.x (compatible with 3.0).

4. Monitor Post-Upgrade

After upgrading, closely monitor your applications and infrastructure. Pay attention to:

  • Sync statuses.
  • Resource utilization.
  • Logs for any errors or warnings.

Conclusion

Argo CD 3.0 is a testament to the hard work and dedication of the open-source Argo community. By focusing on simplicity, performance, and security, this release makes GitOps workflows more efficient and scalable. While upgrading requires careful planning, the benefits far outweigh the effort.

Whether you’re new to Argo CD or upgrading from 2.14, take the time to explore the new features and see how they can enhance your GitOps workflows. Together, let’s embrace the power of open-source innovation!

KubeAce Support

At KubeAce, we specialize in helping organizations implement and optimize Kubernetes solutions, including Argo CD upgrades. Our team of experts can guide you through the migration process, ensuring minimal downtime and maximum efficiency. From initial setup to advanced configurations, we’re here to support your journey.

If you need assistance with upgrading to Argo CD 3.0 or want to optimize your GitOps workflows, reach out to us today. Let’s build a more efficient and scalable future together!

Contact us at info@kubeace.com or visit our website at kubeace.com.