Tutorial
Argo CD: What it is and why it should be part of your Redis CI-CD
February 26, 202611 minute read
TL;DR:Argo CD is a declarative, GitOps-based continuous delivery tool for Kubernetes. It monitors a Git repository for changes to Kubernetes manifests and automatically syncs them to your cluster. In this tutorial you will install Argo CD, connect it to a Git repo containing Redis manifests, and deploy Redis to a local Kubernetes cluster—all without manually runningkubectl apply.

#What you'll learn
- What Argo CD is and how it implements GitOps for Kubernetes
- How to install and configure Argo CD on a local Kubernetes cluster
- How to deploy a Redis application through Argo CD
- How to deploy a multi-service voting app that uses Redis as a queue
- How Argo CD keeps your cluster in sync with your Git repository
#What is Argo CD?
Argo CD is an open-source, declarative, GitOps continuous delivery tool built for Kubernetes. The name combines Argo—a CNCF-hosted container-native workflow engine—with CD (continuous delivery), the practice of automatically deploying every code change to a testing or production environment after the build stage.
Argo CD follows the GitOps methodology, which uses Git as the single source of truth for declarative infrastructure and application configuration. It watches a remote Git repository for new or updated manifest files and synchronizes those changes with the cluster. By managing manifests in Git and syncing them with the cluster, you get all the advantages of a Git-based workflow—version control, pull-request reviews, collaboration transparency—and a one-to-one mapping between what is in the Git repo and what is deployed in the cluster.
Argo CD empowers organizations to declaratively build and run cloud-native applications and workflows on Kubernetes using GitOps.

Argo CD is a pull-based, declarative, GitOps continuous delivery tool for Kubernetes with a fully loaded UI. The tool reads your environment configuration from your Git repository and applies it to your Kubernetes namespaces. App definitions, environment, and configurations should be declarative and version-controlled. App deployment and life cycle management should be automated, auditable, and easy to understand.
Built specifically to make continuous deployment to Kubernetes simpler and more efficient, Argo CD addresses several common challenges: the need to set up additional tools outside of Jenkins for a complete CI/CD pipeline to Kubernetes, the need to configure access control to Kubernetes across cloud platforms, and the need for visibility into deployment status once a new app is pushed to a cluster.
Argo CD is not just deployed inside Kubernetes—it should be considered an extension of Kubernetes, as it uses existing Kubernetes resources and functionalities like etcd and controllers to store data and monitor real-time updates of application state. If you are already using Kubernetes to run Redis workloads (for example, via the Redis Kubernetes Operator), Argo CD is a natural next step for automating deployments.
#How does Argo CD work?

Instead of pushing changes to the Kubernetes cluster, Argo CD pulls Kubernetes manifest changes and applies them. Once Argo CD is running inside your cluster, you configure it to connect and track a Git repository.
If any changes are detected, Argo CD applies those changes automatically to the cluster. Developers can commit code (for example, through Jenkins), which will automatically build a new image, push it to a container registry, and then update the Kubernetes manifest file. Argo CD pulls the updated manifest and deploys it—saving manual work, reducing the initial setup configuration, and eliminating security risks. Whatever manifest files are connected to the Git repo will be tracked and synced by Argo CD, providing a single flexible deployment tool for developers and DevOps teams.
Argo CD also watches the cluster for changes. If someone updates the cluster manually, Argo CD detects the divergence between the desired state in Git and the actual state in the cluster, then syncs the Git-defined state back to the cluster—guaranteeing that the Git repo remains the single source of truth. Argo CD can also be configured to send an alert instead of automatically overriding manual updates, if a quick direct change to the cluster is needed.
#What are Argo CD's capabilities?
Argo CD provides declarative, version-controlled application deployments with automatic monitoring and pulling of manifest changes from Git. Key capabilities include:
- Easy rollback: Revert to a previous state without manually undoing every update in the cluster.
- Web UI: A visual dashboard for monitoring and managing Kubernetes resources.
- Multiple manifest formats: Supports Kubernetes YAML files, Helm Charts, Kustomize, and other templating tools that generate Kubernetes manifests.
- CLI and metrics: A command-line interface, Grafana metrics dashboard, and audit trails for application events and API calls.
- Disaster recovery: Point a new cluster to the Git repo and Argo CD will automatically recreate the same exact state—no manual intervention required.
- Access control via Git: Configure who can commit merge requests and who can approve them, managing cluster access indirectly through Git. No need to give external tools like Jenkins direct access to cluster credentials.
#Prerequisites
Before you begin, make sure you have the following installed and configured:
- Docker Desktop with Kubernetes enabled (Settings > Kubernetes > Enable Kubernetes)
- kubectl configured to use the Docker Desktop context
- Homebrew (macOS) for installing the Argo CD CLI
#Getting started
#Step 1. Install the Argo CD CLI
#Step 2. Create a new namespace
Create a namespace called
argocd where all Argo CD resources will be installed.#Step 3. Install Argo CD resources
#Step 4. Ensure that all pods are up and running
#Step 5. Configure port forwarding for dashboard access

#Step 6. Log in

#Step 7. Install Argo CD CLI on Mac using Homebrew
#Step 8. Access the Argo CD API server
By default, the Argo CD API server is not exposed with an external IP. To access the API server, choose one of the following techniques to expose the Argo CD API server:
#Step 9. Log in to Argo CD
#Step 10. Update the password
#Step 11. Register a cluster to deploy apps to
As we are running it on Docker Desktop, we will add it accordingly.
#Step 12. Create a new Redis application
Click "Create" and provide a repository URL as https://github.com/argoproj/argo-cd/tree/master/manifests/base/redis.





#Step 13. Delete the Redis app
#Example: Voting app

Let's try to deploy a voting app. The voting application only accepts one vote per client. It does not register votes if a vote has already been submitted from a client.

- A Python web app which lets you vote between two options
- A Redis queue that collects new votes
- A .NET worker which consumes votes and stores them in…
- A Postgres database backed by a Docker volume
- A Node.js web app that shows the results of the voting in real time
Go to the Argo CD dashboard, enter the repository URL, and supply the right PATH. Click "Create App" to deploy the application on your Docker Desktop.

Next, visualize the complete application by choosing "Group by Node."

Grouping by parent resources:

Keep a close watch over the events by clicking on the "Events" section.

Below is the complete overview of the voting application.

Access the app via http://localhost:31000/.

The results are accessible via http://localhost:31001/.

#Next steps
Now that you have Argo CD deploying Redis applications to your Kubernetes cluster, here are some areas to explore next:
- Redis Kubernetes Operator: Learn how to manage Redis clusters on Kubernetes with the Redis Kubernetes Operator tutorial.
- Auto-sync policies: Configure Argo CD to automatically sync changes without manual intervention using auto-sync policies.
- Health checks: Set up custom health checks so Argo CD can verify that your Redis deployment is serving traffic correctly.
- Notifications: Configure Argo CD Notifications to send alerts to Slack, email, or other channels when deployments succeed or fail.