Skip to content

Pre‐requisites for setting up Devtron

Prakarsh edited this page Apr 11, 2024 · 10 revisions

This document outlines the pre-requisites required to set up Devtron for application management and CI/CD workflows.

Infrastructure Requirements

Devtron requires a functional Kubernetes cluster to operate. Here's a breakdown of the necessary infrastructure components:

Kubernetes Cluster

  • Ensure you have a properly configured Kubernetes cluster with sufficient resources (CPU, memory) to handle Devtron and your applications. Devtron recommends using Kubernetes version 1.16 or higher for optimal performance.
  • NODES: Devtron recommends having 2 node-pools/node-groups, one for Devtron workloads and another dedicated one for build (CI workloads). Keep both the Node pools in the same Zone to avoid inter-zone cost.

    • Devtron node pool: 4vCPU and 8GB recommended for Devtron without GitOps, 8vCPU and 16GB recommended for Devtron with Gitops.
    • Devtron CI node pool: 4vCPU and 8GB recommended with taints dedicated: "ci:NoSchedule" and label purpose: ci
  • STORAGE CLASS: A Storage Class defines how persistent volumes (storage for your applications) are provisioned in your cluster. You'll need a storage class configured based on your preferred storage solution (e.g., local storage, cloud storage).

Blob Storage

  • Devtron utilizes blob storage for logs and cache data. You can configure Devtron to use an S3-compatible bucket or any blob storage solution accessible from your cluster. A MINIO based S3 compatible storage solution can also be setup within the Devtron stack if no blob storage is available.
  • Please create the following blob storage buckets and ensure it's R/W access from the Devtron cluster.
  1. <org-name>-devtron-ci-logs (versioning disabled, retention policy: Delete post 365 days or after if required)
  2. <org-name>-devtron-ci-cache (versioning disabled, retention policy: Delete after 180 days)

Global Configuration Requirements

Once you have your Devtron stack set up, you'll need to configure Devtron with global configurations for functionalities like access and integrations. Here are a few things you should be ready with in order to configure Devtron Global configurations. You can also refer to the complete Global Documentation

  • Devtron Host URL:
    • The Devtron dashboard URL where Devtron can be accessed. This dashboard can be hosted on a URL such as devtron.your-organization.com.
      • Access for DNS mapping of devtron.your-organization.com to the LoadBalancer IP.
      • Please be prepared with SSL certificates/Certificate ARNs or a utility like Kcert can be installed for management of SSL certs.
  • GitOps:
    • Devtron supports GitOps workflows for managing application deployments with GIT as the single source of truth. You'll need to specify the Git credentials in order and Devtron will automate the creation of repos and ensure committing your configs to the respective repos as soon as a deployment is initiated from Devtron. If you enable Gitops while installing Devtron, an ArgoCD stack will also be installed along with Devtron. Please refer to the Devtron Gitops documentation to create a free Github Organization/Gitlab groups/Bitbucket workspace/Azure Devops Project.

GITOPS: We strongly recommend using a separate (other than your code org/group/workspace/project) Github Organization/Gitlab groups/Bitbucket workspace/Azure Devops Project that has very restrictive view access to the users within your organization as it will host your application manifests and a change to it may initiate a deployment in your target Kuberentes clusters.

  • Ensure you've created a separate (other than your code org/group/workspace/project) Github Organization/Gitlab groups/Bitbucket workspace/Azure Devops Project that has very restrictive access to people in your organization.
  • Ensure you have arranged credentials for the gitops org/group/workspace/project that you got created for gitops that has access to create repositories/write/read for Devtron.
  • Git Accounts:
    • Be prepared with credentials for Git accounts that will be used by Devtron to access your application code. This allows Devtron to clone code and build container images. Ensure that the credentials that you use have access to all the code repos that you wish to build for using Devtron. You can also add multiple git-accounts on Devtron. Refer Git account documentation
  • Container/ OCI Registry:
    • Be prepared with the container registry credentials (e.g. Amazon ECR, Azure ACR, Docker Hub, Quay, GHCR, or any other private registry) where your application container images will be stored. Devtron will push container images or Helm charts (In case of OCI compliant registries) to this registry after build. Refer Container / OCI Registry documentation
  • SSO Configurations:
    • Be prepared with SSO configurations. Devtron supports Single Sign-On (SSO) integrations for user authentication. Configure Devtron to use an SSO provider like Google, GitHub, LDAP, Microsoft Azure AD etc., to simplify user authentication. Refer Devtron SSO Configuration documentation

Please ensure that all the items in this checklist are completed before proceeding with the Devtron onboarding process. If you have any questions or need assistance, refer to our official documentation or reach out to our support team for help. We're here to ensure a seamless onboarding experience for you and your team!


Here's an improved version of the documentation for sharing as a pre-requisite checklist with customers before onboarding:


Pre-Requisite Checklist for Devtron Onboarding

Welcome to Devtron! Before we proceed with setting up Devtron for your application management and CI/CD workflows, let's ensure that all the necessary pre-requisites are in place. Please follow this checklist to ensure a smooth onboarding experience.

Infrastructure Requirements

Kubernetes Cluster

  • Ensure you have a properly configured Kubernetes cluster with sufficient resources (CPU, memory) to handle Devtron and your applications. Devtron recommends using Kubernetes version 1.16 or higher for optimal performance.
    • Node Configuration: Devtron recommends having two node pools/node groups, one for Devtron workloads and another dedicated one for build (CI workloads). Both node pools should be in the same zone to avoid inter-zone cost.
    • Storage Class: Set up a Storage Class based on your preferred storage solution (e.g., local storage, cloud storage).

Blob Storage

  • Configure blob storage for Devtron's logs and cache data. You can use an S3-compatible bucket or any blob storage solution accessible from your cluster. Alternatively, set up a MINIO-based S3 compatible storage solution within the Devtron stack if no blob storage is available.

Global Configuration Requirements

Devtron Host URL

  • Ensure access for DNS mapping of devtron.your-organization.com to the LoadBalancer IP.
  • Prepare SSL certificates/Certificate ARNs or install a utility like Kcert for SSL cert management.

GitOps

  • Create a separate (other than your code org/group/workspace/project) GitHub Organization/GitLab Group/Bitbucket Workspace/Azure DevOps Project with restricted access for Devtron's GitOps workflows.
  • Arrange credentials for the GitOps org/group/workspace/project with access to create repositories/write/read for Devtron.

Git Accounts

  • Prepare credentials for Git accounts to be used by Devtron for accessing your application code. Ensure these credentials have access to all the code repos you wish to build using Devtron.

Container/OCI Registry

  • Prepare credentials for the container registry where your application container images will be stored. Devtron will push container images or Helm charts to this registry after build.

SSO Configurations

  • Prepare SSO configurations. Devtron supports Single Sign-On (SSO) integrations for user authentication. Configure Devtron to use an SSO provider like Google, GitHub, LDAP, Microsoft Azure AD, etc., for simplified user authentication.

Please ensure that all the items in this checklist are completed before proceeding with the Devtron onboarding process. If you have any questions or need assistance, refer to our official documentation or reach out to our support team for help. We're here to ensure a seamless onboarding experience for you and your team!