Skip to main content
This guide covers the standard (non-HA) installation of Argo CD on Kubernetes. This installation is suitable for testing, demonstrations, and non-production environments.
The standard installation is not recommended for production use. For production deployments, use the High Availability installation.

Prerequisites

  • Kubernetes cluster (version 1.27+)
  • kubectl CLI configured to access your cluster
  • Cluster-admin access (for standard installation)

Installation

1

Create the namespace

Create a dedicated namespace for Argo CD:
2

Apply the installation manifest

Install Argo CD using the stable release:
The --server-side --force-conflicts flags are required because some Argo CD CRDs exceed the size limit for client-side apply.
For a specific version, replace stable with the version tag:
3

Verify installation

Wait for all pods to be ready:
You should see the following components:

Installed Components

The standard installation includes the following components:

API Server (argocd-server)

  • Type: Deployment (1 replica)
  • Purpose: Provides the Web UI and gRPC/REST API
  • Exposes: Port 8080 (HTTP), 8083 (HTTPS)

Application Controller (argocd-application-controller)

  • Type: StatefulSet (1 replica)
  • Purpose: Monitors applications and reconciles desired state
  • Watches: Git repositories and Kubernetes clusters

Repository Server (argocd-repo-server)

  • Type: Deployment (1 replica)
  • Purpose: Clones Git repos and generates manifests
  • Supports: Helm, Kustomize, Jsonnet, and custom plugins

Manifest Structure

The install.yaml manifest contains:
The ClusterRoleBinding is bound to the ServiceAccount in the argocd namespace. If you change the namespace, update the ClusterRoleBinding accordingly.

Accessing Argo CD

Access the API server using kubectl port-forward:
Then access the UI at https://localhost:8080

Initial Admin Password

Retrieve the initial admin password:
Login with:
  • Username: admin
  • Password: (retrieved from command above)
Change the admin password after first login and delete the argocd-initial-admin-secret secret.

Namespace-Level Installation

For installations that only deploy to external clusters, use the namespace-install variant:
The namespace-install.yaml does not include:
  • ClusterRole or ClusterRoleBinding
  • CRDs (must be installed separately)
  • Ability to deploy to the local cluster without explicit credentials

Installing with Kustomize

Create a kustomization.yaml file:
Apply with:

Custom Namespace

To install in a custom namespace:

Upgrading

To upgrade to a new version:
Replace <version> with the desired version tag (e.g., v2.14.0).
Always review the upgrade notes before upgrading to a new version.

Uninstalling

To remove Argo CD:

Next Steps

Configure SSO

Set up Single Sign-On authentication

Add Repositories

Connect Git repositories to Argo CD

Create Applications

Deploy your first application

High Availability

Upgrade to HA for production

Troubleshooting

Check resource requests and node capacity:
The standard installation requires moderate resources. Consider adjusting resource requests if needed.
Verify the argocd-server service is running:
Check if port-forwarding is active and not blocked by firewalls.
If you see errors about CRD size limits, ensure you’re using the --server-side --force-conflicts flags: