- Configure Your Project
- Docker Configuration
- Start Tasks
- VS Code Extensions
- Exposing Ports
- Prebuilt Workspaces
- Environment Variables
- Workspace Location
- Editor Configuration
- Gitpod Self-Hosted
- Install on Google Cloud Platform
- Install on Amazon Web Services
- Install on self-managed Kubernetes
- Configure Ingress
- Configure OAuth
- Configure a Database
- Configure a Docker Registry
- Configure Storage
- Configure Nodes
- Configure Workspaces
- Languages & Frameworks
Configure the nodes (computers or virtual machines) that Kubernetes runs Gitpod’s workspace pods on.
Gitpod schedules two kinds of workloads: the Gitpod installation itself (which we refer to as meta) and the workspaces. Ideally both types of workloads run on seperate nodes to make makes scaling easier. Depending on your cluster size that may not be feasible though. Either way, you need two node labels in your cluster:
gitpod.io/workload_meta=truewhich marks the “meta” nodes and
gitpod.io/workload_workspace=truewhich marks the workspace nodes.
If you want to “mix ‘n match”, i.e., don’t separate the nodes, you can simply run:
kubectl label node --all gitpod.io/workload_meta=true gitpod.io/workload_workspace=true
Gitpod relies on the node’s filesystem for making workspace content available, as well as for storing Theia. By default workspace data is placed in
/data and Theia is copied to
/theia. Depending on your node setup the root filesystem maybe read-only or slow.
We recommend you change those two paths so that they’re located on an SSD or some other form of fast local storage.
To do this:
Merge the following into your
components: nodeDaemon: # Gitpod copies Theia to each node. This setting configures where Theia is copied to. # We'll copy Theia to $theiaHostBasePath/theia/theia-$version # The faster this location is (in terms of IO) the faster nodes will become available and the faster workspaces will start. theiaHostBasePath: /mnt/disks/ssd0 imageBuilder: # The image builder deploys a Docker-in-Docker-daemon. By default that Docker daemon works in an empty-dir on the node. # Depending on the types of node you operate that may cause image builds to fail or not perform well. We recommend you give the Docker daemon # fast storage on the node, e.g. an SSD. hostDindData: /mnt/disks/ssd0/docker wsDaemon: # Workspace data is stored on the nodes. This setting configures where on the ndoe the workspace data lives. # The faster this location is (in terms of IO) the faster workspaces will initialize. hostWorkspaceArea: /mnt/disks/ssd0/workspaces
helm upgrade --install -f values.custom.yaml gitpod gitpod.io/gitpodto apply the changes.
Note that Helm does not merge hierarchies in a single file. Please make sure there is only ever one
componentshierarchy or the last one overwrites all previous values.
Still Have Questions?
Please reach out. We’re happy to answer them.