diff --git a/developers-guide/README.md b/developers-guide/README.md index 7d9e669742..f915b268a3 100644 --- a/developers-guide/README.md +++ b/developers-guide/README.md @@ -1,12 +1,68 @@ -# Local Devtron Dev Setup +# Development Guide for Devtron -For all the open source contributors out there looking for contributing to Devtron’s code base, here’s how easily you can start contributing in Devtron. +This document provides instructions for setting up a development environment to help you get started with contributing to [Devtron](github.com/devtron-labs/devtron). Make sure to review the [contributing.md](https://github.com/devtron-labs/devtron/blob/main/CONTRIBUTING.md) file for more details on contributing. This document will help guide you through understanding the build process. -## Prerequisite -Any kubernetes Cluster +## Requirements +- [Go Programming language](https://go.dev/) +- [Docker](https://www.docker.com/) +- [Kubernetes Cluster](https://kubernetes.io/) +- [Helm v3](https://helm.sh/) ## Setup Guide -We have documented some of the most popular and easiest ways of creating local kubernetes clusters and setting up the development environment for devtron in our machine. -* [Over Minikube Cluster](https://dev.to/arushi09/local-kubernetes-development-made-easy-with-minikube-devtron-17hf) -* [Over k3s Cluster using k3d](https://hackernoon.com/how-to-install-k3d-and-devtron-locally-for-local-kubernetes-development) \ No newline at end of file +### Install Devtron in a Kubernetes cluster + +1. [Create a Kubernetes Cluster](https://docs.devtron.ai/getting-started#create-a-kubernetes-cluster) + - 2 vCPUs + - 4GB+ of free memory + - 20GB+ free disk space + +2. [Install Devtron with CI/CD along with GitOps (Argo CD) - Full mode](https://docs.devtron.ai/install/install-devtron-with-cicd-with-gitops) + + ```bash + helm repo add devtron https://helm.devtron.ai + helm repo update devtron + helm install devtron devtron/devtron-operator \ + --create-namespace --namespace devtroncd \ + --set installer.modules={cicd} \ + --set argo-cd.enabled=true + ``` + + Note: If you want to install Devtron on a Managed Kubernetes cluster, please [refer to the guide](https://docs.devtron.ai/install/demo-tutorials). + +3. Download the kubeconfig file to access your cluster. It’s a good idea to set it up locally and configure the context to point to the specific cluster you’re working with. + +4. Forward the port of PostgreSQL service and Devtron NATS service: + + ```bash + kubectl -n devtroncd port-forward svc/devtron-nats 4222:4222 + kubectl -n devtroncd port-forward svc/postgresql-postgresql 5432:5432 + ``` + +5. Use this command to extract the password of PostgreSQL (Required to put in ENV): + + ```bash + kubectl exec -it -n devtroncd postgresql-postgresql-0 -- printenv | grep POSTGRES_PASSWORD + ``` + +### Prepare Your Local Workspace + +Navigate to the `github.com` directory on your local machine: + +- `cd go/src/github.com` +- `git clone http://github.com/devtron-labs/devtron` +- Configure [Environment Variables](https://github.com/devtron-labs/devtron/blob/main/scripts/dev-conf/envfile.env) +- Run the server: + + ```bash + make run + ``` + +This will start your server on `localhost:8080`. + +### Need help? + +If you’re looking for the fastest response to your questions, we encourage you to visit our Discord community. Specifically, you can post your inquiries in the [#setup-and-installation](https://discord.com/channels/769482988882493450/801441246849007667) channel, where our team and community members are actively available to assist you on discord channel. + + +