docs/operator-manual/installation.md
Argo CD has two types of installations: multi-tenant and core.
The multi-tenant installation is the most common way to install Argo CD. This type of installation is typically used to service multiple application developer teams in the organization and maintained by a platform team.
The end-users can access Argo CD via the API server using the Web UI or argocd CLI. The argocd CLI has to be configured using argocd login <server-host> command.
Two types of installation manifests are provided:
Not recommended for production use. This type of installation is typically used during an evaluation period for demonstrations and testing.
[!NOTE] The ClusterRoleBinding in the installation manifest is bound to a ServiceAccount in the argocd namespace. Be cautious when modifying the namespace, as changing it may cause permission-related errors unless the ClusterRoleBinding is correctly adjusted to reflect the new namespace.
argocd cluster add <CONTEXT> --in-cluster --namespace <YOUR NAMESPACE>).
With the default roles included, you will only be able to deploy Argo CD resources (Applications, ApplicationSets
and AppProjects) in the same cluster, as it's only supporting the GitOps mode with real deployments being
done to external clusters.
You can modify that by defining new roles and binding them to the argocd-application-controller service account.[!NOTE] Argo CD CRDs are not included into namespace-install.yaml. and have to be installed separately. The CRD manifests are located in the manifests/crds directory. Use the following command to install them:
kubectl apply --server-side --force-conflicts -k https://github.com/argoproj/argo-cd/manifests/crds\?ref\=stable
High Availability installation is recommended for production use. This bundle includes the same components but tuned for high availability and resiliency.
ha/install.yaml - the same as install.yaml but with multiple replicas for supported components.
ha/namespace-install.yaml - the same as namespace-install.yaml but with multiple replicas for supported components.
The Argo CD Core installation is primarily used to deploy Argo CD in headless mode. This type of installation is most suitable for cluster administrators who independently use Argo CD and don't need multi-tenancy features. This installation includes fewer components and is easier to set up. The bundle does not include the API server or UI, and installs the lightweight (non-HA) version of each component.
Installation manifest is available at core-install.yaml.
For more details about Argo CD Core please refer to the official documentation.
The Argo CD manifests can also be installed using Kustomize. It is recommended to include the manifest as a remote resource and apply additional customizations using Kustomize patches.
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: argocd
resources:
- https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
For an example of this, see the kustomization.yaml used to deploy the Argoproj CI/CD infrastructure.
If you want to install Argo CD in a namespace other than the default argocd, you can use Kustomize to apply a patch that updates the ClusterRoleBinding to reference the correct namespace for the ServiceAccount. This ensures that the necessary permissions are correctly set in your custom namespace.
Below is an example of how to configure your kustomization.yaml to install Argo CD in a custom namespace:
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
This patch ensures that the ClusterRoleBinding correctly maps to the ServiceAccount in your custom namespace, preventing any permission-related issues during the deployment.
The Argo CD can be installed using Helm. The Helm chart is currently community maintained and available at argo-helm/charts/argo-cd.
For detailed information regarding Argo CD's version support policy, please refer to the Release Process and Cadence documentation.
The following table shows the versions of Kubernetes that are tested with each version of Argo CD.
{!docs/operator-manual/tested-kubernetes-versions.md!}