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

Epic: Local preview "installation" method #9075

Closed
10 tasks done
lucasvaltl opened this issue Apr 1, 2022 · 7 comments · Fixed by #10532
Closed
10 tasks done

Epic: Local preview "installation" method #9075

lucasvaltl opened this issue Apr 1, 2022 · 7 comments · Fixed by #10532
Assignees
Labels
team: delivery Issue belongs to the self-hosted team type: epic

Comments

@lucasvaltl
Copy link
Contributor

lucasvaltl commented Apr 1, 2022

Summary

Create a way to install a basic version of self-hosted Gitpod on a local machine for trial purposes. Should require minimal effort (time to wow) for most somewhat technical enterprise users.

Context

The easiest way to try out Gitpod is via our SaaS offering (gitpod.io). However, there are users and companies where this is not possible because of internal compliance issues and other restrictions (e.g. can only use vetted providers of software if it is running somewhere else). For these, Self-Hosted is the only viable path. However, our current self-hosted installation method requires you to set up an entire Kubernetes cluster just to try out Gitpod for the first time and see what it is all about. In a large corporation (exactly the ones that cannot use the SaaS version) this might mean going through internal hurdles to provision said cluster. Further this requires k8s experience.

We want to create a way for these corporate users that are technical but may not have deep Kubernetes expertise to experience Gitpod before they go to the next phase of investing more into it and getting for example a team to spin up a k8s cluster and install Gitpod self-hosted.

Value

  • Enables those that cannot or do not want to run Gitpod SaaS to try out Gitpod, (hopefully) be amazed by it and potentially become full time users, and then potentially tell their friends / colleagues about it and start pushing for a wider implementation.

Acceptance Criteria

  • Gitpod can be installed via simple and straight forward way that most somewhat technical enterprise users can successfully go through. It is a tradeoff: minimizing dependencies, minimizing installation steps vs. maximizing amount of addressable target users.
  • Support for Mac, Windows and Linux

Measurement

  • Measure amount of successful installations
  • Amount of new leads we get from users that first used this installation method should be going up dramatically
  • Amount of support questions we get related to basic K8s concepts should go down

Complexities

  • Runtime: docker vs. vm
  • Certs
  • DNS resolution: localhost, DNS masks etc.

Related Issues / Work

Issues:

For milestones, see internal planning document

@lucasvaltl lucasvaltl self-assigned this Apr 1, 2022
@lucasvaltl lucasvaltl added the team: delivery Issue belongs to the self-hosted team label Apr 12, 2022
@lucasvaltl lucasvaltl changed the title Epic: Single Command Self-Hosted Install Epic: Local installation method to try out Gitpod May 10, 2022
@lucasvaltl lucasvaltl changed the title Epic: Local installation method to try out Gitpod Epic: Local preview installation method that is as simple as possible for most users May 10, 2022
@lucasvaltl lucasvaltl changed the title Epic: Local preview installation method that is as simple as possible for most users Epic: Local preview installation method May 10, 2022
@Pothulapati Pothulapati self-assigned this May 13, 2022
@csweichel
Copy link
Contributor

Current work: https://github.com/gitpod-io/preview-install

@meysholdt
Copy link
Member

On the Platform team, we used a Hack Friday to explore solutions around DNS and certs. Find the notes here:
https://www.notion.so/gitpod/Platform-Hack-Friday-3341419375c0499891499da281294151

@JohannesLandgraf
Copy link
Contributor

Pothulapati added a commit that referenced this issue Jun 8, 2022
Fixes #9075

This PR adds a new install method called `preview` under the
`install` directory. This includes a sh script i.e `entrypoint.sh`
that gets loaded into a docker container in the `Dockerfile`.

This `entrypoint.sh` does the following:
- Checks for minimum system requirements
- Generates a root certificate using `mkcerts`, and loads into the
  host's `/tmp/gitpod/gitpod-ca.crt`.
- Renders `cert-manager` resources, self-signed Gitpod into
  `/var/lib/rancher/k3s/server/manifests`.
- Initialises `k3s` inside the container.

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
Pothulapati added a commit that referenced this issue Jun 13, 2022
Fixes #9075

This PR adds a new install method called `preview` under the
`install` directory. This includes a sh script i.e `entrypoint.sh`
that gets loaded into a docker container in the `Dockerfile`.

This `entrypoint.sh` does the following:
- Checks for minimum system requirements
- Generates a root certificate using `mkcerts`, and loads into the
  host's `/tmp/gitpod/gitpod-ca.crt`.
- Renders `cert-manager` resources, self-signed Gitpod into
  `/var/lib/rancher/k3s/server/manifests`.
- Initialises `k3s` inside the container.

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
Pothulapati added a commit that referenced this issue Jun 13, 2022
Fixes #9075

