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

Operations & Debugging

2026

Gotcha: argocd-repo-server CrashLoopBackOff (copyutil "Already exists")

·468 words·3 mins
Gotcha: argocd-repo-server CrashLoopBackOff (copyutil “Already exists”) # Symptom # ArgoCD UI shows: 1 2 Unable to load data: connection error: desc = "transport: Error while dialing: dial tcp <cluster-ip>:8081: connect: connection refused" And on any Application detail page: 1 2 3 Failed to load target state: failed to generate manifest for source 1 of 2: rpc error: code = Unavailable desc = connection error: ... dial tcp <cluster-ip>:8081: connect: connection refused What Port 8081 Is # Port 8081 is the argocd-repo-server - the component that renders manifests (Kustomize, Helm, plain YAML). If it’s down, ArgoCD can’t diff or sync any app.

Stakater Reloader: Why We Added It, and Why We Removed It

·771 words·4 mins
Stakater Reloader: Why We Added It, and Why We Removed It # The Problem It Was Trying to Solve # Kubernetes does not restart pods when a ConfigMap or Secret they reference is updated. This is by design - but it creates a gap in GitOps workflows: you change argocd-cmd-params-cm, ArgoCD syncs the ConfigMap, and nothing happens. The pod continues running with the old in-memory values.

Debugging: Traefik 404 on Minikube (Rancher Desktop Port Conflict)

·1572 words·8 mins
Debugging: Traefik 404 on Minikube (Rancher Desktop Port Conflict) # The Symptom # After bootstrapping the eu-prod-minikube environment and running minikube tunnel, all services were Synced and Healthy in ArgoCD. TLS certificates were issued. Ingresses had EXTERNAL-IP: 127.0.0.1. Yet every request returned 404. 1 2 curl -sk https://svc1.eu-prod-minikube.ravikrs.local -o /dev/null -w "%{http_code}" # 404 Debugging Layer by Layer # Layer 1 - Is it an ArgoCD sync problem? # First check: are all applications actually healthy, or is something not synced?

GitHub Webhook for Instant Sync

·1141 words·6 mins
GitHub Webhook for Instant Sync # What This Covers # Why ArgoCD’s default polling is slow, how GitHub webhooks replace polling with event-driven sync, and how to wire it up for a local cluster using ngrok - including a shared HMAC secret so ArgoCD can verify requests really came from GitHub.

Postmortem: Stale App Paths and Gateway Resource Conflicts

·1120 words·6 mins
Postmortem: Stale App Paths and Gateway Resource Conflicts # Date: 2026-03-02 Cluster: eu-dev-rancher (Rancher Desktop / k3s) Trigger: Multiple ArgoCD apps showing Unknown sync or Degraded health after the platform/ → infra/ rename refactor Summary # After renaming platform/ to infra/ and environments/*/platform/ to environments/*/apps/ (commit cc7bdf3), five ArgoCD issues emerged: