Install Gitpod Self-Hosted on Kubernetes

This section describes how to install Gitpod on any Kubernetes cluster using Helm. This is the most flexible and generic way of installing Gitpod. The chart for stable releases resides in Helm repository charts.gitpod.io, charts for branch-builds can be found here, and the source of the charts is in our public git repository.

For some platforms we offer Terraform scripts that ease the infrastructure setup. Once the script has created the necessary infrastructure it will output a values.terraform.yaml that contains infrastructure-specific configuration for the helm deployment.

Prerequisites

As we at Gitpod follow a “Saas First” strategy we have a very limited set of platforms that we support.

You still might get Gitpod to run on other platforms (especially with the help of our awesome community) but there will be no support from Gitpod for those efforts.

Requirements regarding the Kubernetes the cluster:

  • Workspace nodes require Ubuntu = 18.04 as Host OS at the moment

  • Gitpod should work on small Kubernetes nodes out of the box (2vCPUs, 8GB RAM). For a better experience we recommend at least 4vCPUs and 16GB RAM for workspaces nodes. For cost efficiency, we recommend to enable cluster-autoscaling.

You need the following “local” tools to follow this guide:

  • kubectl with connection to your cluster

  • helm in version >= 3.

Installation

To install Gitpod in your Kubernetes cluster, follow these steps:

  1. Create a file values.custom.yaml with the following content:

    rabbitmq:
      auth:
        username: your-rabbitmq-user
        password: your-secret-rabbitmq-password
    minio:
      accessKey: your-random-access-key
      secretKey: your-random-secret-key

    You should replace the keys with 2 different random strings unique for your installation.

  2. Run the following commands in your local terminal:

    helm repo add gitpod.io https://charts.gitpod.io
    
    helm install -f values.custom.yaml gitpod gitpod.io/gitpod --version=0.9.0
  3. Configure domain and https.

  4. Run kubectl get pods and verify that all pods are in state RUNNING. If some are not, please see the Troubleshooting Guide.

  5. Go to https://\ and follow the steps to complete the installation.

Upgrade

  1. Check the Upgrade Guide and follow the steps outlined there.

  2. Run the update

    helm install -f values.custom.yaml gitpod gitpod.io/gitpod --version=0.9.0
  3. Run kubectl get pods and verify that all pods are in state RUNNING. If some are not, please see the Troubleshooting Guide.

By default, the Helm chart installs a working Gitpod installation in a lot of scenarios. Yet, there are certain things you might want to review when installing Gitpod for long term use and/or a bigger audience:

  • Database: Configure where Gitpod stores all internal runtime data.
  • Storage: Configure where Gitpod persists workspace content.
  • Docker Registry: Configure where Gitpod stores workspace images.

Customization

Further customizations:

Install Branch Build

To try the latest version of Gitpod, freshly build form the master branch of our git repository or any other branch, follow these steps:

  1. Obtain the version name from werft.gitpod-dev.com. The version has the format <branchname>.<buildnumber> (e.g master.354).

  2. The Helm chart ships as part of our installer docker image. You can extract it by running:

    docker run --entrypoint cp -v $PWD:/workspace gcr.io/gitpod-io/self-hosted/installer:<version> -R /dist/helm/ /workspace
Was this helpful?