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 momentGitpod 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 clusterhelm
in version>= 3
.
Installation
To install Gitpod in your Kubernetes cluster, follow these steps:
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.
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
Configure domain and https.
Run
kubectl get pods
and verify that all pods are in stateRUNNING
. If some are not, please see the Troubleshooting Guide.Go to https://\
and follow the steps to complete the installation.
Upgrade
Check the Upgrade Guide and follow the steps outlined there.
Run the update
helm install -f values.custom.yaml gitpod gitpod.io/gitpod --version=0.9.0
Run
kubectl get pods
and verify that all pods are in stateRUNNING
. If some are not, please see the Troubleshooting Guide.
Recommended Configuration
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:
- Kubernetes Nodes: Configure file system layout and the workspace’s node associativity.
- Workspaces: Configure workspace sizing.
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:
Obtain the version name from werft.gitpod-dev.com. The version has the format
<branchname>.<buildnumber>
(e.gmaster.354
).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