极狐GitLab 静默模式

  • Tier: 基础版,专业版,旗舰版
  • Offering: 私有化部署
History
    • 引入于极狐GitLab 15.11。此功能是一个实验性功能。
    • 通过 web UI 启用/禁用静默模式的功能引入于极狐GitLab 16.4。
    • 在极狐GitLab 16.6 中 GA。

静默模式允许您禁用来自极狐GitLab 的外部通信,例如电子邮件。静默模式不适用于正在使用的环境。两个用例是:

  • 验证 Geo 站点提升。您有一个次要 Geo 站点,作为您灾难恢复解决方案的一部分。为了确保您的灾难恢复计划确实有效,您需要定期测试将其提升为主要 Geo 站点作为最佳实践。但是您不希望实际执行整个故障转移,因为主要站点位于为用户提供最低延迟的区域中。而且您不想在每次常规测试期间停机。所以,您让主要站点保持运行,同时提升次要站点。您开始对提升的站点进行冒烟测试。但是,提升的站点开始向用户发送电子邮件,推送镜像将更改推送到外部 Git 仓库等。这时静默模式就派上用场了。您可以在站点提升时启用它,以避免此问题。
  • 验证极狐GitLab 备份。您设置了一个测试实例,以测试您的备份是否成功恢复。作为恢复的一部分,您启用静默模式,例如避免向用户发送无效电子邮件。

启用静默模式#

先决条件:

  • 您必须拥有管理员权限。

有多种方法可以启用静默模式:

  • Web UI

    1. 在左侧边栏底部,选择管理员
    2. 在左侧边栏,选择设置 > 常规
    3. 展开静默模式,并切换启用静默模式
    4. 更改会立即保存。
  • API:

    shell
    curl --request PUT --header "PRIVATE-TOKEN:$ADMIN_TOKEN" "<gitlab-url>/api/v4/application/settings?silent_mode_enabled=true"
  • Rails console:

    ruby
    ::Gitlab::CurrentSettings.update!(silent_mode_enabled: true)

可能需要一分钟才能生效。

禁用静默模式#

先决条件:

  • 您必须拥有管理员权限。

有多种方法可以禁用静默模式:

  • Web UI

    1. 在左侧边栏底部,选择管理员
    2. 在左侧边栏,选择设置 > 常规
    3. 展开静默模式,并切换启用静默模式
    4. 更改会立即保存。
  • API:

    shell
    curl --request PUT --header "PRIVATE-TOKEN:$ADMIN_TOKEN" "<gitlab-url>/api/v4/application/settings?silent_mode_enabled=false"
  • Rails console:

    ruby
    ::Gitlab::CurrentSettings.update!(silent_mode_enabled: false)

可能需要一分钟才能生效。

极狐GitLab 功能在静默模式下的行为#

本节记录了启用静默模式时极狐GitLab 的当前行为。

当启用静默模式时,页面顶部会为所有用户显示一个横幅,说明设置已启用,并且所有外部通信都被阻止。

被静默的外部通信#

以下功能的外部通信被静默模式静默。

功能备注
项目和群组 webhooks通过 UI 触发的 webhook 测试会导致 HTTP 状态 500 响应。
系统 hooks
远程镜像推送到远程镜像的操作被跳过。从远程镜像拉取的操作也被跳过。
可执行集成集成不会被执行。
服务台收到的电子邮件仍会引发议题,但发送电子邮件给服务台的用户不会收到议题创建或议题评论的通知。
外部电子邮件在极狐GitLab 发送电子邮件的时刻,它会被丢弃。不会在任何地方排队。
外部 HTTP 请求许多 HTTP 请求被阻止,其中功能没有被明确阻止或跳过。这些可能会产生错误。如果某个特定错误在静默模式测试期间有问题,请咨询极狐GitLab 支持

未被静默的外部通信#

以下功能的外部通信未被静默模式静默。

功能备注
依赖代理拉取未缓存的镜像将像往常一样从源获取。考虑拉取速率限制。
文件 hooks
服务器 hooks
高级搜索如果两个极狐GitLab 实例使用相同的高级搜索实例,则它们都可以修改搜索数据。这是一种脑裂场景,例如在提升次要 Geo 站点的同时主要 Geo 站点仍然在线时可能发生。
Snowplow有一个静默这些请求的提议
已弃用的 Kubernetes 连接有一个静默这些请求的提议。
容器注册表 webhooks有一个静默这些请求的提议。