GitLab Silent Mode
Offering: 자체 호스팅
- GitLab 15.11에서 소개되었습니다. 이 기능은 실험으로 시작되었습니다.
- 웹 UI를 통한 Silent Mode의 활성화 및 비활성화는 GitLab 16.4에서 도입되었습니다.
- Silent Mode는 GitLab 16.6에서 일반적으로 사용 가능한 상태로 업데이트되었습니다.
Silent Mode을 사용하면 GitLab에서의 이메일과 같은 외부 통신을 차단할 수 있습니다. Silent Mode은 사용 중인 환경에서 사용할 목적으로는 설정되어 있지 않습니다. 다음과 같은 두 가지 사용 사례가 있습니다:
- Geo 사이트 프로모션 유효성 검사. 재해 복구 솔루션의 일부로 보조 Geo 사이트를 갖고 있습니다. 일반적인 사례로서 재해 복구 계획이 실제로 작동하는지 확인하기 위해 주기적으로 주 사이트로 승격하는 테스트를 진행하고 싶습니다. 하지만 실제로 전체 재해 복구를 수행하고 싶지는 않습니다. 또한 주 사이트는 사용자에게 가장 낮은 레이턴시를 제공하는 지역에 존재하기 때문에 정기적인 테스트 중에 다운타임을 갖고 싶지 않습니다. 따라서 보조 사이트를 승격하는 동안 주요하게 Silent Mode를 활성화하여 이 문제를 피할 수 있습니다.
- GitLab 백업의 유효성 검사. 백업이 성공적으로 복원되는지 테스트하기 위해 테스트 인스턴스를 설정했습니다. 복원의 일환으로 예를 들어 Silent Mode를 활성화하여 사용자에게 잘못된 이메일을 보내지 않도록 할 수 있습니다.
Silent Mode 활성화
사전 조건:
- 관리자 액세스해야 합니다.
Silent Mode을 활성화하는 다양한 방법이 있습니다:
-
웹 UI
- 왼쪽 사이드 바에서 아래쪽에 관리 영역을 선택합니다.
- 왼쪽 사이드 바에서 설정 > 일반을 선택합니다.
- Silent Mode를 확장하고 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
- 왼쪽 사이드 바에서 아래쪽에 관리 영역을 선택합니다.
- 왼쪽 사이드 바에서 설정 > 일반을 선택합니다.
- Silent Mode를 확장하고 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의 첫 번째 이터레이션 작업은 이슈 9826에서 추적됩니다.
Silent Mode가 활성화된 경우, 모든 사용자를 대상으로 페이지의 맨 위에 설정이 활성화되었으며 모든 외부 통신이 차단됨.이라는 배너가 표시됩니다.
차단된 외부 통신
다음 기능의 외부 통신은 Silent Mode에 의해 차단됩니다.
기능 | 참고 사항 |
---|---|
프로젝트 및 그룹 웹훅 | UI를 통한 웹훅 테스트의 트리거는 HTTP 상태 500 응답으로 결과가 반환됩니다. |
시스템 후크 | |
원격 미러 | 원격 미러로의 푸시는 건너뛰어집니다. 원격 미러로부터의 풀도 건너뛰어집니다. |
실행 가능한 통합 | 통합이 실행되지 않습니다. |
서비스 데스크 | 수신된 이메일은 여전히 이슈를 일으키지만 Service Desk로 이메일을 보낸 사용자는 이슈 생성 또는 이슈에 대한 코멘트 알림을 받지 못합니다. |
외부 이메일 | |
외부 HTTP 요청 | 특별히 차단되거나 건너뛰어질 지 정의되지 않는 많은 HTTP 요청이 차단됩니다. 이러한 경우 에러가 발생할 수 있습니다. Silent Mode에서의 테스트 중 특정 에러가 문제가 된다면 GitLab 지원팀에 문의하십시오. |
차단되지 않은 외부 통신
다음 기능의 외부 통신은 Silent Mode에 의해 차단되지 않습니다.
기능 | 참고 사항 |
---|---|
의존성 프록시 | 캐시되지 않은 이미지를 가져오는 경우 일반적으로 소스에서 가져옵니다. 풀 레이트 한도를 고려하십시오. |
파일 후크 | |
서버 후크 | |
고급 검색 | 두 GitLab 인스턴스가 동일한 고급 검색 인스턴스를 사용하는 경우 둘 다 검색 데이터를 수정할 수 있습니다. 이는 예를 들어 보조 Geo 사이트를 승격한 후 주요 Geo 사이트가 살아 있는 경우 발생할 수 있는 스플릿 브레인 시나리오입니다. |
스노우플로우 | 이 요청들을 차단하는 제안이 있습니다. |
사용되지 않는 Kubernetes 연결 | 이 요청들을 차단하는 제안이 있습니다. |
컨테이너 레지스트리 웹훅 | 이 요청들을 차단하는 제안이 있습니다. |