Skip to content

Introduce storage counter at group level for package feature

Problem to solve

Package feature (maven, npm repositories) currently have no counter for used storage.

Intended users

All users who use Package feature.

Solution

Usage page

progress-bar--tabs

We will be reusing the existing Pipelines quota page in group settings and renaming it to Usage quotas. We will add a tab bar to allow users to switch between the existing view an a new Storage view.

The title of the page will change to Usage quotas and the short description to:

Usage of group resources across the projects in the [Name of group] group.

When the user selects the Storage tab, we will show their total usage using the following format, alongside a progress bar:

[Used GB] / [Available GB]

This counter will have a ? icon that will link to our docs explaining how storage is counted.

Below, we will display a table with all the projects in the group, with a Usage column that will display how much storage each project is using.

Project details

multiple-items--tabs

Each project row can expand on click to show its detailed usage. Each sub-row will represent a 'concept' like packages, artifacts, container registry or LFS files. The usage for each concept will be displayed in storage units (MB, GB) as well as the percentage it represents in the project.

Removing the storage limit

Since we won't have storage limits in the first iteration, we cannot display the used storage as a Used / Available. Therefore, we will present the total storage as Used GB and forego the progress bar:

collapsed--tabs

MVC

We will start by only counting the storage used by packages, so there will only be one concept for each project.

Note: We may have the backend capabilities to add more counters than just Packages in the first iteration and we will include them if possible, but listing Packages usage is our MVC.

packages--tabs

This means that projects that don't have any packages will be shown as consuming 'O MB'. This will be displalyed using the same format:

empty-project--tabs

Original proposal

Similar to pipeline minutes, introduce a counter at group level that will show the sum of all uploaded packages per project.

Screenshot_2019-03-20_15.13.55

This interface will also need to contain other types of storage later, such as artifacts, container registry and lfs objects.

This proposal does not contain introducing storage limits at the group level which is part of https://gitlab.com/gitlab-org/gitlab-ce/issues/30421

What's needed here:

  • Refactoring the "Pipelines quota" group page to likely simply read something like "Usage" or "Quotas".
  • Considering how we display storage use at the group level. We can take an MVC approach as proposed in the description using the existing "progress bar" pattern, but we may want to consider a separate page (tab?) for group storage.

Permissions and Security

User who have access to the group settings (Maintainer and up).

Links / references

#30421 (moved)

Development log

Status

Decisions

The next iteration

Edited by Dave Smith