Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Osf 3893 release 0.9.0 #4247

Closed
wants to merge 6 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions .werft/build.ts
Original file line number Diff line number Diff line change
Expand Up @@ -114,9 +114,6 @@ export async function build(context, version) {
throw new Error(`'${version}' is not semver compliant and thus cannot used for Self-Hosted releases!`)
}

werft.phase("publish", "publishing docker images...");
exec(`leeway run --werft=true install/installer:publish-as-latest -Dversion=${version} -DimageRepoBase=${imageRepo}`);

werft.phase("publish", "publishing Helm chart...");
publishHelmChart("gcr.io/gitpod-io/self-hosted", version);

Expand Down
5 changes: 5 additions & 0 deletions chart/templates/ws-proxy-configmap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,13 @@ data:
},
"proxy": {
"https": {
{{- if (and $.Values.certificatesSecret.certName $.Values.certificatesSecret.keyName) }}
"crt": "/mnt/certificates/{{ $.Values.certificatesSecret.certName }}",
"key": "/mnt/certificates/{{ $.Values.certificatesSecret.keyName }}"
{{- else }}
"crt": "/mnt/certificates/tls.crt",
"key": "/mnt/certificates/tls.key"
{{- end }}
},
"transportConfig": {
"connectTimeout": "10s",
Expand Down
4 changes: 4 additions & 0 deletions chart/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ version:
hostname: localhost
certificatesSecret:
secretName: https-certificates
certName: cert.pem
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like a step backwards from the TLS secret type we're moving to

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like a step backwards from the TLS secret type we're moving to

The goal here is to still support the certificates that come out of letsencrypt right away, by default. Otherwise we'd need to tell Self-Hosted users to do yet another step: https://www.gitpod.io/docs/self-hosted/latest/install/configure-ingress#using-lets-encrypt-to-generate-https-certificates

keyName: privkey.pem
chainName: chain.pem
fullChainName: fullchain.pem

imagePrefix: gcr.io/gitpod-io/self-hosted/
installation:
Expand Down
8 changes: 6 additions & 2 deletions docs/self-hosted/install/configure-ingress.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,14 @@ Installing Gitpod on a subdomain works as well. For example:
kubectl describe svc proxy | grep -i ingress
```

2. Create a file `values.custom.yaml` with the following content:
1. Merge the following into your `values.custom.yaml` file:
```yaml
hostname: your-domain.com
components:
proxy:
loadBalancerIP: <your-IP>
```
Specifying the `loadBalancerIP` make sure it stays the same across all redeploys.

## 2. HTTPS
Gitpod requires HTTPS certificates to function properly. We recommend using [Let's Encrypt](https://letsencrypt.org/) for retrieving certificates as we do for [gitpod.io](https://gitpod.io).
Expand All @@ -55,7 +59,7 @@ To configure the HTTPS certificates for your domain
```bash
kubectl create secret generic https-certificates --from-file=secrets/https-certificates
```
4. Afterwards, do an `helm upgrade --install -f values.custom.yaml gitpod gitpod.io/gitpod --version=0.8.0` to apply the changes.
4. Afterwards, do an `helm upgrade --install -f values.custom.yaml gitpod gitpod.io/gitpod --version=0.9.0` to apply the changes.

### Using Let's Encrypt to generate HTTPS certificates

Expand Down
2 changes: 1 addition & 1 deletion docs/self-hosted/install/database.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,4 @@ This chart installs a MySQL database that gets Gitpod up and running but is not
mysql:
enabled: false
```
3. Do a `helm upgrade --install -f values.custom.yaml gitpod gitpod.io/gitpod --version=0.8.0` to apply the changes.
3. Do a `helm upgrade --install -f values.custom.yaml gitpod gitpod.io/gitpod --version=0.9.0` to apply the changes.
2 changes: 1 addition & 1 deletion docs/self-hosted/install/docker-registry.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ To connect to an existing Docker registry, perform the following steps:

> This does not work for Google Cloud Registries because their login tokens are short-lived. See the [example](#example-google-cloud-registry-credentials) below on how to configure it.

3. Do a `helm upgrade --install -f values.custom.yaml gitpod gitpod.io/gitpod --version=0.8.0` to apply the changes.
3. Do a `helm upgrade --install -f values.custom.yaml gitpod gitpod.io/gitpod --version=0.9.0` to apply the changes.

Make sure the resulting JSON file contains the credentials (there should be an `auths` section containing them as base64 encoded string).

Expand Down
69 changes: 3 additions & 66 deletions docs/self-hosted/install/install-on-aws-script.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,71 +2,8 @@
url: /docs/self-hosted/latest/install/install-on-aws-script/
---

> Since the `0.6.0` release (December 2019) the installers are deprecated. They are no longer working to their full extend and will be removed in a future release.
> Since the `0.6.0` release (December 2020) the installers have been deprecated and have been removed with the `0.9.0` release (April 2021).

# Getting started with Gitpod on AWS

This guide explains how to install an instance of Gitpod with 3 simple steps:

## 1. Get your AWS credentials

You need an [AWS account](https://aws.amazon.com/). Once you have access to an account, follow [these steps](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html) to obtain valid credentials.

```bash
export AWS_ACCESS_KEY_ID=...
export AWS_SECRET_ACCESS_KEY=...
```

### Note:
- Setting up an AWS account the first time can take some time as they require - and test for - a valid credit card.


## 2. Run the installer image
```bash
mkdir -p $PWD/awsinstall
docker run --rm -it \
-e AWS_ACCESS_KEY_ID \
-e AWS_SECRET_ACCESS_KEY \
-v "$PWD/awsinstall":"/workspace" \
gcr.io/gitpod-io/self-hosted/installer:0.8.0 aws
```

This will kickstart the installation process, authenticate with AWS and automatically set up your Gitpod deployment using Docker and Terraform.

### Note:
- This guide assumes you have the [docker](https://docs.docker.com/engine/install/) installed.

- The final step - creating the cluster - might take around 30 minutes on AWS. Good time to grab a cup of coffee!

## 3. Launch the first workspace
Once finished, the installer will print the URL at which your Gitpod installation can be found. There you need to connect Gitpod to at least one Git provider:
- [Configure an OAuth application for GitLab](/docs/gitlab-integration/#oauth-application)
- [Configure an OAuth application for GitHub](/docs/github-integration/#oauth-application)

## 4. Configure the Browser extension

Afterwards you can jump right into your first workspace, by prefixing the repository URL with your Gitpod Self-Hosted URL.

Examples:
- GitLab: `<your-installation-url>/#https://gitlab.com/gitpod/spring-petclinic`
- GitHub: `<your-installation-url>/#https://github.com/gitpod-io/spring-petclinic`

### Note:
- The local mount point `./awsinstall` will hold your Terraform config files. You can always modify them and re-run the install script in order to make changes to your Gitpod deployment.

- The first workspace start might take a up to 10 minutes because it needs to pull several docker images and initialize the registry.

## FAQ

### Q: I get "OptInRequired: You are not subscribed to this service. Please go to http://aws.amazon.com to subscribe."
A: Your account seems to be missing a credit card. Go to https://portal.aws.amazon.com/billing/signup?type=resubscribe#/resubscribed and finish the subscription process.

### Q: I get "Status Reason: The requested configuration is currently not supported"
A: Switch to another [AWS region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html) often helps. Some machine types/configurations are not available in all regions.

### Q: I get "Error: Service "proxy" is invalid: spec.ports[0].nodePort: Invalid value: 31080: provided port is already allocated" on re-applying the terraform script
A: This is a kubernetes issue on AWS. Please wait for 2-5 minutes and retry (cmp. Kubernetes issues [32987](https://github.com/kubernetes/kubernetes/issues/32987) and [73140](https://github.com/kubernetes/kubernetes/issues/73140)).

### Q: One of my pods throws errors reading "networkPlugin cni failed to set up pod "< name >" network: add cmd: failed to assign an IP address to container"
A: Seems like the pod-per-node limit is reached: https://github.com/awslabs/amazon-eks-ami/blob/master/files/eni-max-pods.txt . Please report this as this as a bug [here](https://github.com/gitpod-io/gitpod/issues).
We currently [do not support AWS as platform](https://www.notion.so/gitpod/1b9eac5cb33d42e391f86a87f0e37836?v=4f2ec7c943514ee19203b9d4fe096094) for running Gitpod.

You still might get Gitpod to run on AWS (especially with the help of our [awesome community](https://community.gitpod.io/)) but there will be no support from Gitpod for those efforts.
51 changes: 2 additions & 49 deletions docs/self-hosted/install/install-on-gcp-script.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,53 +2,6 @@
url: /docs/self-hosted/latest/install/install-on-gcp-script/
---

> Since the `0.6.0` release (December 2019) the installers are deprecated. They are no longer working to their full extend and will be removed in a future release.
> Since the `0.6.0` release (December 2020) the installers have been deprecated and have been removed with the `0.9.0` release (April 2021).

# Getting started with Gitpod on GCP

Gitpod runs best on Google Cloud Platform. That's also where [gitpod.io](https://gitpod.io) is deployed and operated at scale.
This guide explains how to install an instance of Gitpod with 4 simple steps:

## 1. Get a GCP project
You need a fresh [Google Cloud project](https://cloud.google.com/resource-manager/docs/creating-managing-projects), for which you can also use the [Google Cloud Platform trial](https://console.cloud.google.com/freetrial) with $300 worth of resources.

Once you have the project, keep its project ID handy.

## 2. Run the installer image
```bash
mkdir -p $PWD/gpinstall
docker run --rm -it \
-v $PWD/gcloud:/root/.config/gcloud \
-v $PWD/gpinstall:/workspace \
gcr.io/gitpod-io/self-hosted/installer:0.8.0 \
gcp
```

This will kickstart the installation process, log in with Google Cloud, and automatically set up your Gitpod deployment using [Terraform](https://www.terraform.io) and [Helm](https://helm.sh).

### Note:
- This guide assumes you have the [docker](https://docs.docker.com/engine/install/) installed.

- The local mount point `$PWD/gpinstall` will hold your Terraform config files. You can always modify them and re-run the install script in order to make changes to your Gitpod deployment.

- The local mount point `$PWD/gcloud` will cache your Google Cloud credentials. It is safe to delete this folder if you don't wish to leave any tokens behind.

Once the installation process is complete, the script will print the URL at which your Gitpod installation can be accessed.

## 3. Launch the first workspace
Once finished, the installer will print the URL at which your Gitpod installation can be found. There you need to connect Gitpod to at least one Git provider:
- [Configure an OAuth application for GitLab](/docs/gitlab-integration/#oauth-application)
- [Configure an OAuth application for GitHub](/docs/github-integration/#oauth-application)

## 4. Configure the Browser extension
Afterwards you can jump right into your first workspace, by prefixing the repository URL with your Gitpod Self-Hosted URL.

Examples:
- GitLab: `<your-installation-url>/#https://gitlab.com/gitpod/spring-petclinic`
- GitHub: `<your-installation-url>/#https://github.com/gitpod-io/spring-petclinic`

# Going further
- Using a [custom domain](../domain/)
- Configuring a [custom Docker registry](../docker-registry/)
- Configuring a [storage backend](../storage/)
- Configuring [workspace sizes](../workspaces/)
If you are looking for a guide on how to deploy Gitpod Self-Hosted on GCP there is one [here](../install-on-gcp/).
11 changes: 11 additions & 0 deletions docs/self-hosted/install/install-on-gcp.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
url: /docs/self-hosted/latest/install/install-on-gcp/
---

# Getting started with Gitpod on GCP

Gitpod runs best on Google Cloud Platform. That's also where [gitpod.io](https://gitpod.io) is deployed and operated at scale.
This guide explains how to install an instance of Gitpod with the following steps:

# Terraform script coming soon
[code](../../../install/gcp-terraform)
30 changes: 20 additions & 10 deletions docs/self-hosted/install/install-on-kubernetes.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,26 +6,36 @@ url: /docs/self-hosted/latest/install/install-on-kubernetes/

This section describes how to install Gitpod on any Kubernetes cluster using [Helm](https://helm.sh). This is the most flexible and generic way of installing Gitpod. The chart for stable releases resides in Helm repository [charts.gitpod.io](https://charts.gitpod.io), charts for branch-builds can be found [here](#install-branch-build), and the source of the charts is in our [public git repository](https://github.com/gitpod-io/gitpod/blob/master/chart/).

For some cloud providers, we offer [Terraform](https://www.terraform.io/) scripts packaged into an installer. The installer aims to use the managed services from your cloud provider (Kubernetes Cluster, database, storage, image registry) rather than installing them along with the chart. Also, the script configures the cluster for best performance and cost-efficiency. We recommend using the installer if your cloud provider is supported. Once the installer has created the cluster, it will pre-configure and install this Gitpod helm chart into it.
* [Installer for Google Cloud Platform (GCP)](../install-on-gcp-script/).
* [Installer for Amazon Web Services (AWS)](../install-on-aws-script/).
For some platforms we offer [Terraform](https://www.terraform.io/) 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.
* [Terraform for Google Cloud Platform (GCP)](../install-on-gcp/).

## Prerequisites

* A Kubernetes cluster in version 1.15 <= x <= 1.17.
As we at Gitpod follow a ["Saas First" strategy](https://www.notion.so/gitpod/Gitpod-s-Direction-be35d064c0704fbda61c542b84e07ef6#57d3e4659c50449280411ac1f7dd1906) we have a [very limited set of platforms that we support](https://www.notion.so/gitpod/1b9eac5cb33d42e391f86a87f0e37836?v=4f2ec7c943514ee19203b9d4fe096094).

* local `kubectl` with connection to your cluster
You still might get Gitpod to run on other platforms (especially with the help of our [awesome community](https://community.gitpod.io/)) but there will be no support from Gitpod for those efforts.

* local `helm` in version >= 3.
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.
* 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:
```
```yaml
rabbitmq:
auth:
username: your-rabbitmq-user
password: your-secret-rabbitmq-password
minio:
accessKey: your-random-access-key
secretKey: your-random-secret-key
Expand All @@ -36,7 +46,7 @@ To install Gitpod in your Kubernetes cluster, follow these steps:
```console
helm repo add gitpod.io https://charts.gitpod.io

helm install -f values.custom.yaml gitpod gitpod.io/gitpod --version=0.8.0
helm install -f values.custom.yaml gitpod gitpod.io/gitpod --version=0.9.0
```

1. Configure [domain and https](../configure-ingress/).
Expand All @@ -52,7 +62,7 @@ To install Gitpod in your Kubernetes cluster, follow these steps:

1. Run the update
```console
helm install -f values.custom.yaml gitpod gitpod.io/gitpod --version=0.8.0
helm install -f values.custom.yaml gitpod gitpod.io/gitpod --version=0.9.0
```

1. Run `kubectl get pods` and verify that all pods are in state `RUNNING`. If some are not, please see the [Troubleshooting Guide](../troubleshooting/).
Expand Down
2 changes: 1 addition & 1 deletion docs/self-hosted/install/nodes.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,6 @@ To do this:
# The faster this location is (in terms of IO) the faster workspaces will initialize.
hostWorkspaceArea: /mnt/disks/ssd0/workspaces
```
2. Do a `helm upgrade --install -f values.custom.yaml gitpod gitpod.io/gitpod --version=0.8.0` to apply the changes.
2. Do a `helm upgrade --install -f values.custom.yaml gitpod gitpod.io/gitpod --version=0.9.0` to apply the changes.

> Note that Helm does _not_ merge hierarchies in a single file. Please make sure there is only ever _one_ `components` hierarchy or the last one overwrites all previous values.
70 changes: 0 additions & 70 deletions docs/self-hosted/install/oauth.md

This file was deleted.

4 changes: 2 additions & 2 deletions docs/self-hosted/install/storage.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ For more complex use case we recommend configuring more permanent means of persi
minio:
enabled: false
```
2. Redeploy Gitpod using `helm upgrade --install -f values.custom.yaml gitpod gitpod.io/gitpod --version=0.8.0` to apply the changes
2. Redeploy Gitpod using `helm upgrade --install -f values.custom.yaml gitpod gitpod.io/gitpod --version=0.9.0` to apply the changes

> Note that Helm does _not_ merge hierarchies in a single file. Please make sure there is only ever _one_ `components` hierarchy or the last one overwrites all previous values.

Expand All @@ -46,4 +46,4 @@ For more complex use case we recommend configuring more permanent means of persi
secretKey: add-a-radom-secret-key-here
# insert custom config here
```
3. Redeploy Gitpod using `helm upgrade --install -f values.custom.yaml gitpod gitpod.io/gitpod --version=0.8.0` to apply the changes
3. Redeploy Gitpod using `helm upgrade --install -f values.custom.yaml gitpod gitpod.io/gitpod --version=0.9.0` to apply the changes
Loading