Introduction to Argo CD
Table of Contents
1 - What is Argo CD?
Definition
Argo CD is a declarative continuous delivery tool for Kubernetes, following the GitOps principles.
Key characteristics
| Characteristic | Description |
|---|---|
| Declarative | The desired state is defined in Git |
| GitOps native | Git as the source of truth |
| Kubernetes native | Designed specifically for K8s |
| CNCF Graduated | Mature and widely adopted project |
| Web UI | Powerful graphical interface |
History
- 2018: Created by Intuit (TurboTax, QuickBooks)
- 2020: Joined the CNCF as an Incubating project
- 2022: Became CNCF Graduated (maximum maturity)
- Today: +15,000 GitHub stars, used by thousands of companies
🔝 Back to table of contents
2 - Architecture
Main components
Role of each component
| Component | Role |
|---|---|
| API Server | Exposes the REST API, manages the UI and CLI |
| Repo Server | Clones Git repos, generates manifests |
| Application Controller | Compares desired vs actual state, reconciles |
| Redis | Cache for sessions and data |
| Dex | SSO authentication (optional) |
Data flow
🔝 Back to table of contents
3 - Why use Argo CD?
Benefits
| Benefit | Description |
|---|---|
| Intuitive UI | Visualization of applications and resources |
| Easy rollback | Return to any version via Git |
| Multi-cluster | Manage multiple clusters from a single Argo CD |
| Self-healing | Automatic drift reconciliation |
| Extensible | Hooks, plugins, notifications |
Before/after comparison
# Sans Argo CD
git pull
kubectl apply -f manifests/
# Qui a fait quoi ? Quand ? État actuel ?
# Avec Argo CD
git push # C'est tout !
# Argo CD synchronise automatiquement
# Historique complet dans l'UI
Success metrics
| Metric | Before | With Argo CD |
|---|---|---|
| Deployment time | 15-30 min | 2-5 min |
| Rollback | 30+ min | 1 min (git revert) |
| Visibility | Low | Complete |
| Audit | Manual | Automatic |
🔝 Back to table of contents
4 - Argo CD vs other tools
Argo CD vs Flux
| Criterion | Argo CD | Flux |
|---|---|---|
| Native UI | Excellent | No (Weave GitOps) |
| Architecture | All-in-one | Modular toolkit |
| Learning curve | Easy | Medium |
| Multi-cluster | Centralized | Distributed |
| Image Automation | Via extension | Native |
| CNCF Status | Graduated | Graduated |
Argo CD vs Jenkins/GitLab CI
| Criterion | Argo CD | Traditional CI/CD |
|---|---|---|
| Model | Pull (GitOps) | Push |
| Credentials | Internal to cluster | Exposed in CI |
| Self-healing | Yes | No |
| Specialization | K8s only | General-purpose |
When to choose Argo CD?
- Kubernetes in production
- Need for a UI for teams
- Multi-cluster management
- Team new to GitOps
🔝 Back to table of contents
5 - Use cases
Companies using Argo CD
| Company | Usage |
|---|---|
| Intuit | Creator, 2500+ microservices |
| IBM | OpenShift GitOps based on Argo CD |
| Red Hat | OpenShift GitOps |
| Adobe | Multi-cloud deployments |
| Tesla | Kubernetes infrastructure |
Typical scenarios
🔝 Back to table of contents
6 - Hands-on exercises
Quiz
Q1. What is Argo CD's deployment model?
Answer
Pull model: Argo CD pulls changes from Git and applies them to the cluster, unlike the push model where CI pushes to the cluster.
Q2. Which Argo CD component compares the desired state and the actual state?
Answer
The Application Controller constantly compares the desired state (in Git) with the actual state (in the cluster) and reconciles if necessary.
Q3. Why is Argo CD more secure than a classic CI/CD pipeline?
Answer
- No external credentials to the cluster
- The agent is internal to the cluster
- Principle of least privilege
- Reduced attack surface
🔝 Back to table of contents
Key takeaways
- Argo CD = GitOps for Kubernetes
- Architecture: API Server, Repo Server, Controller
- Pull model: more secure than push
- Excellent native UI for visibility
- CNCF Graduated: maturity and adoption