gitea-sync-Modul) jedes Ayakaleaf-Pro-Pods. Sie benötigt die Git-Integration. Erstellen Sie die OAuth-Anwendung und lesen Sie, was jede Einstellung bewirkt, unter Gitea-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 Git-Integration müssen vorhanden sein: Ohne sie blenden die Kontoeinstellungen und der Editor die Gitea-Synchronisierung aus.2
Secret
GITEA_TOKEN_CIPHER_PASSWORD verschlüsselt die Gitea-Access- und Refresh-Tokens der Benutzer in MongoDB. Jedes Replikat muss denselben Wert verwenden, und eine spätere Änderung zwingt jeden Benutzer, Gitea erneut zu verknüpfen.3
Private CA (optional)
Wenn Ihr Gitea ein Zertifikat Ihrer eigenen CA hat, fügen Sie die CA zum Secret
overleaf-certs hinzu, das unter /var/lib/overleaf/certs eingehängt 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
Über das gemeinsameGITEA_TOKEN_CIPHER_PASSWORD hinaus nichts weiter. Eine Synchronisierung setzt eine Sperre in Redis, die mit den anderen Git-Synchronisierungen geteilt wird, sodass zwei Replikate nie gleichzeitig dasselbe Projekt synchronisieren.
Getestet auf Kubernetes
Gegen ein echtes Gitea 1.23 unterGITEA_SYNC_URL bestehen auf Kubernetes 1.37 mit einem Replikat und aktivierter Git-Integration unsere End-to-End-Tests für die Gitea-Synchronisierung (39 Fälle): Verknüpfen und Trennen des Kontos über Giteas OAuth2, Erneuern des ablaufenden Access-Tokens und widerrufene Berechtigungen, Export in ein neues privates oder Organisations-Repository, Import eines Repositorys, Pull und Push, Merges, Konflikte, gelöschte und per Force-Push überschriebene Branches, Binärdateien, Umbenennungen und Löschungen sowie das, was Eigentümer, Bearbeiter und Betrachter tun dürfen.
