GitLab Silent Mode
- 소개: GitLab 15.11에 도입되었습니다. 이 기능은 실험이었습니다.
- 웹 UI를 통한 Silent Mode의 활성화 및 비활성화가 GitLab 16.4에 도입되었습니다.
- Silent Mode는 GitLab 16.6에서 일반적으로 사용 가능(GA)하게 되었습니다.
Silent Mode를 통해 GitLab으로부터의 이메일과 같은 외부 통신을 중단시킬 수 있습니다. Silent Mode는 사용 중인 환경에서 사용되지 않도록 의도되었습니다. 두 가지 사용 사례는 다음과 같습니다:
- Geo 사이트 프로모션 유효성 검사. 재해 복구 솔루션의 일환으로 보조 Geo 사이트가 있는 경우, 최고의 실천 방법으로 주요 Geo 사이트로 프로모션하는 정기적인 테스트를 수행하려고 합니다. 그러나 사용자에게 가장 낮은 대기 시간을 제공하는 지역에 주요 사이트가 있으므로 실제로 전체 장애 조치를 취하고 싶지는 않습니다. 그리고 정기적인 테스트 중에 다운타임을 갖고 싶지는 않습니다. 따라서 보조 사이트의 프로모션 중에 발생하는 문제를 피하려면 Silent Mode를 활성화할 수 있습니다.
- GitLab 백업 유효성 검사. 백업이 성공적으로 복원되는지 테스트하기 위해 테스트 인스턴스를 설정했습니다. 복원 과정의 일환으로 예를 들어 Silent Mode를 활성화하여 사용자에게 잘못된 이메일을 보내지 않도록 할 수 있습니다.
Silent Mode 활성화
전제 조건:
- 관리자 액세스가 있어야 합니다.
Silent Mode를 활성화하는 여러 가지 방법이 있습니다:
-
웹 UI
- 왼쪽 사이드바에서 하단에 Admin Area를 선택합니다.
- 왼쪽 사이드바에서 Settings > General을 선택합니다.
- Silent Mode를 확장하고 Enable Silent Mode를 토글합니다.
- 변경 사항은 즉시 저장됩니다.
-
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)
적용에는 최대 1분이 소요될 수 있습니다. Issue 405433에서는 이 지연 시간을 제거하는 것을 제안하고 있습니다.
Silent Mode 비활성화
전제 조건:
- 관리자 액세스가 있어야 합니다.
Silent Mode를 비활성화하는 여러 가지 방법이 있습니다:
-
웹 UI
- 왼쪽 사이드바에서 하단에 Admin Area를 선택합니다.
- 왼쪽 사이드바에서 Settings > General을 선택합니다.
- Silent Mode를 확장하고 Enable Silent Mode를 토글합니다.
- 변경 사항은 즉시 저장됩니다.
-
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)
적용에는 최대 1분이 소요될 수 있습니다. Issue 405433에서는 이 지연 시간을 제거하는 것을 제안하고 있습니다.
Silent Mode에서의 GitLab 기능 동작
이 섹션에서는 Silent Mode가 활성화된 상태에서 GitLab의 현재 동작을 문서화합니다. Silent Mode의 첫 번째 반복 작업은 Epic 9826으로 추적됩니다.
Silent Mode가 활성화된 경우, 모든 사용자를 위해 페이지 상단에 설정이 활성화되었음을 알리는 배너가 표시되고 모든 외부 통신이 차단됩니다.라고 명시됩니다.
차단된 외부 통신
다음 기능으로부터의 외부 통신이 Silent Mode에 의해 차단됩니다.
기능 | 설명 |
---|---|
프로젝트 및 그룹 웹훅 | UI를 통한 웹훅 테스트를 활성화하면 HTTP 상태 500 응답이 발생합니다. |
시스템 훅 | |
원격 미러 | 원격 미러로의 푸시가 건너뛰어집니다. 원격 미러에서의 풀도 건너뛸 수 있습니다. |
실행 가능한 통합 | 통합은 실행되지 않습니다. |
서비스 데스크 | 수신 이메일은 여전히 문제를 발생시키지만, 서비스 데스크에 이메일을 보낸 사용자에게는 문제 생성 또는 그들의 문제에 대한 코멘트에 관해 통지되지 않습니다. |
외부 이메일 | |
외부 HTTP 요청 | 기능이 명시적으로 차단되거나 건너뛰어지지 않는 경우 많은 HTTP 요청이 차단됩니다. 이는 오류를 발생시킬 수 있습니다. 특정 오류가 Silent Mode에서 테스트하는 데 문제가 된다면 GitLab 지원팀에 문의하십시오. |
차단되지 않는 외부 통신
다음 기능으로부터의 외부 통신은 Silent Mode에 의해 차단되지 않습니다.
기능 | 설명 |
---|---|
의존성 프록시 | 캐시되지 않은 이미지를 끌어오면 여전히 소스에서 가져올 것입니다. 풀 속도 제한을 고려하십시오. |
파일 훅 | |
서버 훅 | |
고급 검색 | 두 개의 GitLab 인스턴스가 동일한 고급 검색 인스턴스를 사용하는 경우 역시 검색 데이터를 수정할 수 있습니다. 이는 예를 들어 보조 Geo 사이트를 프로모션한 후에 주요 Geo 사이트가 사용 중인 경우에 발생할 수 있는 분산된 상황입니다. |
Snowplow | 이러한 요청을 차단하는 제안이 있습니다. |
폐기된 Kubernetes 연결 | 이러한 요청을 차단하는 제안이 있습니다. |
컨테이너 레지스트리 웹훅 | 이러한 요청을 차단하는 제안이 있습니다. |