UI: Introduce an admin view providing visibility into all running workspaces for an agent

MR: !137336 (merged)

Description

(See overview of Category:Remote Development Workspaces Admin UI issues and MRs in MVP of Admin UI for Workspaces (&11992 - closed))

Remote development workspaces are personal, ephemeral development environments. Unfortunately for a GitLab instance or group administrator, that means that individual developers have the ability to consume a potentially large amount of cloud resources relatively unchecked. The entire concept of a remote development environment requires this on-demand and secure provisioning of cloud resources, but admins need some tools to monitor and limit usage.

This MVC will provide insight into what workspaces are running across a group or instance. Something like:

Workspace ID Agent Name Terminate
al29g8 tanuki

image

When the remote development feature of the agent is disabled, the following would be the behaviour of the admin view

  • It will show a banner saying - "Remote Development feature for the agent is disabled. You must re-enable the Remote Development feature of the agent to perform any actions on the workspaces."
  • It will show all the workspaces associated with the agent but will not allow any action(termination) to be performed on it.

An admin should be able to terminate a workspace for any reason, but we should remind the admin that this is a destructive action and one that may result in data loss if there are any uncommitted changes.

Later iterations

  • Add filtering to the admin view - filter by user, project, actual_state, desired_state, etc.
  • Eventually we could use this area to show important history about a workspace, provide access to server logs and other information for audit purposes. But for now it is just a way to see a high-level overview of the

Acceptance Criteria

  • An admin can see all active workspaces running in a group or instance
  • An admin can terminate a workspace from the list

Implementing issues

Edited by Eric Schurter