@ayufan Small point, but people using up a lot of free resources that are otherwise unrestricted probably shouldn't be called "abusers". :) Abuse is when they use CI for bitcoin mining, or phishing sites, or whatever.
Limiting the number of parallel builds doesn't seem like it would have an impact on our usage, it would just smooth out the usage. The total build minutes would still be the same, right?
I'm not sure how much cost we have from storage (artifact and image), but I'd expect the pipeline runs to be the largest cost, so would love something that would make a difference there. As mentioned elsewhere, disabling redundant builds of gitlab-ce mirrors might be the single largest win. Disallowing runners to pick up mirrors might be the generic solution which allows people to run pipelines on mirrors as long as they provide their own runners. Is that doable quickly? Would it be significant?
Please make this a priority, currently CI artifacts are using ~10Tb of data (beating LFS storage) which is making it quite complicated to maintain and scale.
Just a first thought on this, although it might be only partly useful as gitlab is most of the times on premises. Although it could solve problems for GitLab.com
What about being able to configure a self hosted storage to keep these artifacts and or container images?
This would then be a setting globally or per project or even just in the gitlab.yml file.
@ayufan - is there any chance of making the number of builds per project customizable either in the .gitlab-ci.yaml (global/job levels), or at the project setting level (similar to Travis), instead of in the runners config? Having some form of currency handling would be a bonus, but making it user configurable would be even better.
Number of builds that runner can process is purely dependent on configuration of your machine or manager so this should always be configuration of runner. I would think about number of concurrent builds that single project can run, but this seems like a different problem to solve :).
A runner can be shared in multiple projects.
So for example let's say a runner is configured to do up to 50 builds.
A particular project that uses external ressources (e.g creating vm on GCE/AWS ) needs to limit it's number of builds. It would be nice to be able to do it and limit like 10 builds. This feature would be similar as mentioned to travis 'builds limit'.
For now the only solution I have to limit the number of build for one particular project, is to create a dedicated runner for it, which add more maintenance / setup.
@ayufan - thanks for responding, I may have misinterpreted the point of this ticket. The section 'Limit number of builds executed in parallel for single project' suggested to me that there was an element of concurrency handling, which would fit within the 'enforce ci limits' plan. If you can define concurrency then by default you are imposing limits which otherwise would be nontrivial as @ant31 pointed out. But maybe this is more of an internal gitlab.com architecture ticket? Thank you for your all your hard work.
so there is right now no simple config to limit running jobs per branch?
we have e.g 2 runners that both have the exact same config and tags.
and multiple master commits on a project, which trigger deployment, since there are more runners they pick up thos jobs, which results in multiple parallel deployments being run, which is really bad.
what is the supposed solution? (creating runner for deployments? seems to be a config overhead and also its not fault-tolerant, what if the one runner is out-of-service?)
GitLab is moving all development for both GitLab Community Edition
and Enterprise Edition into a single codebase. The current
gitlab-ce repository will become a read-only mirror, without any
proprietary code. All development is moved to the current
gitlab-ee repository, which we will rename to just gitlab in the
coming weeks. As part of this migration, issues will be moved to the
current gitlab-ee project.
If you have any questions about all of this, please ask them in our
dedicated FAQ issue.
Using "gitlab" and "gitlab-ce" would be confusing, so we decided to
rename gitlab-ce to gitlab-foss to make the purpose of this FOSS
repository more clear
I created a merge requests for CE, and this got closed. What do I
need to do?
Everything in the ee/ directory is proprietary. Everything else is
free and open source software. If your merge request does not change
anything in the ee/ directory, the process of contributing changes
is the same as when using the gitlab-ce repository.
Will you accept merge requests on the gitlab-ce/gitlab-foss project
after it has been renamed?
No. Merge requests submitted to this project will be closed automatically.
Will I still be able to view old issues and merge requests in
gitlab-ce/gitlab-foss?
Yes.
How will this affect users of GitLab CE using Omnibus?
No changes will be necessary, as the packages built remain the same.
How will this affect users of GitLab CE that build from source?
Once the project has been renamed, you will need to change your Git
remotes to use this new URL. GitLab will take care of redirecting Git
operations so there is no hard deadline, but we recommend doing this
as soon as the projects have been renamed.
Where can I see a timeline of the remaining steps?