Devtron Enterprise Installation (For enterprise trials only) - devtron-labs/utilities GitHub Wiki

This guide provides detailed instructions for installing the Devtron Enterprise edition or upgrading from the open-source (OSS) version to the Enterprise version using Helm.

Prerequisites

Before you begin, ensure the following:

  1. Helm CLI Installed: Ensure that Helm is installed on your local machine.
  2. Access to Kubernetes Cluster: You must have access to the Kubernetes cluster where Devtron will be installed.

    Important: Make sure that neither ArgoCD nor Argo Workflows are installed on this cluster, as they may interfere with the Devtron installation.

  3. Internet Access Restrictions: If your cluster restricts internet access, whitelist the registry domain *.azurecr.io (provided along with credentials) in the firewall rules.
  4. Credentials: Have the following ready, provided by the Devtron team:

Setting Up Credentials and YAML Files

Before proceeding with the installation or upgrade, export the username and token variables, and create the ent-values.yaml or ent-bom.yaml file.

export username=XXXXXXXXXXX
export token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
export registry=XXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXX.XXX

For Fresh Installation: vi ent-values.yaml

For Upgrade: vi ent-bom.yaml

Fresh Installation of Devtron Enterprise

  1. Add the Devtron Helm repository:

     kubectl create ns devtroncd
     helm repo add devtron https://helm.devtron.ai
     helm repo update devtron
    
  2. Create ImagePullSecrets in devtroncd namespace:

    kubectl create secret docker-registry devtron-image-pull-enterprise \
       --namespace devtroncd \
       --docker-server=$registry \
       --docker-username=$username \
       --docker-password=$token
    

Note: If you have received a custom ent-values.yaml file from the Devtron team, please use that file during installation. If not, you can proceed with the default file provided above.

  1. Installing Devtron Without Integrations (Devtron Enterprise Kubernetes Dashboard)

    helm install -n devtroncd devtron  devtron/devtron-operator  -f ent-values.yaml \
    --set components.dashboard.registry=$registry --set components.devtron.registry=$registry \
    --set components.kubelink.registry=$registry
    

    Installing Devtron Full Mode:

    helm install devtron devtron/devtron-operator -f ent-values.yaml --namespace devtroncd \
    --set installer.modules={cicd} --set argo-cd.enabled=true --set security.enabled=true  \
    --set notifier.enabled=true  --set security.trivy.enabled=true --set monitoring.grafana.enabled=true \
    --set components.dashboard.registry=$registry --set components.devtron.registry=$registry \
    --set components.kubelink.registry=$registry --set components.gitsensor.registry=$registry \
    --set security.imageScanner.registry=$registry 
    

Upgrading Existing OSS Devtron to Enterprise

Note: Follow Step 1 only if you installed Devtron before June 8, 2024, and are on a version lower than 0.7.x. Run the following command to check your current Devtron version:

helm list -n devtroncd | grep devtron | awk '{print $10}'
  1. Set Release Name, Update Labels, and Annotations
    (Only if running Devtron version lower than 0.7.x):
export RELEASE_NAME=devtron

kubectl -n devtron-ci label sa --all "app.kubernetes.io/managed-by=Helm" --overwrite
kubectl -n devtron-ci annotate sa --all "meta.helm.sh/release-name=$RELEASE_NAME" "meta.helm.sh/release-namespace=devtroncd" --overwrite

kubectl -n devtron-cd label sa --all "app.kubernetes.io/managed-by=Helm" --overwrite
kubectl -n devtron-cd annotate sa --all "meta.helm.sh/release-name=$RELEASE_NAME" "meta.helm.sh/release-namespace=devtroncd" --overwrite
  1. Create ImagePullSecrets in devtroncd and Run helm repo update
helm repo add devtron https://helm.devtron.ai
helm repo update devtron

kubectl create secret docker-registry devtron-image-pull-enterprise \
  --namespace devtroncd \
  --docker-server=$registry \
  --docker-username=$username \
  --docker-password=$token

Note: If you have received a custom ent-bom.yaml file from the Devtron team, please use that file during upgrade. If not, you can proceed with the default file provided above.

  1. Upgrade the Devtron Stack
helm upgrade -n devtroncd devtron devtron/devtron-operator \
  --reuse-values \
  -f ent-bom.yaml \
  --set components.dashboard.registry=$registry \
  --set components.devtron.registry=$registry \
  --set components.kubelink.registry=$registry \
  --set components.gitsensor.registry=$registry \
  --set security.imageScanner.registry=$registry

For any issues or additional support, please contact the Devtron Enterprise support team quoted in the email.