In order to deploy Gitpod on the Google Kubernetes Engine (GKE) of the Google Cloud Platform (GCP), you need to create and configure a project for your installation. In this guide, we give you examples of how to create the needed resources by using the command line tool gcloud
. To follow these examples make sure you have installed the gcloud
CLI and logged in to your Google Cloud account. You can also use the GCP Console or the API instead. In that case, please refer to the linked Google docs.
First, create a GCP project and enable billing (you have to enable billing to enable GKE). You can freely choose a name for your project (hereinafter referred to as environment variable PROJECT_NAME
). You also need the billing account ID (referred to as BILLING_ACCOUNT
). To see available lDs, run gcloud alpha billing accounts list
.
PROJECT_NAME=gitpod
gcloud projects create "${PROJECT_NAME}" --set-as-default
BILLING_ACCOUNT=0X0X0X-0X0X0X-0X0X0X
gcloud alpha billing projects link "${PROJECT_NAME}" \
--billing-account "${BILLING_ACCOUNT}"
You can verify that the proper project has been set as default with this command:
gcloud config get-value project
After you created your project, you need to enable the following services in this project:
Services | ||
---|---|---|
cloudbilling.googleapis.com | Google Billing API | Billing is required to set up a GKE cluster. |
containerregistry.googleapis.com | Docker container images registry | Enable this service such that Gitpod can push workspace images to that repository. |
iam.googleapis.com | Identity and Access Management (IAM) API | To create and use service accounts for the setup. |
compute.googleapis.com | Google Compute Engine API | The Google Compute Engine empowers to run virtual machines (VMs) for the Kubernetes cluster. |
container.googleapis.com | Kubernetes Engine API | The Kubernetes engine is where we will deploy Gitpod to. |
dns.googleapis.com | Cloud DNS | Cloud DNS is used in this reference architecture so set up the domain name resolution. |
sqladmin.googleapis.com | Cloud SQL Admin API | Cloud SQL for MySQL is used as database service in this reference architecture. |
Run these commands to enable the services:
gcloud services enable cloudbilling.googleapis.com
gcloud services enable containerregistry.googleapis.com
gcloud services enable iam.googleapis.com
gcloud services enable compute.googleapis.com
gcloud services enable container.googleapis.com
gcloud services enable dns.googleapis.com
gcloud services enable sqladmin.googleapis.com
Now, you are prepared to create your Kubernetes cluster.