|
| 1 | +# Installer |
| 2 | + |
| 3 | +The best way to get started with Gitpod self-hosted |
| 4 | + |
| 5 | +> This guide assumes that a compatible infrastructure is in place. Please |
| 6 | +> refer to the [Gitpod docs](https://www.gitpod.io/docs/self-hosted/latest/installation) |
| 7 | +> for instructions on how to create the infrastructure. |
| 8 | +
|
| 9 | +# Key Concepts |
| 10 | + |
| 11 | +The Installer is a complete replacement for our Helm charts. Over time, |
| 12 | +this had grown to be too complex to effectively support and was a barrier |
| 13 | +to entry for new users - the base config was many hundreds of lines long |
| 14 | +and did not have effective validation on it. By contrast, the Installer's |
| 15 | +config is < 50 lines long and can be fully validated before running. |
| 16 | + |
| 17 | +Conceptually, the process is now: |
| 18 | +1. generate a base config |
| 19 | +2. amend the config for your own use-case |
| 20 | +3. validate |
| 21 | +4. render the Kubernetes YAML |
| 22 | +5. `kubectl apply` |
| 23 | + |
| 24 | +# Quickstart |
| 25 | + |
| 26 | +## Create a gitpod-installer script |
| 27 | + |
| 28 | +```shell |
| 29 | +#!/bin/bash |
| 30 | + |
| 31 | +VERSION="${VERSION:-main.1844}" |
| 32 | + |
| 33 | +docker run -it --rm \ |
| 34 | + -v $PWD:/gitpod \ |
| 35 | + -v $HOME/.kube:/root/.kube \ |
| 36 | + eu.gcr.io/gitpod-core-dev/build/installer:${VERSION} \ |
| 37 | + $@ |
| 38 | +``` |
| 39 | + |
| 40 | +Save this in your `$PATH` as `gitpod-installer` and make executable |
| 41 | + |
| 42 | +## Generate the base config |
| 43 | + |
| 44 | +```shell |
| 45 | +gitpod-installer init > config.yaml |
| 46 | +``` |
| 47 | + |
| 48 | +## Validate |
| 49 | + |
| 50 | +```shell |
| 51 | +# Checks the validity of the configuration YAML |
| 52 | +gitpod-installer validate config --config /gitpod/config.yaml |
| 53 | + |
| 54 | +# Checks that your cluster is ready to install Gitpod |
| 55 | +gitpod-installer validate cluster --kubeconfig /root/.kube/config --config /gitpod/config.yaml |
| 56 | +``` |
| 57 | + |
| 58 | +Any errors here must be fixed before deploying. See [Cluster Dependencies](#cluster-dependencies) |
| 59 | +and [Config](#config) for more details. |
| 60 | + |
| 61 | +## Render the YAML |
| 62 | + |
| 63 | +```shell |
| 64 | +gitpod-installer render --config /gitpod/config.yaml > gitpod.yaml |
| 65 | +``` |
| 66 | + |
| 67 | +## Deploy |
| 68 | + |
| 69 | +```shell |
| 70 | +kubectl apply -f gitpod.yaml |
| 71 | +``` |
| 72 | + |
| 73 | +# Cluster Dependencies |
| 74 | + |
| 75 | +# Config |
| 76 | + |
| 77 | +# Todo |
| 78 | + |
| 79 | +PRs/comments welcome |
| 80 | + |
| 81 | +- [ ] [Improve distribution of gitpod-installer binaries](https://github.com/gitpod-io/gitpod/issues/6766) |
0 commit comments