skills/argocd-debugging/SKILL.md
Provides guidance for debugging Argo CD components both locally and in remote environments. Use when setting up IDE debug configurations for Argo CD (VSCode, GoLand), running individual Argo CD components for debugging, or using Telepresence to debug remote Argo CD deployments.
npx skillsauth add peterj/skills argocd-debuggingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Two approaches for debugging Argo CD: local debugging (run one component in your IDE while others run via local toolchain) and remote debugging (intercept a remote cluster service with Telepresence).
Run all Argo CD components except the one you want to debug using the local toolchain, then run that single component from your IDE with breakpoints.
The Procfile in the repo root contains run configuration for every component. For the component you want to debug, extract:
$COMMAND in the sh -c section$COMMANDCreate an env file (e.g., api-server.env) with the variables from the Procfile:
ARGOCD_BINARY_NAME=argocd-server
ARGOCD_FAKE_IN_CLUSTER=true
ARGOCD_GNUPGHOME=/tmp/argocd-local/gpg/keys
ARGOCD_GPG_DATA_PATH=/tmp/argocd-local/gpg/source
ARGOCD_GPG_ENABLED=false
ARGOCD_LOG_FORMAT_ENABLE_FULL_TIMESTAMP=1
ARGOCD_SSH_DATA_PATH=/tmp/argocd-local/ssh
ARGOCD_TLS_DATA_PATH=/tmp/argocd-local/tls
ARGOCD_TRACING_ENABLED=1
FORCE_LOG_COLORS=1
KUBECONFIG=/Users/<YOUR_USERNAME>/.kube/config # Must be absolute path
Install the DotENV (VSCode) or EnvFile (GoLand) plugin to load it.
See ide-configurations.md for complete VSCode and GoLand launch configuration examples.
Key args for api-server (adapt from Procfile for other components):
--loglevel debug --redis localhost:6379 --repo-server localhost:8081 --dex-server http://localhost:5556 --port 8080 --insecure
Three options to run everything except the debugged component (using api-server as example):
| Method | Command |
|---|---|
| make start-local (whitelist) | make start-local ARGOCD_START="notification applicationset-controller repo-server redis dex controller ui" |
| make run (blacklist) | make run exclude=api-server |
| goreman start (whitelist) | goreman start notification applicationset-controller repo-server redis dex controller ui |
Auth note: By default api-server runs with auth disabled. To test auth:
export ARGOCD_E2E_DISABLE_AUTH='false' && make start-local
Start the component in your IDE. Ensure each component runs exactly once (either via toolchain or IDE) to avoid port conflicts.
kubectl create ns argocd
curl -sSfL https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml | kubectl apply -n argocd -f -
kubectl config set-context --current --namespace argocd
telepresence helm install --set-json agent.securityContext={}
telepresence connect
telepresence intercept argocd-server --port 8080:http --env-file .envrc.remote
--port 8080:http — forwards remote HTTP traffic to local port 8080 (use 8080:https if TLS termination is on argocd-server)--env-file .envrc.remote — captures remote pod env vars into a local fileTraffic hitting argocd-server in the cluster is now forwarded to localhost:8080.
Terminal:
make server
./dist/argocd-server
VSCode: Use a launch config pointing to ${workspaceFolder}/cmd/main.go with envFile set to .envrc.remote and ARGOCD_BINARY_NAME=argocd-server. See ide-configurations.md.
telepresence leave argocd-server
telepresence helm uninstall
telepresence --swap-deployment argocd-server --namespace argocd --env-file .envrc.remote --expose 8080:8080 --expose 8083:8083 --run bash
telepresence status
.envrc.remote file from Telepresence lets the local process connect to remote configmaps, secrets, and microservices transparently.development
Guide for installing, configuring, and deploying SPIRE servers and agents. Use when working with SPIRE, SPIFFE, workload identity, trust domains, node attestation, workload attestation, service identity, or X.509/JWT SVIDs on Kubernetes or Linux.
development
Diagnoses and resolves common Istio service mesh problems across traffic management, security, observability, and upgrades. Use when debugging Istio networking issues (503 errors, route rules not working, TLS mismatches, gateway 404s), security problems (authorization policies, mTLS, JWT authentication), observability gaps (missing traces, Grafana output issues), EnvoyFilter breakage, or when upgrading Istio and migrating from EnvoyFilter to first-class APIs.
tools
Configures Istio traffic management including multicluster traffic control, gateway network topology (XFF/XFCC headers, PROXY protocol), protocol selection, and TLS configuration. Use when working with Istio service mesh traffic routing, multicluster setups, gateway configuration, protocol detection, mTLS settings, or when troubleshooting TLS/proxy header issues.
development
Guide for installing, deploying, debugging, and cleaning up Istio's ambient mode mesh. Use when working with Istio ambient mode, ztunnel proxies, ambient mesh traffic redirection, istio-cni, HBONE encryption, Bookinfo sample application deployment, or istioctl commands for ambient profile setup and teardown.