ArgoCD Curriculum
On this page
- Prerequisites
- 1. System Requirements: Sizing and Allocations
- Local Testing / Sandbox (Minikube, K3s)
- Small Team / Standard Environment (10-50 Applications)
- Enterprise Environment (100+ Applications, Multi-Cluster Control)
- 2. Kubernetes Cluster Compatibility
- 3. Network and Security Prerequisites
- Outbound Network Access
- Inbound Network Access
- 4. Operational Best Practices: Cluster Preparation
- 5. System Prerequisite Sizing Summary
Prerequisites
In the previous module, we completed our exploration of ArgoCD's internal architecture, detailing how the web, repo, controller, and cache services interact during a GitOps reconciliation loop. With the architecture clear, we will now start Module 2: Installation & Setup.
Before installing ArgoCD, you must prepare your target Kubernetes cluster. Running production-grade continuous delivery tools requires allocating sufficient CPU, memory, and network resources, and configuring access scopes.
In this guide, we will cover the system requirements, Kubernetes cluster versions support, networking prerequisites, and namespace preparation rules.
1. System Requirements: Sizing and Allocations
ArgoCD's resource consumption scales based on the size of your infrastructure: the number of Git repositories tracked, the size of your Helm/Kustomize templates, the count of target clusters, and the number of active namespaces.
Use the following hardware recommendations:
Local Testing / Sandbox (Minikube, K3s)
For local testing or developers running simple app deployments:
- VCPU: 2 Cores
- Memory: 4GB RAM minimum
- Disk Space: 10GB available storage
Small Team / Standard Environment (10-50 Applications)
- VCPU: 4 Cores
- Memory: 8GB RAM minimum
- Disk Space: 50GB SSD storage (needed for local Git repository caches)
Enterprise Environment (100+ Applications, Multi-Cluster Control)
- VCPU: 8 Cores (Distributed across multiple agent nodes)
- Memory: 16GB RAM minimum
- Disk Space: 100GB+ high-performance SSD storage
2. Kubernetes Cluster Compatibility
ArgoCD relies on modern Kubernetes APIs to manage custom resources. Ensure your target cluster meets version compatibility rules:
- Supported Versions: Kubernetes version 1.21 or newer is required to run the latest releases of ArgoCD.
- CRD Limits: Ensure your cluster allows custom resource definitions (CRDs), as ArgoCD registers several CRDs (such as
Application,AppProject,ApplicationSet) to manage configurations.
3. Network and Security Prerequisites
To allow ArgoCD to communicate with external Git repositories and route traffic to the web console:
Outbound Network Access
The cluster nodes running ArgoCD must have outbound access to:
- Your Git repositories (e.g., ports
443for HTTPS or22for SSH connection blocks). - Your container registries (e.g., port
443to verify dynamic image tags). - The Kubernetes API endpoints of any external target clusters.
Inbound Network Access
By default, you do not need to open inbound ports on your cluster to run deployments. However, to access the web console, you must configure:
- Ingress Controllers (like Nginx Ingress or Traefik) to route external HTTPS traffic to port
8080of theargocd-server. - Or configure load balancing services (LoadBalancer) provided by your cloud provider.
4. Operational Best Practices: Cluster Preparation
- Check Kubeconfig permissions: Ensure that the user account or CI/CD runner executing the installation commands has
cluster-adminprivileges on the target cluster. - Isolate the namespace: Always install ArgoCD in a dedicated namespace (typically
argocd) to keep management tools isolated from application workloads. - Enforce Persistent Volumes: In production, configure explicitly defined Storage Classes (like AWS
ebs-gp3or GCPpd-ssd) to ensure that repo-server local caches are persistent.
5. System Prerequisite Sizing Summary
Now that we have covered the system requirements and cluster prerequisites, the next step is executing the installation. In the next section, we will cover how to install ArgoCD using the standard manifest files via kubectl.