极狐GitLab CI/CD 实例配置
极狐GitLab 管理员可以管理其实例的极狐GitLab CI/CD 配置。
在新项目中禁用极狐GitLab CI/CD
极狐GitLab CI/CD 在实例上的所有新项目中默认启用。你可以通过修改以下设置来默认禁用新项目中的 CI/CD:
- 针对自编译安装,修改
gitlab.yml
。 - 针对 Linux 软件包安装,修改
gitlab.rb
。
已启用 CI/CD 的现有项目不会受到影响。此外,此设置仅更改项目的默认值,因此项目所有者仍然可以在项目设置中启用 CI/CD。
对于自编译安装:
-
使用编辑器打开
gitlab.yml
并将builds
设置为false
:## Default project features settings default_projects_features: issues: true merge_requests: true wiki: true snippets: false builds: false
-
保存
gitlab.yml
文件。 -
重启极狐GitLab:
sudo service gitlab restart
对于 Linux 软件包安装:
-
编辑
/etc/gitlab/gitlab.rb
并添加以下行:gitlab_rails['gitlab_default_projects_features_builds'] = false
-
保存
/etc/gitlab/gitlab.rb
文件。 -
重新配置极狐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:03
、0:13
、0:23
开始,依此类推)。极狐GitLab.com 的默认频率列在极狐GitLab.com 设置中。
要更改流水线计划工作程序的频率:
- 编辑实例的
gitlab.rb
文件中的gitlab_rails['pipeline_schedule_worker_cron']
值。 - 重新配置极狐GitLab以使更改生效。
例如,要将流水线的最大频率设置为每天两次,将 pipeline_schedule_worker_cron
设置为 cron 值 0 */12 * * *
(每天的 00:00
和 12:00
)。
灾难恢复
您可以禁用应用程序中一些重要但计算密集的部分,以在持续停机期间减轻数据库的压力。
禁用实例Runner上的公平调度
在清除大量任务积压时,可以暂时启用 ci_queueing_disaster_recovery_disable_fair_scheduling
功能标志。此标志禁用实例Runner 上的公平调度,从而减少 jobs/request
端点上的系统资源使用。
启用后,任务将按照它们被放入系统的顺序处理,而不是在多个项目之间平衡。
禁用计算配额强制
要禁用实例Runner上计算分钟配额的强制执行,可以暂时启用 ci_queueing_disaster_recovery_disable_quota
功能标志。此标志减少 jobs/request
端点上的系统资源使用。
启用后,最后一小时内创建的任务可以在超出配额的项目中运行。较早的任务已经由周期性后台工作程序 (StuckCiJobsWorker
) 取消。