${OVERLEAF_SITE_URL}/git/<project id>; der Ayakaleaf-Pro-Pod leitet diese Anfragen an git-bridge weiter, und git-bridge ruft für Projektinhalte und Verlauf den Pod zurück. Das Aktivieren schaltet außerdem den MCP-Server frei und ist für die GitHub-, GitLab-, Gitea- und Dropbox-Synchronisierung erforderlich.
Diese Seite erweitert die Installation mit einem Replikat aus Kubernetes verwenden. Für mehrere Replikate siehe Horizontale Skalierung.
1
git-bridge bereitstellen
45-git-bridge.yaml
10.96.100.80 muss eine freie Adresse innerhalb des Service-CIDR Ihres Clusters sein (der Standard von kubeadm ist 10.96.0.0/12).2
Ayakaleaf Pro darauf verweisen
Fügen Sie Folgendes zu
30-config.yaml hinzu:30-config.yaml (additions)
3
Ein Projekt klonen
Erstellen Sie in den Account Settings ein Git-Authentifizierungstoken und führen Sie dann Folgendes aus:Verwenden Sie
git als Benutzernamen und das Token als Passwort.Warum das Manifest so aussieht
- Eine feste ClusterIP als
GIT_BRIDGE_HOST. Der nginx im Ayakaleaf-Pro-Image leitet/git/mit einem auf127.0.0.11gesetzten Resolver weiter, dem integrierten DNS von Docker. Kubernetes hat dort keinen DNS-Server, daher schlägt ein Hostname wiegit-bridgemit502und “git-bridge could not be resolved” in/var/log/nginx/error.logfehl. Eine IP-Adresse erfordert keine Namensauflösung. overleaf-internal. git-bridge benötigt die Ports3000(web-API) und3100(Verlauf) des Ayakaleaf-Pro-Pods. Ein separater ClusterIP-Service hält sie innerhalb des Clusters; würden sie zum NodePort-Service hinzugefügt, wären sie auf jedem Knoten veröffentlicht.enableServiceLinks: false. Der Servicegit-bridgewürde Kubernetes veranlassen,GIT_BRIDGE_PORT=tcp://10.96.100.80:8000zum Pod hinzuzufügen; git-bridge liestGIT_BRIDGE_PORTals seinen Listening-Port und bricht mitMalformedJsonException ... path $.portab.- Ein Replikat mit eigenem Volume. git-bridge speichert ein Git-Repository pro geklontem Projekt auf der Festplatte und darf nicht doppelt laufen. Sichern Sie sein Volume.
Getestet auf Kubernetes
Auf Kubernetes 1.37 mit drei Replikaten hinter HAProxy und git-bridge als Sibling vonoverleaf-0 bestehen unsere End-to-End-Tests für die Git-Integration (19 Fälle), auch wenn git-bridge auf Port 8001 verlegt ist, sodass nginx GIT_BRIDGE_HOST und GIT_BRIDGE_PORT verwenden muss: Git-Tokens in den Kontoeinstellungen, der Klon-Befehl im Editor, Clone, Push und Pull, Binärdateien und Ordner, Umbenennungen und Löschungen, abgelehnte veraltete Pushes, Zugriff nach Rolle (eingeladene Bearbeiter und Bearbeiter über den Link dürfen pushen, Betrachter und Reviewer dürfen nur klonen, Benutzer ohne Zugriff werden abgelehnt), abgelehnte falsche und gelöschte Tokens, hinter nginx gehaltene interne Routen von git-bridge sowie gesperrte Konten. Die Git-Authentifizierungstokens selbst (Erzeugen, Auflisten, das Limit pro Benutzer, Löschen, Ablauf, die Prüfung, die git-bridge bei web anfragt, sowie Tokens gesperrter und gelöschter Konten) bestehen auf einem Replikat (16 Fälle).
Q&A
git clone gibt 502 zurück.
git clone gibt 502 zurück.
Antwort: Prüfen Sie
GIT_BRIDGE_HOST: Es muss die IP-Adresse des git-bridge-Service sein, nicht sein Name, siehe oben. kubectl -n overleaf exec deploy/overleaf -- tail /var/log/nginx/error.log zeigt den Grund an.
