Skip to main content
  1. Posts/
  2. Learning ArgoCD/

Getting Started

2026

Installing ArgoCD on Rancher Desktop (Local)

·654 words·4 mins
Installing ArgoCD on Rancher Desktop (Local) # Prerequisites # 1 2 3 # Confirm you're on the right cluster kubectl config current-context # should print: rancher-desktop kubectl get nodes # should show lima-rancher-desktop Ready 1. Install ArgoCD # 1 2 3 4 kubectl create namespace argocd kubectl apply -n argocd --server-side --force-conflicts \ -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml --server-side --force-conflicts is required. The ArgoCD install manifest is large enough that a plain kubectl apply (client-side) hits the annotation size limit and silently skips some CRDs - including ApplicationSet. Without it the argocd-applicationset-controller will CrashLoopBackOff immediately after install. --force-conflicts handles any field manager conflicts on re-apply.

Deploying a Sample App via ArgoCD

·736 words·4 mins
Deploying a Sample App via ArgoCD # What We Built # A minimal nginx app managed entirely by ArgoCD using Kustomize overlays. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 config/sample-app/ base/ deployment.yaml # nginx:1.27, replicas: 2 service.yaml # ClusterIP on port 80 kustomization.yaml overlays/ local/ kustomization.yaml # references ../../base apps/sample-app/ application.yaml # ArgoCD Application CRD bootstrap/ repo-secret.yaml # git-ignored - applied manually once Key Concepts # The GitOps Loop # 1 Push to Git → ArgoCD detects change → Syncs to cluster → Cluster matches Git ArgoCD continuously compares desired state (Git) against actual state (cluster). Any drift is automatically corrected because selfHeal: true is set in the sync policy.

Local DNS via Traefik Ingress (`ravikrs.local`)

·1098 words·6 mins
Local DNS via Traefik Ingress (ravikrs.local) # What We Set Up # A local DNS convention using /etc/hosts so all cluster services are reachable via hostname - no kubectl port-forward needed. Traefik (bundled with Rancher Desktop k3s) is the single ingress entrypoint. URL Service http://argocd.ravikrs.local ArgoCD UI http://sample-app.ravikrs.local nginx sample app How It Works # 1 2 Browser → /etc/hosts resolves ravikrs.local → 127.0.0.1 → Traefik (port 80) → routes by hostname → backend Service Rancher Desktop binds the k3s Traefik LoadBalancer to 127.0.0.1:80 on your Mac. Any hostname you point at 127.0.0.1 in /etc/hosts will reach Traefik, which then routes to the correct Service based on the host: rule in the Ingress manifest.