极狐GitLab CI/CD 实例配置

极狐GitLab 管理员可以管理其实例的极狐GitLab CI/CD 配置。

在新项目中禁用极狐GitLab CI/CD

极狐GitLab CI/CD 在实例上的所有新项目中默认启用。你可以通过修改以下设置来默认禁用新项目中的 CI/CD:

  • 针对自编译安装,修改 gitlab.yml
  • 针对 Linux 软件包安装,修改 gitlab.rb

已启用 CI/CD 的现有项目不会受到影响。此外,此设置仅更改项目的默认值,因此项目所有者仍然可以在项目设置中启用 CI/CD

对于自编译安装:

  1. 使用编辑器打开 gitlab.yml 并将 builds 设置为 false

    ## Default project features settings
    default_projects_features:
      issues: true
      merge_requests: true
      wiki: true
      snippets: false
      builds: false
    
  2. 保存 gitlab.yml 文件。

  3. 重启极狐GitLab:

    sudo service gitlab restart
    

对于 Linux 软件包安装:

  1. 编辑 /etc/gitlab/gitlab.rb 并添加以下行:

    gitlab_rails['gitlab_default_projects_features_builds'] = false
    
  2. 保存 /etc/gitlab/gitlab.rb 文件。

  3. 重新配置极狐GitLab:

    sudo gitlab-ctl reconfigure
    

设置 needs 任务限制

needs 中可以定义的最大任务数默认为 50。

具有访问极狐GitLab Rails 控制台权限的极狐GitLab 管理员可以选择自定义限制。例如,要将限制设置为 100

Plan.default.actual_limits.update!(ci_needs_size_limit: 100)

要禁用 needs 依赖关系,请将限制设置为 0。配置为使用 needs 的任务会返回错误 job can only need 0 others

更改最大计划流水线频率

计划流水线可以配置任何 cron 值,但它们并不总是按计划准确运行。一个称为 pipeline schedule worker 的内部进程会将所有计划的流水线排队,但不会连续运行。该工作程序按照自己的计划运行,只有在工作程序下次运行时,准备好启动的计划流水线才会被排队。计划的流水线不能比工作程序更频繁地运行。

流水线计划工作程序的默认频率是 3-59/10 * * * *(每十分钟,从 0:030:130:23 开始,依此类推)。极狐GitLab.com 的默认频率列在极狐GitLab.com 设置中。

要更改流水线计划工作程序的频率:

  1. 编辑实例的 gitlab.rb 文件中的 gitlab_rails['pipeline_schedule_worker_cron'] 值。
  2. 重新配置极狐GitLab以使更改生效。

例如,要将流水线的最大频率设置为每天两次,将 pipeline_schedule_worker_cron 设置为 cron 值 0 */12 * * *(每天的 00:0012:00)。

灾难恢复

您可以禁用应用程序中一些重要但计算密集的部分,以在持续停机期间减轻数据库的压力。

禁用实例Runner上的公平调度

在清除大量任务积压时,可以暂时启用 ci_queueing_disaster_recovery_disable_fair_scheduling 功能标志。此标志禁用实例Runner 上的公平调度,从而减少 jobs/request 端点上的系统资源使用。

启用后,任务将按照它们被放入系统的顺序处理,而不是在多个项目之间平衡。

禁用计算配额强制

要禁用实例Runner上计算分钟配额的强制执行,可以暂时启用 ci_queueing_disaster_recovery_disable_quota 功能标志。此标志减少 jobs/request 端点上的系统资源使用。

启用后,最后一小时内创建的任务可以在超出配额的项目中运行。较早的任务已经由周期性后台工作程序 (StuckCiJobsWorker) 取消。