gitea-sync 모듈)에서 실행됩니다. Git 연동이 필요합니다. OAuth 애플리케이션 생성과 각 설정의 역할은 Gitea 동기화를 참고하세요. 이 페이지에서는 이를 Kubernetes에 적용합니다.
구성
1
ConfigMap
30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true"와 Git 연동의 git-bridge StatefulSet이 준비되어 있어야 합니다. 그렇지 않으면 계정 설정과 에디터에서 Gitea 동기화가 숨겨집니다.2
Secret
GITEA_TOKEN_CIPHER_PASSWORD는 MongoDB에 저장되는 사용자의 Gitea 액세스 토큰과 리프레시 토큰을 암호화합니다. 모든 레플리카가 같은 값을 사용해야 하며, 나중에 이 값을 변경하면 모든 사용자가 Gitea를 다시 연결해야 합니다.3
사설 CA(선택 사항)
Gitea가 자체 CA에서 발급한 인증서를 사용한다면, 해당 CA를
/var/lib/overleaf/certs에 마운트된 Secret overleaf-certs에 추가하고(인증서 및 기타 파일 참고) ConfigMap에 NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem을 설정하세요.4
적용, 재시작 및 확인
000은 접근할 수 없다는 뜻입니다.여러 레플리카
공유GITEA_TOKEN_CIPHER_PASSWORD 외에는 추가 작업이 없습니다. 동기화는 다른 Git 동기화와 공유되는 Redis의 잠금을 사용하므로, 두 레플리카가 같은 프로젝트를 동시에 동기화하는 일은 없습니다.
Kubernetes에서의 테스트
GITEA_SYNC_URL에 실제 Gitea 1.23을 두고 레플리카 하나와 Git 연동을 켠 Kubernetes 1.37 환경에서, Gitea 동기화에 대한 엔드투엔드 테스트(39개 케이스)가 통과했습니다. 테스트 항목은 Gitea의 OAuth2를 통한 계정 연결 및 연결 해제, 만료되는 액세스 토큰 갱신과 취소된 권한 부여, 새 비공개 저장소 또는 조직 저장소로 내보내기, 저장소 가져오기, 풀과 푸시, 병합, 충돌, 삭제되거나 강제 푸시된 브랜치, 바이너리 파일, 이름 변경과 삭제, 그리고 소유자·편집자·뷰어가 할 수 있는 작업입니다.
