github-sync) jedes Ayakaleaf Pro-Pods. Sie benötigt die Git-Integration. Wie Sie die OAuth-Anwendung erstellen und was die einzelnen Einstellungen bewirken, lesen Sie unter GitHub-Synchronisierung; diese Seite überträgt das auf Kubernetes.
Konfiguration
1
ConfigMap
30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" und das git-bridge-StatefulSet aus der Git-Integration müssen vorhanden sein: Ohne sie blenden die Kontoeinstellungen und der Editor die GitHub-Synchronisierung aus.2
Secret
GITHUB_TOKEN_CIPHER_PASSWORD verschlüsselt die GitHub-Zugriffstoken der Benutzer in MongoDB. Jedes Replikat muss denselben Wert verwenden, und eine spätere Änderung zwingt alle Benutzer, GitHub erneut zu verknüpfen.3
Private CA (optional)
Wenn Ihr GitHub ein Zertifikat Ihrer eigenen CA verwendet, fügen Sie die CA dem Secret
overleaf-certs hinzu, das unter /var/lib/overleaf/certs eingebunden ist (siehe Zertifikate und andere Dateien), und setzen Sie NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem in der ConfigMap.4
Anwenden, neu starten und prüfen
000 bedeutet, dass es nicht erreichbar ist.Mehrere Replikate
Außer dem gemeinsamenGITHUB_TOKEN_CIPHER_PASSWORD ist nichts weiter nötig. Eine Synchronisierung setzt eine Sperre in Redis, die mit den anderen Git-Synchronisierungen geteilt wird, sodass zwei Replikate nie gleichzeitig dasselbe Projekt synchronisieren.
Auf Kubernetes getestet
Gegen einen Mock von github.com und seinen REST- und GraphQL-APIs (vertraut überNODE_EXTRA_CA_CERTS aus overleaf-certs) bestehen auf Kubernetes 1.37 mit einem Replikat und aktivierter Git-Integration unsere End-to-End-Tests für die GitHub-Synchronisierung (31 Fälle): Verknüpfen und Trennen des Kontos, widerrufene Token, Export eines Projekts in ein neues privates oder Organisations-Repository, Import eines Repositorys (auch über dem Upload-Limit), Pull und Push, Merges, Konflikte und manuelle Merges, gelöschte und per Force-Push überschriebene Branches, Binärdateien, Umbenennungen und Löschungen, Verlust der Push-Berechtigung sowie die Befugnisse von Besitzern, Bearbeitern und Betrachtern.
