workspaces-iteration-planning-report-latest.md

Workspaces Velocity-Based Iteration Planning Report


  1. Past Iterations
  2. Prioritized Issues for Current and Future Iterations
  3. Unprioritized Issues

Additional Links: Remote Development Group Planning ProcessWorkspaces Iteration Planning BoardGitLab Velocity Board Extension

Generated at 2024-09-19 00:04:27:+0000 • Latest version


Past Iterations:

Current Velocity is 14, calculated for last 4 iterations

Past Iteration Points Issue Count
2024-07-15 - 2024-07-28 10 8
2024-07-29 - 2024-08-11 19 11
2024-08-12 - 2024-08-25 12 7
2024-08-26 - 2024-09-08 13 8

Prioritized Issues for Current and Future Iterations:

(Note: These future iterations are dynamically calculated based on velocity, but they all map to the single fixed current iteration in standard GitLab. See the reasons for this)

2024-09-02 - 2024-09-15: 14 points, 7 issues (3 closed)

Weight Issue Link
3 Backend: Set and use fields for sudo access (Closed)
3 Backend Migration & Model: Introduce versioning into agent_config table with paper_trail (Closed)
1 [Feature flag] Cleanup remote_development_namespace_agent_authorization (Closed)
2 SSH feature hangs on attempted login
2 FE: Display agent details in a popover
1 Docs: Update docs for sudo access
2 DB: Add fields to support private container registries

2024-09-09 - 2024-09-22: 14 points, 7 issues

Weight Issue Link
2 Backend: Set and use fields to support private container registries
1 Docs: Update docs to support private container registries
3 Agent: Copy image pull secrets before generating workspace resources
3 Workspace reconcile should be resilient to any individual workspace errors
2 Backend: Add fields to support private container registries in the settings module
2 Backend: Update the deployment to use the image pull secret through service account
1 Refactoring to graphql error message handling

2024-09-16 - 2024-09-29: 13 points, 9 issues

Weight Issue Link
2 Backend Migration: New field for workspaces_agent_config_version on workspace table
2 Backend: update workspace reconciliation with agent config version
1 Backend: update workspace creation with agent_config version
2 Backend: Add new field workspace_agent_config_version for config_version on workspace table
1 Backend: Drop config_version on workspace
2 Backend: Replace usage of dns_zone, url_prefix url_query_string with versioned agent_config
1 Backend: Drop dns_zone, url_prefix url_query_string from workspace table
1 Helm: Add runtime class name in gitlab workspaces proxy chart
1 Agent: Add Workspace Suspension with Delayed Termination

2024-09-23 - 2024-10-06: 3 points, 1 issues

Weight Issue Link
3 Rails: Add Workspace Suspension with Delayed Termination

Unprioritized Issues:

