${OVERLEAF_SITE_URL}/git/<project id> ; le pod Ayakaleaf Pro transmet ces requêtes à git-bridge, et git-bridge rappelle le pod pour obtenir le contenu et l’historique des projets. L’activer active également le serveur MCP, et elle est requise par la synchronisation GitHub, GitLab, Gitea et Dropbox.
Cette page complète l’installation à un seul réplica de Utiliser Kubernetes. Pour plusieurs réplicas, voir Mise à l’échelle horizontale.
1
Déployer git-bridge
45-git-bridge.yaml
10.96.100.80 doit être une adresse libre dans le CIDR des services de votre cluster (la valeur par défaut de kubeadm est 10.96.0.0/12).2
Faire pointer Ayakaleaf Pro vers git-bridge
Ajoutez à
30-config.yaml :30-config.yaml (additions)
3
Cloner un projet
Créez un jeton d’authentification Git dans Account Settings, puis :Utilisez
git comme nom d’utilisateur et le jeton comme mot de passe.Pourquoi le manifeste se présente ainsi
- Une ClusterIP fixe comme
GIT_BRIDGE_HOST. Le nginx de l’image Ayakaleaf Pro transmet/git/avec un resolver défini sur127.0.0.11, le DNS intégré de Docker. Kubernetes n’a pas de serveur DNS à cette adresse ; un nom d’hôte tel quegit-bridgeéchoue donc avec502et « git-bridge could not be resolved » dans/var/log/nginx/error.log. Une adresse IP ne nécessite aucune résolution. overleaf-internal. git-bridge a besoin des ports3000(API web) et3100(historique) du pod Ayakaleaf Pro. Un Service ClusterIP distinct les garde à l’intérieur du cluster ; les ajouter au Service NodePort les publierait sur chaque nœud.enableServiceLinks: false. Le Servicegit-bridgeamènerait Kubernetes à ajouterGIT_BRIDGE_PORT=tcp://10.96.100.80:8000au pod ; git-bridge litGIT_BRIDGE_PORTcomme son port d’écoute et s’arrête avecMalformedJsonException ... path $.port.- Un seul réplica avec son propre volume. git-bridge conserve sur disque un dépôt git par projet cloné et ne doit pas s’exécuter deux fois. Sauvegardez son volume.
Testé sur Kubernetes
Sur Kubernetes 1.37 avec trois réplicas derrière HAProxy et git-bridge comme voisin (sibling) deoverleaf-0, nos tests de bout en bout pour l’intégration Git réussissent (19 cas), y compris avec git-bridge déplacé sur le port 8001 afin que nginx doive utiliser GIT_BRIDGE_HOST et GIT_BRIDGE_PORT : les jetons Git dans les paramètres du compte, la commande de clonage dans l’éditeur, le clone, le push et le pull, les fichiers binaires et les dossiers, les renommages et suppressions, le refus des pushes obsolètes, l’accès selon le rôle (les éditeurs invités et les éditeurs via le lien peuvent pousser, les lecteurs et les relecteurs peuvent seulement cloner, les utilisateurs sans accès sont refusés), le refus des jetons erronés et supprimés, les routes internes de git-bridge maintenues derrière nginx, et les comptes suspendus. Les jetons d’authentification Git eux-mêmes (génération, liste, limite par utilisateur, suppression, expiration, vérification que git-bridge demande à web, et jetons des comptes suspendus et supprimés) réussissent sur un réplica (16 cas).
Questions-réponses
git clone renvoie 502.
git clone renvoie 502.
Réponse : Vérifiez
GIT_BRIDGE_HOST : il doit s’agir de l’adresse IP du Service git-bridge, et non de son nom, voir ci-dessus. kubectl -n overleaf exec deploy/overleaf -- tail /var/log/nginx/error.log en indique la raison.
