极狐GitLab 静默模式
- 引入于 15.11 版本。此功能处于实验状态。
- 从 16.4 版本开始,可以在 UI 上启用和禁用此功能。
- 从 16.6 版本开始,变为 GA。
静默模式允许您抑制来自极狐GitLab 的通信,例如电子邮件。静默模式不适用于正在使用的环境。用例:
- 验证 Geo 站点提升。作为灾难恢复解决方案的一部分,您有一个 Geo 次要站点。您希望定期测试将其提升为主要 Geo 站点,作为确保您的灾难恢复计划真正起作用的最佳实践。但是您不想实际执行整个故障转移,因为主要站点位于为您的用户提供最低延迟的区域。而且您不想在每次常规测试期间都停机。因此,您希望主站点保持运行状态,同时提升次要站点。您开始对提升的站点进行冒烟测试,但是提升的站点开始向用户发送电子邮件,推送镜像功能将更改推送到外部 Git 仓库等。这就是静默模式的用武之地,您可以将其作为站点提升的一部分启用,来避免这些问题。
- 验证极狐GitLab 备份。您设置了一个测试实例来测试您的备份是否成功还原。作为恢复的一部分,您启用静默模式,避免向用户发送无效电子邮件。
启用静默模式
先决条件:
- 您必须具有管理员权限。
有多种方法可以启用静默模式:
-
Web UI
- 在左侧导航栏底部,选择 管理员。
- 在左侧导航栏,选择 设置 > 通用。
- 展开 静默 部分,并切换 启用静默模式。
- 保存更改。
-
API:
curl --request PUT --header "PRIVATE-TOKEN:$ADMIN_TOKEN" "<gitlab-url>/api/v4/application/settings?silent_mode_enabled=true"
-
::Gitlab::CurrentSettings.update!(silent_mode_enabled: true)
最多可能需要一分钟才能生效。
禁用静默模式
先决条件:
- 您必须具有管理员权限。
有多种方法可以禁用静默模式:
-
Web UI
- 在左侧导航栏底部,选择 管理员。
- 在左侧导航栏,选择 设置 > 通用。
- 展开 静默 部分,并切换 启用静默模式。
- 保存更改。
-
API:
curl --request PUT --header "PRIVATE-TOKEN:$ADMIN_TOKEN" "<gitlab-url>/api/v4/application/settings?silent_mode_enabled=false"
-
::Gitlab::CurrentSettings.update!(silent_mode_enabled: false)
最多可能需要一分钟才能生效。
极狐GitLab 功能在静默模式下的行为
This section documents the current behavior of GitLab when Silent Mode is enabled. The work for the first iteration of Silent Mode is tracked by Epic 9826.
When Silent Mode is enabled, a banner is displayed at the top of the page for all users stating the setting is enabled and All outbound communications are blocked..
外部通信被静默
下面功能的外部通信会被静默模式静默:
功能 | 说明 |
---|---|
项目和群组 webhooks | 通过在 HTTP 状态 500 响应中的 UI 结果来触发 webhook。 |
系统 hooks | |
Remote mirrors | 推送到远端镜像被跳过。从远端镜像拉取也被跳过。 |
可执行的集成 | 集成未执行。 |
服务桌面 | 接收到的电子邮件仍然会创建问题,但是发送电子邮件到服务台的用户不会收到问题创建或对他们的问题的评论的通知。 |
Outbound 邮件 | 在应该由极狐GitLab 发送电子邮件的时刻,电子邮件却被丢弃了。它没有被排入任何队列中。 |
Outbound HTTP 请求 | 需要 HTTP 请求在没有明确阻止或跳过功能的地方被阻止了。这些可能会产生错误。如果在静默模式下测试时遇到特定错误问题,可以在极狐GitLab 论坛求助 |
不被静默的外部通信
下面功能的外部通信不会被静默模式静默:
功能 | 说明 |
---|---|
依赖代理 | 拉取那些没有缓存的镜像就像从源拉取一样。需要考虑拉取速率限制。 |
文件 hooks | |
服务器 hooks | |
高级搜索 | 如果两个极狐GitLab 实例使用相同的高级搜索实例,他们都可以同时修改搜索数据。这是一种脑裂场景,例如,在主 Geo 站点仍然活跃时提升次要 Geo 站点后可能会发生。 |
Snowplow | 有一个提议想静默这些请求。 |
弃用的 Kubernetees 连接 | 有一个提议想静默这些请求。 |
容器镜像仓库 webhooks | 有一个提议想静默这些请求。 |