gitpod-io / gitpod-io/gitpod

Epic: Integrate public API's into supervisor

Open
#15,383 1 comment 0 reactions 2 assignees View on GitHub

Nobody has claimed this yet.

component: supervisor feature: public-api meta: never-stale team: IDE type: epic
Dominant language
TypeScript
Stars
13.8k
Forks
1.4k
Avg merge
17h 58m
Merged PRs (30d)
5

Description

Summary

Migrate supervisor from Server to Public API.

Context

Why we chose to migrate Supervisor to the new Public API? In order to validate Public API we started with https://github.com/gitpod-io/gitpod/issues/9757, but VS Code Desktop depends on SH installations which block migrations till Public API is reliable. VS Code as well does not have interesting use cases to validate usability and reliabiltiy of the API, i.e. pooling vs streaming, and does not generate enough traffic. We have also had incidents with supervisor working against Server API. We could not react promptly because we don't have any client observability [1], additionally jsonrpc library which we use on go client side has very verbose logging [2]. Because of all these reasons it looks sensible to migrate supervisor first:

  • it has a tricky use cases, like listening to workspace status updates to promptly update UI state
  • Used in each workspace and will generate enough traffic.
  • Easy to migrate since it is self contained in each installation.
  • Improves reliability by using client side grpc observability.
  • Improves security by giving us control of logging.
Value
  • Validate usability and reliability of Public API.
  • Improve reliability and security of connection between supervisor and Public APi.
Acceptance Criteria
  • Supervisor don't use Server API anymore, but completely relies on Public API.
Measurement
  • 99% of requests from supervisor to Public API should be successful. SLO

Remaining Work

Descoped / Nice to have

nit

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.