Overview
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. This quickstart guide will walk you through installing Argo CD, accessing the UI and CLI, and deploying your first application from a Git repository.This guide assumes you have:
- A running Kubernetes cluster
kubectlinstalled and configured- A kubeconfig file (default location:
~/.kube/config) - CoreDNS enabled (for microk8s:
microk8s enable dns && microk8s stop && microk8s start)
Installation
Install Argo CD
Create the This creates all Argo CD services and application resources in the For production use, pin to a specific version:
argocd namespace and install Argo CD using the official manifests:argocd namespace.Why
--server-side --force-conflicts?The --server-side flag is required because some Argo CD CRDs (like ApplicationSet) exceed the 262KB annotation size limit imposed by client-side kubectl apply. Server-side apply avoids this limitation by not storing the last-applied-configuration annotation.The --force-conflicts flag allows the apply operation to take ownership of fields that may have been previously managed by other tools.Install Argo CD CLI
Download and install the Argo CD CLI to interact with Argo CD from your terminal.Verify the installation:
Access Argo CD
By default, the Argo CD API server is not exposed externally. Choose one of the following methods to access it:
Port Forwarding (Recommended for Testing)
Port Forwarding (Recommended for Testing)
Service Type LoadBalancer
Service Type LoadBalancer
Expose the service with a LoadBalancer (requires cloud provider support):Get the external IP:
Ingress
Ingress
For production environments, configure an Ingress resource. See the Argo CD Ingress documentation for detailed configuration.
Login to Argo CD
Retrieve the initial admin password:The password is auto-generated and stored in the Use username
argocd-initial-admin-secret secret.Login using the CLI:admin and the password from the previous command.Change the admin password:If the CLI can’t directly access the API server, use port forwarding:
- Add
--port-forward-namespace argocdto each command, or - Set
ARGOCD_OPTSenvironment variable:export ARGOCD_OPTS='--port-forward-namespace argocd'
Create Your First Application
Deploy the example guestbook application from the Argo CD demo repository.Set the default namespace:Create the application using the CLI:Or create using a declarative YAML manifest:Apply the manifest:
Sync the Application
View the application status:Output:The application is initially This retrieves manifests from Git and performs a
OutOfSync because resources haven’t been deployed yet.Sync (deploy) the application:kubectl apply. View the deployed resources:You can also sync from the UI:
- Navigate to the Applications page
- Click the Sync button on the guestbook application
- Click Synchronize in the panel
Next Steps
Core Concepts
Learn about Applications, sync status, health checks, and GitOps principles
Architecture
Understand Argo CD’s component architecture and how they work together
Configure Auto-Sync
Enable automated synchronization for continuous deployment
Multi-Cluster Setup
Register external clusters for multi-cluster deployments
Optional: Register External Clusters
To deploy applications to external clusters (not the cluster where Argo CD is running):argocd-manager) in the target cluster’s kube-system namespace and binds it to an admin-level ClusterRole.
When deploying to the same cluster where Argo CD runs, use
https://kubernetes.default.svc as the destination server. No cluster registration is needed.