This PR adds a new install method called `preview` under the
`install` directory. This includes a sh script i.e `entrypoint.sh`
that gets loaded into a docker container in the `Dockerfile`.

This `entrypoint.sh` does the following:
- Checks for minimum system requirements
- Generates a root certificate using `mkcerts`, and loads into the
  host's `/tmp/gitpod/gitpod-ca.crt`.
- Renders `cert-manager` resources, self-signed Gitpod into
  `/var/lib/rancher/k3s/server/manifests`.
- Initialises `k3s` inside the container.

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
Pothulapati added a commit that referenced this issue Jun 13, 2022
Fixes #9075

This PR adds a new install method called `preview` under the
`install` directory. This includes a sh script i.e `entrypoint.sh`
that gets loaded into a docker container in the `Dockerfile`.

This `entrypoint.sh` does the following:
- Checks for minimum system requirements
- Generates a root certificate using `mkcerts`, and loads into the
  host's `/tmp/gitpod/gitpod-ca.crt`.
- Renders `cert-manager` resources, self-signed Gitpod into
  `/var/lib/rancher/k3s/server/manifests`.
- Initialises `k3s` inside the container.

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
Pothulapati added a commit that referenced this issue Jun 13, 2022
Fixes #9075

This PR adds a new install method called `preview` under the
`install` directory. This includes a sh script i.e `entrypoint.sh`
that gets loaded into a docker container in the `Dockerfile`.

This `entrypoint.sh` does the following:
- Checks for minimum system requirements
- Generates a root certificate using `mkcerts`, and loads into the
  host's `/tmp/gitpod/gitpod-ca.crt`.
- Renders `cert-manager` resources, self-signed Gitpod into
  `/var/lib/rancher/k3s/server/manifests`.
- Initialises `k3s` inside the container.

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
Pothulapati added a commit that referenced this issue Jun 13, 2022
Fixes #9075

This PR adds a new install method called `preview` under the
`install` directory. This includes a sh script i.e `entrypoint.sh`
that gets loaded into a docker container in the `Dockerfile`.

This `entrypoint.sh` does the following:
- Checks for minimum system requirements
- Generates a root certificate using `mkcerts`, and loads into the
  host's `/tmp/gitpod/gitpod-ca.crt`.
- Renders `cert-manager` resources, self-signed Gitpod into
  `/var/lib/rancher/k3s/server/manifests`.
- Initialises `k3s` inside the container.

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
@JohannesLandgraf
Copy link
Contributor

When do we expect to ship this? cc @lucasvaltl @Pothulapati

Pothulapati added a commit that referenced this issue Jun 15, 2022
Fixes #9075

This PR adds a new install method called `preview` under the
`install` directory. This includes a sh script i.e `entrypoint.sh`
that gets loaded into a docker container in the `Dockerfile`.

This `entrypoint.sh` does the following:
- Checks for minimum system requirements
- Generates a root certificate using `mkcerts`, and loads into the
  host's `/tmp/gitpod/gitpod-ca.crt`.
- Renders `cert-manager` resources, self-signed Gitpod into
  `/var/lib/rancher/k3s/server/manifests`.
- Initialises `k3s` inside the container.

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
roboquat pushed a commit that referenced this issue Jun 15, 2022
Fixes #9075

This PR adds a new install method called `preview` under the
`install` directory. This includes a sh script i.e `entrypoint.sh`
that gets loaded into a docker container in the `Dockerfile`.

This `entrypoint.sh` does the following:
- Checks for minimum system requirements
- Generates a root certificate using `mkcerts`, and loads into the
  host's `/tmp/gitpod/gitpod-ca.crt`.
- Renders `cert-manager` resources, self-signed Gitpod into
  `/var/lib/rancher/k3s/server/manifests`.
- Initialises `k3s` inside the container.

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
@Pothulapati
Copy link
Contributor

Pothulapati commented Jun 15, 2022

The basic version of the preview install just got merged with #10532, but we still have the following things to do before we can close this Issue:

  • Publish the preview install image on the latest tag.
  • Documentation
  • User friendly output.

We might be able to ship these above things this week, but the support M1 Mac's and Windows is still in the works!

@Pothulapati Pothulapati reopened this Jun 15, 2022
Pothulapati added a commit that referenced this issue Jun 16, 2022
Part of #9075

This PR adds user friendly output to the `preview` install
docker container.

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
Pothulapati added a commit that referenced this issue Jun 16, 2022
Part of #9075

This PR adds user friendly output to the `preview` install
docker container.

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
Pothulapati added a commit that referenced this issue Jun 16, 2022
Part of #9075

This PR adds user friendly output to the `preview` install
docker container.

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
Pothulapati added a commit that referenced this issue Jun 16, 2022
Part of #9075

This PR adds user friendly output to the `preview` install
docker container.

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
Pothulapati added a commit that referenced this issue Jun 16, 2022
Part of #9075

