Skip to content

Installation Methods

The controller should be installed in the same Kubernetes namespace that Argo CD is running in (the argocd namespace in most cases). The provided installation files plug the Monorepo Controller components in the existing Argo CD installation, reusing its configuration in the argocd-cmd-params-cm and argocd-cm configmaps.

Potentially it is possible to run the controller from another namespace, but it will require extra configuration and currently this is not supported.

Note

If you use ApplicationSet controller it is important to configure it to ignore Monorepo Controller Annotations

Method 1: Installing using provided plain manifests

We provide two installation manifests:

  • install.yaml - with cluster-wide permissions to watch Application manifests in any namespece
  • install-namespaced.yaml - for a namespaced ArgoCD instance that will watch Application only in the ArgoCD namespace.

Cluster-wide Installation

Apply the manifest in the ArgoCD namespace:

kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj-labs/argocd-monorepo-controller/refs/heads/stable/manifests/install.yaml

Warning

The installation manifests include ClusterRoleBinding resources that reference argocd namespace. If you are installing Argo CD into a different namespace then make sure to update the namespace reference in the install.yaml file.

Namespaced Installation

Apply the manifest in the ArgoCD namespace:

kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj-labs/argocd-monorepo-controller/refs/heads/stable/manifests/install-namespaced.yaml

Method 2: Installing using kustomize

The Monorepo Controller manifests can also be installed using Kustomize. You may include the above manifests as a remote resource and apply additional customizations using Kustomize patches.

For example

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

namespace: argocd
resources:
- https://raw.githubusercontent.com/argoproj-labs/argocd-monorepo-controller/refs/heads/stable/manifests/install.yaml

Method 3: Installing using Helm

The Monorepo Controller manifests can also be installed using Helm.

The Helm chart is maintained in the same Git repository as the Monorepo Controller itself and released together with the Monorepo Controller.

In simple cases it can be installed with the command:

helm install <RELEASE-NAME> --namespace argocd "quay.io/eugened/argocd-monorepo-controller:<VERSION>"
  • <RELEASE-NAME> - user selected release name
  • <VERSION> - chart version, which is same as the version of the application release

In more complex cases one would need to customize the values.yaml file. See Helm Chart Documentation for available options.