Package Registry cleanup policies MVC
### :deciduous_tree: Context
As we see increased adoption of the package registry, packages and its files use more storage. For some users, it's important to have tools to properly manage that storage usage growth and limit it.
Among those tools, we have the cleanup policies for packages, similar to [cleanup policies for container images](https://docs.gitlab.com/ee/user/packages/container_registry/reduce_container_registry_storage.html).
Users can already remove packages and/or package files from the UI but if the Package Registry is already filled with several hundreds of packages, this approach will not scale properly (manual operation).
Cleanup policies is a set of rules that define:
1. Which packages / package files we need to keep.
1. Which packages / package files we can destroy.
Those policies are then regularly executed so that set (2.) is processed and objects in that collection are removed from the Package Registry. This whole loop is completely automated and runs without any manual operation.
### :scissors: Proposal
With this epic, we propose to implement the MVC for cleanup policies for packages. In the spirit of iteration, we're not going to implement a complete set of rules that users can use.
Instead, we are starting with the simplest scope:
* One single rule: Keep `n` duplicated package files.
* Values for `n` is a finite set: `all`(default value), `1`, `10`, `20`, `30`, `40` and `50`.
* Users can't choose when the policy runs but it will run daily.
* Cleanup policies will be set _per_ project (or at the "project level").
This epic will link all the user research, designs and implementation issues for that MVC.
### :crystal_ball: Other considerations
* We also have the need of improving the ~UX experience around deleting packages and package files in bulk on the UI. This aspect is captured by https://gitlab.com/groups/gitlab-org/-/epics/8022+.
* This is only the first iteration of cleanup policies for packages. We will be adding more rules with time. Among them, we will have rules for the package level too. This is captured by https://gitlab.com/groups/gitlab-org/-/epics/8021+
epic