GitLab 침묵 모드
침묵 모드를 사용하면 GitLab에서 이메일과 같은 아웃바운드 통신을 침묵시킬 수 있습니다. 침묵 모드는 사용 중인 환경에서 사용하도록 설계되지 않았습니다. 두 가지 사용 사례는 다음과 같습니다:
- Geo 사이트 승격 검증. 재해 복구 솔루션의 일환으로 보조 Geo 사이트가 있습니다. 이를 주 Geo 사이트로 정기적으로 승격시키는 것을 테스트하기 위해 최적의 실천을 따르려고 합니다. 하지만 주요 사이트는 사용자의 낮은 대기 시간을 제공하는 지역에 위치하므로 전체 페일오버를 실제로 수행하고 싶지 않습니다. 또한 매번 정기 테스트 중에 다운타임을 원하지 않습니다. 따라서 기본 사이트는 계속 작동하는 동안 보조 사이트를 승격시킵니다. 승격된 사이트에 대한 스모크 테스트를 시작하는데, 이때 승격된 사이트가 사용자에게 이메일을 보내기 시작하고, 푸시 미러가 외부 Git 리포지토리에 푸시 변경 사항을 전송하는 등의 문제가 발생합니다. 여기서 침묵 모드가 필요합니다. 이 문제를 피하기 위해 사이트 승격의 일환으로 이를 활성화할 수 있습니다.
- GitLab 백업 검증. 백업이 성공적으로 복원되는지 테스트하기 위해 테스트 인스턴스를 설정합니다. 복원 과정의 일환으로 침묵 모드를 활성화하는데, 예를 들어 사용자에게 잘못된 이메일을 보내지 않도록 하기 위해서입니다.
침묵 모드 활성화
사전 조건:
- 관리자 접근 권한이 있어야 합니다.
침묵 모드를 활성화하는 방법은 여러 가지가 있습니다:
-
웹 UI
- 왼쪽 사이드바 하단에서 Admin을 선택합니다.
- 왼쪽 사이드바에서 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분이 걸릴 수 있습니다. 문제 405433은 이 지연을 제거할 것을 제안합니다.
침묵 모드 비활성화
사전 조건:
- 관리자 접근 권한이 있어야 합니다.
침묵 모드를 비활성화하는 방법은 여러 가지가 있습니다:
-
웹 UI
- 왼쪽 사이드바 하단에서 Admin을 선택합니다.
- 왼쪽 사이드바에서 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분이 걸릴 수 있습니다. 문제 405433은 이 지연을 제거할 것을 제안합니다.
GitLab 기능의 비활동 모드에서의 동작
이 섹션에서는 비활동 모드가 활성화되었을 때 GitLab의 현재 동작을 문서화합니다. 비활동 모드의 첫 번째 반복 작업은 Epic 9826에서 추적됩니다.
비활동 모드가 활성화되면 페이지 상단에 모든 사용자에게 설정이 활성화되었으며 모든 아웃바운드 통신이 차단됩니다.라는 배너가 표시됩니다.
침묵된 아웃바운드 통신
비활동 모드에 의해 다음 기능에서의 아웃바운드 통신이 침묵됩니다.
기능 | 노트 |
---|---|
GitLab Duo | GitLab Duo 기능은 외부 언어 모델 제공업체와 연락할 수 없습니다. |
프로젝트 및 그룹 웹훅 | UI를 통해 웹훅 테스트를 트리거하면 HTTP 상태 500 응답이 발생합니다. |
시스템 훅 | |
원격 미러 | 원격 미러로의 푸시는 건너뜁니다. 원격 미러로부터의 풀은 건너뜁니다. |
실행 가능한 통합 | 통합은 실행되지 않습니다. |
서비스 데스크 | 들어오는 이메일은 여전히 이슈를 제기하지만, 서비스 데스크에 이메일을 보낸 사용자들은 이슈 생성이나 이슈에 대한 댓글 알림을 받지 않습니다. |
아웃바운드 이메일 | GitLab에서 이메일을 전송해야 하는 순간에 대신 이메일이 삭제됩니다. 어디에도 대기열에 올라가지 않습니다. |
아웃바운드 HTTP 요청 | 많은 HTTP 요청이 명시적으로 차단되거나 건너뛰지 않는 경우 차단됩니다. 이로 인해 오류가 발생할 수 있습니다. 비활동 모드에서 특정 오류가 테스트 중에 문제가 된다면 GitLab 지원에 문의하세요. |
침묵되지 않은 아웃바운드 통신
비활동 모드에서 다음 기능의 아웃바운드 통신은 침묵되지 않습니다.
기능 | 노트 |
---|---|
Dependency proxy | 캐시되지 않은 이미지를 가져오는 것은 원본에서 정상적으로 발생합니다. 풀 속도 제한을 고려하세요. |
파일 훅 | |
서버 훅 | |
고급 검색 | 두 GitLab 인스턴스가 동일한 고급 검색 인스턴스를 사용 중인 경우, 두 인스턴스 모두 검색 데이터를 수정할 수 있습니다. 이는 예를 들어 보조 Geo 사이트를 승격하는 동안 기본 Geo 사이트가 활성화되어 있는 경우와 같은 분할 뇌 시나리오가 발생할 수 있습니다. |
Snowplow | 이러한 요청을 침묵시키는 제안이 있습니다. |
사용 중단된 Kubernetes 연결 | 이러한 요청을 침묵시키는 제안이 있습니다. |
컨테이너 레지스트리 웹훅 | 이러한 요청을 침묵시키는 제안이 있습니다. |