Storage and limits management for groups
### Description For users of very large GitLab instances, such as GitLab.com, managing storage space can become a challenge. GitLab.com has a 10GB repository limit, but no limitation on most of the other items that consume storage space. Larger installations would like to more closely manage this, shown by the fact that some [community tools](https://gitlab.com/JonathonReinhart/gitlab-artifact-cleanup) have emerged for managing CI artifacts and container images. Further in the case of CI, some users may not be aware of how much space they are consuming depending on the default settings. A method for easily viewing the amount of storage consumed, and managing it would be very helpful. ### Proposal GitLab should make it transparent to see how much storage is being consumed, by what types of files, and allow easy management. In the case of large installations, group size limitations would help to reduce management overhead. To accomplish this, we will focus on implementing group storage limits that include all types of storage. A summary of the approach will be: 1. **Establish two [group-level limits](https://gitlab.com/gitlab-org/gitlab-ce/issues/59235) for types of storage (a soft limit and a hard limit),** (we are here) 1. Iterate through storage use (e.g. artifacts, container registry) until all types of storage are included in these limits, 1. Modify [the user experience](https://gitlab.com/gitlab-org/gitlab-ce/issues/30421) to account for when these limits are breached, 1. Make add-on object storage [available for purchase](https://gitlab.com/gitlab-org/gitlab-ee/issues/5634) on GitLab.com and begin enforcing these limits. ### Completed * [Storage counter at group level](https://gitlab.com/gitlab-org/gitlab-ce/issues/59232) for maven/npm/etc packages, repositories, artifacts, wiki's and LFS objects * [Creating a performant way of presenting the Storage quota sum](https://gitlab.com/gitlab-org/gitlab-ce/issues/62214) ### What's next * [Exposing the total sum through the API](https://gitlab.com/gitlab-org/gitlab-ce/issues/62796) * [Defining the storage limits (business decision)](https://gitlab.com/gitlab-org/gitlab-ce/issues/59235)
epic