ArgoCD components are missing when the installation is incomplete or CRDs are not properly installed. This occurs when namespace-scoped deployments lack CustomResourceDefinitions (CRDs) or core components (API server, controller, repo server) fail to start. Fix by installing ArgoCD with all required manifests and verifying all pods are running.
The ArgoCD missing error indicates that one or more critical ArgoCD components are not installed or not running in your Kubernetes cluster. ArgoCD requires several core components: the API server (for Web UI and CLI access), application controller (for managing deployments), repo server (for Git interactions), and Custom Resource Definitions (CRDs) for Application and ApplicationSet resources. When these components are missing, ArgoCD cannot function properly.
First, ensure the namespace exists:
kubectl create namespace argocdIf namespace already exists, this command will return an error (which is safe to ignore).
Apply the complete ArgoCD installation manifest:
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yamlFor namespace-scoped installation (no cluster-wide access):
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/namespace-install.yamlNote: namespace-install.yaml requires manual CRD installation (see next step).
If using namespace-install.yaml, CRDs must be installed separately:
kubectl apply -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/crds/application-crd.yaml
kubectl apply -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/crds/applicationset-crd.yaml
kubectl apply -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/crds/appproject-crd.yamlVerify CRDs are installed:
kubectl get crd | grep argoprojCheck that all ArgoCD components are deployed and healthy:
kubectl get pods -n argocdExpected pods (multi-tenant install):
- argocd-application-controller
- argocd-applicationset-controller
- argocd-dex-server
- argocd-notifications-controller
- argocd-repo-server
- argocd-redis
- argocd-server
All pods should show status Running with 1/1 ready. If any show CrashLoopBackOff or Pending, investigate with:
kubectl describe pod <pod-name> -n argocd
kubectl logs <pod-name> -n argocdArgoCD requires Redis for caching (even though controller can run without it, it's not recommended):
kubectl get pod -n argocd -l app.kubernetes.io/name=argocd-redisIf redis pod is missing, apply the complete install.yaml which includes Redis deployment. If using Helm:
helm repo add argo https://argoproj.github.io/argo-helm
helm install argocd argo/argo-cd -n argocd --set redis.enabled=trueIf pods are running but cannot communicate, check for blocking network policies:
kubectl get networkpolicy -n argocdIf restrictive policies exist, delete them temporarily to test:
kubectl delete networkpolicy -n argocd <policy-name>Then verify connectivity. Create new policies that allow pod-to-pod communication within the argocd namespace.
Once all pods are running, forward the ArgoCD server port:
kubectl port-forward svc/argocd-server -n argocd 8080:443Access the UI at https://localhost:8080. Get the initial admin password:
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echoLogin with username: admin
For a cleaner, managed installation, use the official Helm chart:
helm repo add argo https://argoproj.github.io/argo-helm
helm repo update
helm install argocd argo/argo-cd -n argocd --create-namespaceThis ensures all required components and dependencies (including Redis, CRDs, RBAC) are installed together. Verify installation:
helm status argocd -n argocdArgoCD Core is a headless variant without API server or UIβonly use if you need controller functionality without the web interface. When using namespace-scoped install, Application CRDs must be in the same namespace as ArgoCD itself. For HA deployments, consider using argo/argo-cd Helm chart with replicas and persistence enabled. If pods are evicted due to resource pressure, increase node resources or set resource limits in values.yaml. Some cloud providers (EKS, AKS, GKE) may have pre-requirements (CNI plugins, IAM roles) that must be configured before ArgoCD can fully function.
Failed to connect to server: connection refused (HTTP/2)
How to fix "HTTP/2 connection refused" error in Kubernetes
missing request for cpu in container
How to fix "missing request for cpu in container" in Kubernetes HPA
error: invalid configuration
How to fix "error: invalid configuration" in Kubernetes
etcdserver: cluster ID mismatch
How to fix "etcdserver: cluster ID mismatch" in Kubernetes
running with swap on is not supported
How to fix "running with swap on is not supported" in kubeadm