-
Notifications
You must be signed in to change notification settings - Fork 531
docs: update development.md #6258
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,89 @@ | ||
# 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) | ||
### 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](https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/(url)) 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 necessary service ports (e.g., PostgreSQL, NATS) for local access | ||
|
||
``` | ||
#Required | ||
kubectl -n devtroncd port-forward svc/devtron-nats 4222:4222 # Allows event driven communictation between microservices. | ||
kubectl -n devtroncd port-forward svc/postgresql-postgresql 5432:5432 #Allows your local code to connect to the database running in the cluster. | ||
|
||
#Optional | ||
kubectl -n devtroncd port-forward svc/argocd-server 8000:80 #Required to interact with ArgoCD's API (GitOps) | ||
kubectl -n devtroncd port-forward svc/argocd-dex-server 5556:5556 #Required for SSO Logins. | ||
kubectl -n devtroncd port-forward svc/kubelink-service 50051:50051 #Required for no-gitops (helm) and fetches the status of resources. | ||
kubectl -n devtroncd port-forward svc/git-sensor-service 7070:80 # Monitors Git repositories for changes and triggers appropriate workflows in Devtron. | ||
``` | ||
|
||
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) | ||
- Install [wire](https://github.com/google/wire) (Required) | ||
- Run the server: | ||
|
||
```bash | ||
make run | ||
satyampsoni marked this conversation as resolved.
Show resolved
Hide resolved
|
||
``` | ||
|
||
This will start your server on `localhost:8080`. | ||
satyampsoni marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
## Cleanup | ||
|
||
``` | ||
1. Uninstall Devtron and delete the 'devtroncd' namespace | ||
helm uninstall devtron -n devtroncd | ||
kubectl delete namespace devtroncd | ||
|
||
2. Remove the local Devtron codebase | ||
rm -rf ~/go/src/github.com/devtron-labs/devtron | ||
``` | ||
## Contributing | ||
Please check [contributing guidelines](https://github.com/devtron-labs/devtron/blob/main/CONTRIBUTING.md) | ||
|
||
## 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. | ||
|
||
|
||
|
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.