Enforce CI limits
We start to have more and more CI active users.
This is meta issue to discuss potential limiting of free service with steps to implement that.
Things that I consider that we should do:
Limit total artifacts size per-project:
- Make this Application Setting configured globally,
- Make this Project Setting configured by Administrator,
- Show the total size of artifacts stored in https://gitlab.com/gitlab-org/gitlab-ce/pipelines/settings,
- Introduce a button to separately delete artifacts for tags and branches,
- Enforce the limit when trying to push artifacts.
Limit total size of container images:
- Make this Application Setting configured globally,
- Make this Project Setting configured by Administrator,
- Show the total size of container images stored for Project,
- Enforce the limit when trying to generate token with push credentials.
Limit number of builds executed in parallel for single project:
- Make this Runner setting to define how many builds can be executed for single project at single time,
- Extend
builds/register.json
with query checking number of builds being executed for project,
Everything else
(We could also follow the same for LFS. However, it's much harder to remove data for LFS).
The question is whether this is a proper approach for doing the limits. We could think later about limits that should be applied on GitLab.com.