Tools: Setting Up ArgoCD on Minikube for a Local Dev Environment
Prerequisites
Step 1 — Start Minikube
Step 2 — Create the ArgoCD Namespace
Step 3 — Install ArgoCD
Step 4 — Expose the ArgoCD UI
Step 5 — Install the ArgoCD CLI
Step 6 — Retrieve the Initial Admin Password
Step 7 — Log in via CLI
Step 8 — Change the Admin Password
Step 9 — Register Your Cluster (optional for Minikube)
Step 10 — Deploy Your First Application
Step 11 — Trigger & Check Sync
Step 12 — Access the ArgoCD Web UI
Bonus: Use a NodePort Instead of Port-Forward
Bonus: Enable Minikube Addons
Cleanup
Quick Reference Cheat Sheet Before starting, make sure you have these installed: Apply the official ArgoCD install manifest: Verify all pods are up: For local dev, port-forward the ArgoCD API server: Keep this terminal open. The UI is now available at https://localhost:8080 Windows (Chocolatey): Copy the output — this is your initial password, user name "admin" --insecure skips TLS verification for local dev — do NOT use in production. Since we're deploying to the same cluster ArgoCD runs on, register it: List registered clusters: This example deploys the official ArgoCD guestbook sample app: Watch live sync status: 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. For a more persistent local setup, patch the service to NodePort: Then get the Minikube URL: To tear everything down: Templates let you quickly answer FAQs or store snippets for re-use. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse
minikube start --driver=docker
minikube start --driver=docker
minikube start --driver=docker
kubectl get nodes
kubectl get nodes
kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 30s v1.30.x
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 30s v1.30.x
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 30s v1.30.x
kubectl create namespace argocd
kubectl create namespace argocd
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
kubectl get pods -n argocd
kubectl get pods -n argocd
kubectl get pods -n argocd
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
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
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
kubectl port-forward svc/argocd-server -n argocd 8080:443
kubectl port-forward svc/argocd-server -n argocd 8080:443
kubectl port-forward svc/argocd-server -n argocd 8080:443
brew install argocd
brew install argocd
brew install argocd
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
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
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
choco install argocd-cli
choco install argocd-cli
choco install argocd-cli
kubectl get secret argocd-initial-admin-secret \ -n argocd \ -o jsonpath="{.data.password}" | base64 -d && echo
kubectl get secret argocd-initial-admin-secret \ -n argocd \ -o jsonpath="{.data.password}" | base64 -d && echo
kubectl get secret argocd-initial-admin-secret \ -n argocd \ -o jsonpath="{.data.password}" | base64 -d && echo
argocd login localhost:8080 \ --username admin \ --password <YOUR_PASSWORD_HERE> \ --insecure
argocd login localhost:8080 \ --username admin \ --password <YOUR_PASSWORD_HERE> \ --insecure
argocd login localhost:8080 \ --username admin \ --password <YOUR_PASSWORD_HERE> \ --insecure
argocd account update-password \ --current-password <YOUR_PASSWORD_HERE> \ --new-password <NEW_STRONG_PASSWORD>
argocd account update-password \ --current-password <YOUR_PASSWORD_HERE> \ --new-password <NEW_STRONG_PASSWORD>
argocd account update-password \ --current-password <YOUR_PASSWORD_HERE> \ --new-password <NEW_STRONG_PASSWORD>
argocd cluster add minikube --in-cluster
argocd cluster add minikube --in-cluster
argocd cluster add minikube --in-cluster
argocd cluster list
argocd cluster list
argocd cluster list
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
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
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
argocd app sync guestbook
argocd app sync guestbook
argocd app sync guestbook
argocd app get guestbook
argocd app get guestbook
argocd app get guestbook
argocd app wait guestbook --sync
argocd app wait guestbook --sync
argocd app wait guestbook --sync
argocd app list
argocd app list
argocd app list
kubectl patch svc argocd-server \ -n argocd \ -p '{"spec": {"type": "NodePort"}}'
kubectl patch svc argocd-server \ -n argocd \ -p '{"spec": {"type": "NodePort"}}'
kubectl patch svc argocd-server \ -n argocd \ -p '{"spec": {"type": "NodePort"}}'
minikube service argocd-server -n argocd --url
minikube service argocd-server -n argocd --url
minikube service argocd-server -n argocd --url
# Enable ingress
minikube addons enable ingress # Enable dashboard (useful for debugging)
minikube addons enable dashboard
minikube dashboard
# Enable ingress
minikube addons enable ingress # Enable dashboard (useful for debugging)
minikube addons enable dashboard
minikube dashboard
# Enable ingress
minikube addons enable ingress # Enable dashboard (useful for debugging)
minikube addons enable dashboard
minikube dashboard
# 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
# 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
# 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
# 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
# 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
# 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 - Docker (running)
- minikube ≥ v1.30
- kubectl ≥ v1.27
- Helm ≥ v3.12 (optional but recommended)