This PR adds user friendly output to the preview install
docker container by adding a new program prettylog that
looks at the output of the entry-point.sh and just adds status
updates and spinners.

This feels easier instead of adding the same status updates in
bash.

The status updates are also kept as simple as possible and
any additional instructions (URL, and certs) will be added
to the documentation instead of here. Feel free to post here
if you think it would be better to have them here in the
script.

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
Pothulapati added a commit that referenced this issue Jun 16, 2022
Part of #9075

This PR adds user friendly output to the preview install
docker container by adding a new program prettylog that
looks at the output of the entry-point.sh and just adds status
updates and spinners.

This feels easier instead of adding the same status updates in
bash.

The status updates are also kept as simple as possible and
any additional instructions (URL, and certs) will be added
to the documentation instead of here. Feel free to post here
if you think it would be better to have them here in the
script.

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
Pothulapati added a commit that referenced this issue Jun 17, 2022
Part of #9075

This PR adds user friendly output to the preview install
docker container by adding a new program prettylog that
looks at the output of the entry-point.sh and just adds status
updates and spinners.

This feels easier instead of adding the same status updates in
bash.

The status updates are also kept as simple as possible and
any additional instructions (URL, and certs) will be added
to the documentation instead of here. Feel free to post here
if you think it would be better to have them here in the
script.

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
roboquat pushed a commit that referenced this issue Jun 17, 2022
Part of #9075

This PR adds user friendly output to the preview install
docker container by adding a new program prettylog that
looks at the output of the entry-point.sh and just adds status
updates and spinners.

This feels easier instead of adding the same status updates in
bash.

The status updates are also kept as simple as possible and
any additional instructions (URL, and certs) will be added
to the documentation instead of here. Feel free to post here
if you think it would be better to have them here in the
script.

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
nandajavarma pushed a commit that referenced this issue Jun 20, 2022
Fixes #9075

This PR adds a new install method called `preview` under the
`install` directory. This includes a sh script i.e `entrypoint.sh`
that gets loaded into a docker container in the `Dockerfile`.

This `entrypoint.sh` does the following:
- Checks for minimum system requirements
- Generates a root certificate using `mkcerts`, and loads into the
  host's `/tmp/gitpod/gitpod-ca.crt`.
- Renders `cert-manager` resources, self-signed Gitpod into
  `/var/lib/rancher/k3s/server/manifests`.
- Initialises `k3s` inside the container.

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
nandajavarma pushed a commit that referenced this issue Jun 20, 2022
Part of #9075

This PR adds user friendly output to the preview install
docker container by adding a new program prettylog that
looks at the output of the entry-point.sh and just adds status
updates and spinners.

This feels easier instead of adding the same status updates in
bash.

The status updates are also kept as simple as possible and
any additional instructions (URL, and certs) will be added
to the documentation instead of here. Feel free to post here
if you think it would be better to have them here in the
script.

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
@Pothulapati
Copy link
Contributor

With https://github.com/gitpod-io/website/pull/2261, We have a 🛹 version of this up.

Windows and Mac support is being worked on right now on high priority, and the docs will be updated once we have something up!

@lucasvaltl lucasvaltl changed the title Epic: Local preview installation method Epic: Local preview "installation" method Jun 28, 2022
flaming-codes pushed a commit to flaming-codes/gitpod that referenced this issue Aug 1, 2022
Fixes gitpod-io#9075

This PR adds a new install method called `preview` under the
`install` directory. This includes a sh script i.e `entrypoint.sh`
that gets loaded into a docker container in the `Dockerfile`.

This `entrypoint.sh` does the following:
- Checks for minimum system requirements
- Generates a root certificate using `mkcerts`, and loads into the
  host's `/tmp/gitpod/gitpod-ca.crt`.
- Renders `cert-manager` resources, self-signed Gitpod into
  `/var/lib/rancher/k3s/server/manifests`.
- Initialises `k3s` inside the container.

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
flaming-codes pushed a commit to flaming-codes/gitpod that referenced this issue Aug 1, 2022
Part of gitpod-io#9075

This PR adds user friendly output to the preview install
docker container by adding a new program prettylog that
looks at the output of the entry-point.sh and just adds status
updates and spinners.

This feels easier instead of adding the same status updates in
bash.

The status updates are also kept as simple as possible and
any additional instructions (URL, and certs) will be added
to the documentation instead of here. Feel free to post here
if you think it would be better to have them here in the
script.

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
@lucasvaltl
Copy link
Contributor Author

Removing from Q3 roadmap and closing this as we need to replan this - most of this has been done though, the issues left are either hard to do or not planned.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
team: delivery Issue belongs to the self-hosted team type: epic
Projects
No open projects
Development

Successfully merging a pull request may close this issue.

5 participants