Skip to content

Drop new builds when CI quota is exceeded [RUN ALL RSPEC] [RUN AS-IF-FOSS]

Marius Bobin requested to merge ci-drop-new-builds-when-ci-quota-exceeded into master

What does this MR do?

Related to https://gitlab.com/gitlab-org/gitlab/-/issues/323486

When a new pipeline is created, just before it's initial processing, we check the namespace's CI minutes quota. If the builds are assignable only to shared runners and the namespace is out of minutes, we drop all of them with ci_quota_exceeded failure reason.

Database queries

Ci::Minutes::PipelineEnforceQuotaService.new(...).drop_builds_without_specific_runners
 Ci::Runner.instance_type.with_positive_cost_factor_for(project).exists?

https://console.postgres.ai/shared/630598ac-ca7c-4290-a0b9-95d0f115dbe3

Screenshots (strongly suggested)

Pictures

Project with shared runners only:
image

Everything is dropped with a quota exceeded message.

Project with shared and specific runners:
image

The first stage build is allowed to run.

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team
Edited by Marius Bobin

Merge request reports

Loading