Install Devtron OSS
Introduction​
Devtron OSS is the open-source edition of Devtron intended for non-enterprise users.
The table below shows the installation options available in Devtron OSS. Further, there are steps given to install your preferred option in your Kubernetes cluster.
| Installation Option | What Is Included | When To Use |
|---|---|---|
| Minimal (without integrations) | Dashboard + Resource Browser + Core operator configurations | A unified view of Helm apps, FluxCD apps, ArgoCD apps, and their related K8s resources |
| With CI/CD | Everything in Minimal + Build and Deploy (CI/CD) module | You need a complete CI-CD pipeline for your custom apps (a.k.a Devtron Apps) |
| With CI/CD + GitOps (Argo CD) | Everything in CI/CD + GitOps (Argo CD) module | You need automated, Git-driven deployments |
Begin with the Minimal version. You can always install CI/CD and GitOps integrations later from Devtron Stack Manager.
Prerequisites​
- Kubernetes cluster v1.16 or later (cloud or local)
- Helm v3.8+ installed
- For production cases, fulfill the Infrastructure Recommendations
Install 'AWS EBS CSI' driver using the following command:
helm repo add aws-ebs-csi-driver https://kubernetes-sigs.github.io/aws-ebs-csi-driver
helm repo update
helm upgrade --install aws-ebs-csi-driver \
--namespace kube-system aws-ebs-csi-driver/aws-ebs-csi-driver
K3s does not include a default storage provisioner, so before you run Helm install in Step 2, apply the Rancher local-path-provisioner to enable dynamic storage:
kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/deploy/local-path-storage.yaml
See Additional Installation Resources for production infra recommendations, air-gapped installs, blob storage, config overrides, StorageClass, Database, Ingress setup, backups, and more.
Step 1: Add Devtron Helm Repository​
helm repo add devtron https://helm.devtron.ai
helm repo update devtron
Step 2: Choose an Installation Option​
Option A: Minimal (without integrations)​
After you add Devtron Helm Repository run the command below:
helm install devtron devtron/devtron-operator \
--create-namespace --namespace devtroncd
Option B: Install Devtron with CI/CD​
After you add Devtron Helm Repository run the command below:
helm install devtron devtron/devtron-operator \
--create-namespace --namespace devtroncd \
--set installer.modules={cicd}
Option C: Install Devtron with CI/CD + GitOps (ArgoCD)​
After you add Devtron Helm Repository run the command below:
helm install devtron devtron/devtron-operator \
--create-namespace --namespace devtroncd \
--set installer.modules={cicd} \
--set argo-cd.enabled=true
It usually takes 5-15 minutes to spin up all Devtron microservices (depending on your installation option).
You may check the status by running the command below. If the output is Applied, Devtron is installed.
kubectl -n devtroncd get installers installer-devtron \
-o jsonpath='{.status.sync.status}'
Step 3: Obtain the Dashboard URL​
- For EKS/AKS/GKE
- MicroK8s/Kind/K3s (and Cloud VMs)
- Minikube
To access the dashboard on EKS, AKS, or GKE cluster, run the following command:
kubectl get svc -n devtroncd devtron-service -o jsonpath='{.status.loadBalancer.ingress}'
Dashboard URL: The LoadBalancer URL displayed in the output
You have a few different ways to open the Devtron dashboard on local or VM-based clusters.
Pick the method that works best for you: quick port-forward, persistent NodePort, or remote access via kubeconfig.
Accessing the Dashboard locally (MicroK8s/Kind/K3s)​
Run the following command to port-forward the devtron service to port 8000
kubectl -n devtroncd port-forward service/devtron-service 8000:80
Dashboard URL: http://127.0.0.1:8000
Accessing the Dashboard via NodePort​
If you prefer NodePort instead of port-forwarding, reinstall Devtron with:
--set components.devtron.service.type=NodePort
Then run the following command to get the port number assigned to the service:
kubectl get svc -n devtroncd devtron-service -o jsonpath='{.spec.ports[0].nodePort}'
Dashboard URL: http://<HOST_IP>:<NODEPORT>/dashboard
Accessing the Dashboard locally from a remote VM (Port Forwarding via Kubeconfig)​
If Devtron is installed on a remote VM (e.g., AWS EC2, Azure VM, GCP Compute Engine) using MicroK8s, Kind, or K3s, run the following commands one-by-one:
scp user@cloud-vm-ip:/path/to/kubeconfig ~/.kube/config
kubectl config use-context <context-name> # Set the correct context.
kubectl -n devtroncd port-forward service/devtron-service 8000:80
Dashboard URL: http://127.0.0.1:8000
Run the following command:
minikube service devtron-service --namespace devtroncd
Dashboard URL: (Directly opens in your browser)
Step 4: Log in to Devtron​
-
From your browser, visit the Dashboard URL (obtained in the previous step) to view the login page of Devtron.
-
Enter
adminin the username. -
Run the below command to get your password.
kubectl -n devtroncd get secret devtron-secret \
-o jsonpath='{.data.ADMIN_PASSWORD}' | base64 -d
You should see the Devtron Dashboard post successful login.
After the initial login, we recommend you set up an Single Sign-On (SSO) service like Google, GitHub, etc., and then add other members (including yourself). Thereafter, they can log in using the configured SSO.