> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/argoproj/argo-cd/llms.txt
> Use this file to discover all available pages before exploring further.

# Installation Overview

> Choose the right Argo CD installation method for your needs

Argo CD offers flexible installation options to suit different use cases, from testing to production deployments. Choose the installation method that best fits your requirements.

## Installation Types

Argo CD has two primary installation types:

<CardGroup cols={2}>
  <Card title="Multi-Tenant" icon="users" href="#multi-tenant-installation">
    Full-featured installation with UI, API, and RBAC for serving multiple teams
  </Card>

  <Card title="Core" icon="cube" href="/installation/core-mode">
    Lightweight headless installation for single-cluster GitOps
  </Card>
</CardGroup>

## Multi-Tenant Installation

The multi-tenant installation is the most common deployment method, typically maintained by a platform team to service multiple application developer teams.

### Standard Installation

<Info>
  Recommended for: Testing, demonstrations, and single-cluster deployments
</Info>

The standard installation includes all Argo CD components with single replicas:

**Components:**

* API Server (argocd-server)
* Repository Server (argocd-repo-server)
* Application Controller (argocd-application-controller)
* Redis
* Dex (for SSO)
* ApplicationSet Controller
* Notifications Controller

<Card title="Standard Installation" icon="download" href="/installation/kubernetes">
  Get started with the standard installation
</Card>

### High Availability Installation

<Warning>
  Production environments should use the HA installation for reliability and resiliency
</Warning>

The HA installation includes the same components but configured for high availability:

**Key Differences:**

* Multiple replicas for critical components
* Redis HA with Sentinel
* Pod anti-affinity rules
* Requires at least 3 nodes

<Card title="HA Installation" icon="layer-group" href="/installation/high-availability">
  Set up Argo CD for production
</Card>

## Installation Comparison

<Tabs>
  <Tab title="Standard vs HA">
    | Component              | Standard                | High Availability               |
    | ---------------------- | ----------------------- | ------------------------------- |
    | API Server             | 1 replica               | Multiple replicas               |
    | Repo Server            | 1 replica               | Multiple replicas               |
    | Application Controller | 1 replica (StatefulSet) | Multiple replicas (StatefulSet) |
    | Redis                  | Single instance         | Redis HA with Sentinel          |
    | Use Case               | Testing, demos          | Production                      |
    | Min Nodes              | 1                       | 3 (due to anti-affinity)        |
    | IPv6 Support           | Yes                     | No                              |
  </Tab>

  <Tab title="Multi-Tenant vs Core">
    | Feature       | Multi-Tenant   | Core                   |
    | ------------- | -------------- | ---------------------- |
    | Web UI        | ✓ Full access  | ✓ Local dashboard only |
    | CLI           | ✓ Full access  | ✓ With --core flag     |
    | API Server    | ✓              | ✗                      |
    | RBAC          | ✓ Argo CD RBAC | ✗ Kubernetes RBAC only |
    | OIDC Auth     | ✓              | ✗                      |
    | Notifications | ✓              | ✗                      |
    | Multi-tenancy | ✓ API-based    | ✓ GitOps-based         |
    | Best For      | Multiple teams | Single admin/team      |
  </Tab>
</Tabs>

## Cluster Access Modes

Argo CD supports two cluster access modes:

### Cluster-Admin Access

**install.yaml** - Standard installation with cluster-admin access

* Use when Argo CD manages applications in the same cluster it runs in
* Can deploy to `kubernetes.svc.default` (in-cluster)
* Can also deploy to external clusters with credentials
* Includes ClusterRole and ClusterRoleBinding

<Note>
  The ClusterRoleBinding is bound to a ServiceAccount in the `argocd` namespace. Be cautious when changing the namespace - update the ClusterRoleBinding accordingly.
</Note>

### Namespace-Level Access

**namespace-install.yaml** - Installation with namespace-level privileges only

* Use when Argo CD only deploys to external clusters
* No cluster-level permissions required
* Ideal for multi-instance deployments (different teams/namespaces)
* Can still deploy to same cluster with explicit credentials
* Only deploys Argo CD resources (Applications, ApplicationSets, AppProjects) locally

<Warning>
  Argo CD CRDs are not included in namespace-install.yaml and must be installed separately.
</Warning>

## Installation Methods

Argo CD manifests can be installed using multiple methods:

<Tabs>
  <Tab title="kubectl">
    Direct installation using kubectl:

    ```bash theme={null}
    kubectl create namespace argocd
    kubectl apply -n argocd --server-side --force-conflicts \
      -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
    ```

    <Note>
      The `--server-side --force-conflicts` flags are required because some CRDs exceed the size limit for client-side apply.
    </Note>
  </Tab>

  <Tab title="Kustomize">
    Install using Kustomize for easier customization:

    ```yaml theme={null}
    apiVersion: kustomize.config.k8s.io/v1beta1
    kind: Kustomization

    namespace: argocd
    resources:
      - https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
    ```

    Apply with:

    ```bash theme={null}
    kustomize build . | kubectl apply --server-side --force-conflicts -f -
    ```
  </Tab>

  <Tab title="Helm">
    Install using the community-maintained Helm chart:

    ```bash theme={null}
    helm repo add argo https://argoproj.github.io/argo-helm
    helm install argocd argo/argo-cd -n argocd --create-namespace
    ```

    <Note>
      The Helm chart is maintained at [argo-helm/charts/argo-cd](https://github.com/argoproj/argo-helm/tree/main/charts/argo-cd).
    </Note>
  </Tab>
</Tabs>

## Custom Namespace Installation

To install Argo CD in a custom namespace, use Kustomize to patch the ClusterRoleBinding:

```yaml theme={null}
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

namespace: <your-custom-namespace>
resources:
  - https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

patches:
  - patch: |-
      - op: replace
        path: /subjects/0/namespace
        value: <your-custom-namespace>
    target:
      kind: ClusterRoleBinding
```

## Next Steps

<Steps>
  <Step title="Choose Installation Type">
    Select between [Standard](/installation/kubernetes), [High Availability](/installation/high-availability), or [Core Mode](/installation/core-mode) based on your requirements.
  </Step>

  <Step title="Install Argo CD">
    Follow the installation guide for your chosen deployment method.
  </Step>

  <Step title="Access the UI">
    Retrieve the initial admin password and access the Argo CD UI.
  </Step>

  <Step title="Configure">
    Set up repositories, projects, and applications.
  </Step>
</Steps>

## Version Support

For detailed information about Argo CD's version support policy and tested Kubernetes versions, refer to the [Release Process documentation](https://argo-cd.readthedocs.io/en/stable/developer-guide/release-process-and-cadence/).
