Subtopic•Installing ArgoCD

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 443 for HTTPS or 22 for SSH connection blocks).
  • Your container registries (e.g., port 443 to 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 8080 of the argocd-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-admin privileges 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-gp3 or GCP pd-ssd) to ensure that repo-server local caches are persistent.

5. System Prerequisite Sizing Summary

Sizing TiervCPU AllocationMemory AllocationCore Use Case
Sandbox2 Cores4GB RAMLocal developer testing, K3s.
Staging4 Cores8GB RAMDedicated QA / Staging testing clusters.
Production8 Cores16GB RAMHigh-availability enterprise setups.

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.

←Previous ModuleIntroduction to ArgoCD