paint-brush
How to install Devtron over k3s by@abhinavd26
500 reads
500 reads

How to install Devtron over k3s

by Abhinav DubeyAugust 27th, 2021
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

Installing Devtron - An opensource Heroku-like platform over k3s - lightweight kubernetes. Devtron is an end-to-end software delivery workflow for Kubernetes

Company Mentioned

Mention Thumbnail
featured image - How to install Devtron over k3s
Abhinav Dubey HackerNoon profile picture


In this blog, we will set up Devtron over k3s - Lightweight Kubernetes. If you haven't heard about Devtron yet, let's take a moment to walk you through it. Devtron is an open-source AppOps solution that caters and supports end-to-end software delivery workflow for Kubernetes, written in Go. It can be used for the deployment of your applications over Kubernetes through simple configurations over user-intuitive UI.

Why k3s?

Devtron is cloud-agnostic and can easily be installed over the k3s cluster. Let’s understand about k3s - Lightweight Kubernetes, shall we? It is essentially a lightweight version of Kubernetes that can be installed in a binary less than 100MB. It can be installed as a single-node as well as multi-node cluster and is fully compatible and production-ready Kubernetes distribution.

Some of the advantages of having k3s cluster are -

  • Less System Resources
  • Quick Cluster Setup
  • Easy to add Worker Nodes (k3s-agent)
  • Lightweight
  • All features as that of k8s

For more detailed understanding of k3s, please feel free to read my another article, All about k3s, where I explained everything need to know about k3s from scratch.

K3s Cluster Setup

Before we get started and install Devtron, we need to set up the k3s cluster in our servers. We will be setting up a single node cluster. Please execute the following commands to set up the single-node k3s cluster for Devtron.


The only thing we need to do is set up the k3s server/master node where the necessary configuration files will be installed. The command below downloads and sets up the master node in the server with an extra flag for setting up the right permission of the KubeConfig file.

curl -sfL https://get.k3s.io | sh -s - --write-kubeconfig-mode 644


Please note that the below command is not mandatory for setting up the k3s cluster, but for Devtron installation, we need to deploy the local-path-storage as it will create hostPath to dynamically provision Persistent Volume (PV) based on Persistent Volume Claim (PVC) for Devtron installation.

kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/deploy/local-path-storage.yaml


Congratulations! You have successfully set up the k3s cluster. To verify the nodes, please execute the command - kubectl get nodes, it will result in the nodes which are created. For the single cluster setup, you will find only one node as control-plane,master.


[Note: You need to deploy all the commands in the same cluster where the master is being installed]

System Configurations for Devtron Installation

  • 2 CPUs+ cores
  • 4GB+ of free memory
  • 20GB+ free disk space

Devtron Installation

After the cluster is successfully set up, we are ready to go with the Devtron installation over it. Installing Devtron is quite a straightforward process with just a few commands. It can be installed using helm3, helm2, and kubectl. For this particular demonstration, we will be using helm3. If you haven’t installed helm3 in your k3s cluster, please follow along -

Helm3 Setup

Before moving ahead, let’s set up helm3 in our cluster. The helm3 can be installed in the traditional way. Please follow the commands for installation -

The below command will download the helm3 installation script on our server.

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3


Making the script executable so that we can run the helm3 installation script.

chmod 700 get_helm.sh


The command below will execute the installation script and download helm3 on our server.

./get_helm.sh


To make the helm interact with the k3s master, we need to set up the path of the KUBECONFIG file. Please execute the following command -

export KUBECONFIG=/etc/rancher/k3s/k3s.yaml


For detailed information about the KUBECONFIG file in the k3s cluster, please refer to this documentation.

Devtron Installation

Now, as we have successfully set up our cluster for Devtron Installation, please execute the following commands, and let’s complete the Devtron installation with just a few simple commands -

The command below will add the Devtron repo in helm known repositories:

helm repo add devtron https://helm.devtron.ai


The below command will install Devtron in the provided namespace, i.e., devtroncd. The install command initiates Devtron-operator, which spins up all the Devtron micro-services one by one in about 15-20 mins.

helm install devtron devtron/devtron-operator --create-namespace --namespace devtroncd --set installer.modules={cicd}


To check the status of the installation, please execute the following command. If the installation is still in progress, it will print Downloaded. And when the installation is complete, it prints Applied.

kubectl -n devtroncd get installers installer-devtron -o jsonpath='{.status.sync.status}'


After the installation, we need to access the Devtron dashboard with the right credentials. For this blog, we will be using the concept of NodePort as a service type to access the dashboard. Please execute the following command and edit the type from LoadBalancer to NodePort.

kubectl edit svc devtron-service -n devtroncd

The command will open the editor for you. Press i for insert mode, change type from LoadBalancer to NodePort and then enter :wq to save and exit the editor mode.


To verify that the changes have been made, please execute the following command. It will give all the services running with their port number. For Devtron-service, please note down the port number given. It will be used for accessing the dashboard.

kubectl get svc -n devtroncd


After changing the type, we are now ready to access the dashboard. To do so, type the IP of the server with the port number given for devtron-service. For admin credentials, the username is admin , and for the password, run the below command.

kubectl -n devtroncd get secret devtron-secret -o jsonpath='{.data.ADMIN_PASSWORD}' | base64 -d


Kudos! We have successfully installed Devtron in our single node k3s cluster and accessed the dashboard. For any doubts, feel free to comment or read the official documentation of Devtron.

What Next?

Now that we have configured the k3s cluster and successfully installed Devtron over it, we are ready to begin our first app creation and deployment through Devtron. The Application Deployment process needs a dedicated blog itself. Feel free to check out our documentation for a detailed understanding of App Deployment along with the Configuration of Devtron after installation.