Skip to content

Epic: Rewrite ws-manager as a Kubernetes controller #11416

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

Open
4 of 13 tasks
Tracked by #15065
atduarte opened this issue Jul 15, 2022 · 3 comments
Open
4 of 13 tasks
Tracked by #15065

Epic: Rewrite ws-manager as a Kubernetes controller #11416

atduarte opened this issue Jul 15, 2022 · 3 comments
Assignees
Labels
meta: never-stale This issue can never become stale team: workspace Issue belongs to the Workspace team type: epic

Comments

@atduarte
Copy link
Contributor

atduarte commented Jul 15, 2022

Summary

ws-manager is currently a very complex piece of software. This complexity reduces our throughput and increases the chance of introducing errors. That can be mitigated by rewriting it as a Kubernetes controller.

Context

When we built ws-manager more then three years ago, kubebuilder wasn't a thing and writing Kubernetes controllers was hard(er). Also, we didn't know too much about Kubernetes at the time.

Value

  • Decreased technical complexity, which means increased throughput, faster team onboarding, and less chance of introducing errors
  • Unlocking the possibility of having workspaces that are not pods, but VMs

Acceptance criteria

  • Code complexity is significantly reduced
  • Code coverage of new implementation is above 70%

Tasks

PoC branch is merged to main

Basic workspace operation parity

ws-daemon and ws-manager don’t require gRPC anymore

  • Store user env vars in secret and reference that secret from CR (OTS removal)
  • Replace ws-daemon gRPC call with CR interaction

Prebuild Operation Parity

  • Make mk2 understand prebuild pod termination, incl. PVC snapshot creation
  • Make ws-daemon upload logs based on CR status
  • Support system-failed prebuild restarting
  • Ensure correct prebuild status reporting on the gRPC API

mk2 in production for Gitpod.io

  • Make mk2's metrics compatible with the current mk1 metrics
@stale
Copy link

stale bot commented Jan 2, 2023

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the meta: stale This issue/PR is stale and will be closed soon label Jan 2, 2023
@kylos101 kylos101 moved this to In Progress in 🌌 Workspace Team Jan 12, 2023
@kylos101 kylos101 added the meta: never-stale This issue can never become stale label Jan 12, 2023
@stale stale bot removed the meta: stale This issue/PR is stale and will be closed soon label Jan 12, 2023
@kylos101 kylos101 moved this from In Progress to Breakdown in 🌌 Workspace Team Jan 12, 2023
@kylos101
Copy link
Contributor

@Furisto @atduarte I updated the status for this to Breakdown, as that's literally what @Furisto and @WVerlaek are doing.

@Furisto , once we're comfortable with the milestone plan, let's plan to move this to in-progress.

@kylos101
Copy link
Contributor

@Furisto @atduarte moved to in-progress, as we're actively working this, and started building a milestone plan with some dates. @Furisto how do you feel about adding additional dates to the milestone plan for tomorrow?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
meta: never-stale This issue can never become stale team: workspace Issue belongs to the Workspace team type: epic
Projects
No open projects
Status: Breakdown
Development

No branches or pull requests

3 participants