Issue Link
Enable SSH access for GDK image in Remote Development workspace
stdout and stderr streams not behaving correctly
Resolve Workspace/devfile relationship and versioning
Investigation: Use Sysbox to provide container build and run capability inside workspace
Investigation: Use Kata containers with hypervisors (e.g. qemu, firecracker) to provide container build and run capability inside workspace
Workspaces can be created under user or project namespaces
Investigation: Can we inject gitlab-sshd directly inside a workspace instead of expecting OpenSSH pre-installed
UX: Client only WebIDE vs Remote Development
Follow-up from ROP part 3 - split up classes into smaller methods
GitLab Workspaces Proxy - Ensure OAuth redirects to GitLab work on HTTP and HTTPS both
Introduce enums into Workspace graphql type
Design mechanism to match versions of VS Code server and WebIDE
[Test Refactor] Refactor unit test duplication in agent_workspaces_list_spec.js
Document updating,building, and running WebIDE and VS Code server
Preserve unsaved edits while establishing a remote connection in the Web IDE
Handle connection errors more gracefully in the Web IDE
Allow for creation of different classes of Workspaces(1gb-2cpu, 4gb-8cpu, etc)
Allow users to vertically scale up Workspace resources
Support image pre-builds
Allow users to expose endpoints in a running Workspace
Provide Devfile Schema Linting
Cluster internal cluster error feedback to users
Provide Error / Failed state feedback for users
Spike: Re-route VSCode telemetry to GitLab‘s snowplow
Remote Development Container does not start
Drop SSL requirement
Workspace <-> Namespace relationship
Improve workspace data isolation with micro VMs
Storing flattened devfile in database
VS Code terminal not working in ARM containers
Synchronise settings between browser-only WebIDE and VS Code server in the Workspace
Create workspace_versions db, model, and graphql query support
Populate workspace_versions table upon every change to a workspaces table record
Create Vue UI for workspace_versions
Build tools-injector for ARM platform
Support custom entrypoint and command script hooks in the main Workspace container
Implement Workspace Metrics for general availability
Understand and document why devfile ffi gem does not work in gitlab monolith
Remove WebUI from the editor injector
Consider scenarios where project-less workspace might be beneficial
Null check safety in actual state calculate of remote development
Devfile gem is not correctly packaged
Implement changing working folder in RD WebIDE
Fix: Extensions (even built-in) unavailable when connecting WebIDE to a local development VS Code Server
Investigate security implications of connecting to workspace though WebIDE
Abstract editor configuration as a configuration setting for admins
Improve devfile go code CLI UX help
GitLab Workspaces Proxy - Should be automatically deployed by the agent
Ensure guidelines for existing projects created for Remote Development have been followed
Terminate workspaces after an agent has been disabled
Workspaces: Solve for authentication issue for Web IDE connection to VS Code server in the Workspace
Feature Request: Register to account
Support multiple options for naming a devfile in a project
Possibly optimize workers to re-use a common informer across full & partial syncs
Enhance StoppableTask to capture and return errors to the caller
Finish incomplete work on state management logic, testing, and test fixtures
GA4K - Add test case for nil check while sending request to rails
Workspaces: Auth Proxy error pages
Create a dictionary of error-cause-solution
GDK: tooling/config to support GA4K remote dev module
GitLab Workspaces Proxy - Refactor auth redirect path to use router
Use Jupyter Notebook as the editor in a workspace
Implement a GraphQL subscription API to track a workspace’s state
Add rootClusterAgents GraphQL field for workspace creation
Use docker-image published by Gitlab in the project cloner
Explore PROJECTS_ROOT and PROJECT_SOURCE env vars with devfile team
Introduce error handling/recovery procedures in the project cloner
Display devfile and cluster agents validity in create workspace form
Inject the glab CLI into every workspace
When there is a workspace error (e.g. invalid container), the UI shows the workspace state as Starting for 10 minutes before changing to Failed
Invalid agent configuration YAML file breaks the agentk
Ensure we gather logs from in-cluster components (agentk + auth proxy)
Spike: Investigate possible OAuth proxy errors
Specify security context in the devfile before generating the kubernetes resources
What is the best way to log a field in Rails which is a complex hash map?
What are the best practices for tracking error in Sentry through Rails
Review structured logging for standards compliance and security
Revisit handling of on_delete in workspaces table migrations
Address review feedback: Resolve N+1 issues
Abstract project cloner configuration as a configuration setting for admins
Come up with more user-friendly scheme for random workspace names
Choose image based on which editor is passed
Review STOPPING and STARTING scenarios in actual_state_calculator.rb
Add coverage for all scenarios to actual_state_calculator_spec.rb
Improve reconcile_processor_scenarios_spec.rb
Extract port to constant in create_processor.rb
Allow user to specify optional clone depth for workspace’s git repo
Revisit all error messsages and user strings for proper i18n patterns
Add JSONSchemer validation of schema itself
Instead of defining a new factory check if we could FactoryBot.modify existing factory and add the EE-specific trait
Prefix the factory to avoid name clashes in the future
Remove development: Make workspace factory strategy agnostic
Follow-up from “rails integration branch for”Remote Development Integration Branches””
Remote development: Make feature spec more resilient to changes
Follow-up from “rails integration branch for”Remote Development Integration Branches””
Remote Development: Fix all RSpec/ExpectInHook offenses
Follow-up from “rails integration branch for”Remote Development Integration Branches””
Follow-up from “rails integration branch for”Remote Development Integration Branches””
Follow-up from “Add user’s git configuration in workspace”
Investigate why volume mounted in GCloud has a different UID than the one on Rancher Desktop