← Back to blog

2026-03-16 · 3 min read

Setting Up ArgoCD on Kubernetes CLuster

Prerequisites Before starting, make sure you have these installed: Docker...

#kubernetes#devops#argocd#gitops
Setting Up ArgoCD on Kubernetes CLuster

Prerequisites

Before starting, make sure you have these installed:

  • Docker (running)
  • minikube ≥ v1.30
  • kubectl ≥ v1.27
  • Helm ≥ v3.12 (optional but recommended)
  • argocd CLI

Step 1: Start Minikube

minikube start --driver=docker

Verify it's running:

kubectl get nodes

Expected output:

NAME       STATUS   ROLES           AGE   VERSION
minikube   Ready    control-plane   30s   v1.30.x

Step 2: Create the ArgoCD Namespace

kubectl create namespace argocd

Step 3: Install ArgoCD

Apply the official ArgoCD install manifest:

kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

Verify all pods are up:

kubectl get pods -n argocd

Expected output:

NAME                                                READY   STATUS    RESTARTS
argocd-application-controller-0                     1/1     Running   0
argocd-applicationset-controller-xxxxxxxxx-xxxxx    1/1     Running   0
argocd-dex-server-xxxxxxxxx-xxxxx                   1/1     Running   0
argocd-notifications-controller-xxxxxxxxx-xxxxx     1/1     Running   0
argocd-redis-xxxxxxxxx-xxxxx                        1/1     Running   0
argocd-repo-server-xxxxxxxxx-xxxxx                  1/1     Running   0
argocd-server-xxxxxxxxx-xxxxx                       1/1     Running   0

Step 4: Expose the ArgoCD UI

For local dev, port-forward the ArgoCD API server:

kubectl port-forward svc/argocd-server -n argocd 8080:443

Keep this terminal open. The UI is now available at https://localhost:8080

Step 5: Install the ArgoCD CLI

macOS (Homebrew):

brew install argocd

Linux:

curl -sSL -o argocd-linux-amd64 https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64
sudo install -m 555 argocd-linux-amd64 /usr/local/bin/argocd
rm argocd-linux-amd64

Windows (Chocolatey):

choco install argocd-cli

Step 6: Retrieve the Initial Admin Password

kubectl get secret argocd-initial-admin-secret \
  -n argocd \
  -o jsonpath="{.data.password}" | base64 -d && echo

Copy the output, this is your initial password, user name "admin"

Step 7: Log in via CLI

argocd login localhost:8080 \
  --username admin \
  --password <YOUR_PASSWORD_HERE> \
  --insecure

--insecure skips TLS verification for local dev, do NOT use in production.

Step 8: Change the Admin Password

argocd account update-password \
  --current-password <YOUR_PASSWORD_HERE> \
  --new-password <NEW_STRONG_PASSWORD>

Step 9: Register Your Cluster (optional for Minikube)

Since we're deploying to the same cluster ArgoCD runs on, register it:

argocd cluster add minikube --in-cluster

List registered clusters:

argocd cluster list

Step 10: Deploy Your First Application

This example deploys the official ArgoCD guestbook sample app:

argocd app create guestbook \
  --repo https://github.com/argoproj/argocd-example-apps.git \
  --path guestbook \
  --dest-server https://kubernetes.default.svc \
  --dest-namespace default \
  --sync-policy automated \
  --auto-prune \
  --self-heal

What each flag does:

FlagPurpose
--repoGit repo containing your manifests
--pathFolder inside the repo
--dest-serverTarget cluster (in-cluster URL)
--dest-namespaceKubernetes namespace to deploy into
--sync-policy automatedAuto-sync on every Git push
--auto-pruneDeletes resources removed from Git
--self-healReverts manual kubectl changes

Step 11: Trigger & Check Sync

Manually sync:

argocd app sync guestbook

Check app status:

argocd app get guestbook

Watch live sync status:

argocd app wait guestbook --sync

List all apps:

argocd app list

Step 12: Access the ArgoCD Web UI

Open https://localhost:8080 in your browser (accept the self-signed cert warning), log in as admin, and you'll see the guestbook app fully synced.

Bonus: Use a NodePort Instead of Port-Forward

For a more persistent local setup, patch the service to NodePort:

kubectl patch svc argocd-server \
  -n argocd \
  -p '{"spec": {"type": "NodePort"}}'

Then get the Minikube URL:

minikube service argocd-server -n argocd --url

Bonus: Enable Minikube Addons

# Enable ingress
minikube addons enable ingress

# Enable dashboard (useful for debugging)
minikube addons enable dashboard
minikube dashboard

Cleanup

To tear everything down:

# Delete the ArgoCD app
argocd app delete guestbook --cascade

# Delete ArgoCD namespace
kubectl delete namespace argocd

# Stop Minikube
minikube stop

# (Optional) Fully delete the cluster
minikube delete

Quick Reference Cheat Sheet

# Start environment
minikube start --cpus=4 --memory=8192 --driver=docker
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
kubectl port-forward svc/argocd-server -n argocd 8080:443

# Get password
kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" | base64 -d && echo

# Login
argocd login localhost:8080 --username admin --password <PASS> --insecure

# Deploy an app
argocd app create <APP> --repo <REPO_URL> --path <PATH> \
  --dest-server https://kubernetes.default.svc --dest-namespace default \
  --sync-policy automated --auto-prune --self-heal

# Sync + status
argocd app sync <APP>
argocd app get <APP>
argocd app list
Share:LinkedInXWhatsApp

This article was originally published on dev.to.

Related articles

Reactions & comments