gitlab-sync) de chaque pod Ayakaleaf Pro. Elle nécessite l’intégration Git. Créez l’application OAuth et découvrez le rôle de chaque paramètre dans Synchronisation GitLab ; cette page en décrit la mise en œuvre dans Kubernetes.
Configuration
1
ConfigMap
30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" et le StatefulSet git-bridge décrits dans Intégration Git doivent être en place : sans eux, les paramètres du compte et l’éditeur masquent la synchronisation GitLab.2
Secret
GITLAB_TOKEN_CIPHER_PASSWORD chiffre les jetons d’accès et de rafraîchissement GitLab des utilisateurs dans MongoDB. Toutes les répliques doivent utiliser la même valeur, et la modifier ultérieurement oblige chaque utilisateur à lier à nouveau GitLab.3
Autorité de certification privée (facultatif)
Si votre GitLab utilise un certificat émis par votre propre autorité de certification, ajoutez celle-ci au Secret
overleaf-certs monté sur /var/lib/overleaf/certs (voir Certificats et autres fichiers) et définissez NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem dans le ConfigMap.4
Appliquer, redémarrer et vérifier
000 signifie qu’il ne l’est pas.Plusieurs répliques
Rien de plus que leGITLAB_TOKEN_CIPHER_PASSWORD partagé. Une synchronisation prend un verrou dans Redis, partagé avec les autres synchronisations Git, de sorte que deux répliques ne synchronisent jamais le même projet en même temps. Le rafraîchissement du jeton GitLab d’un utilisateur prend également un verrou Redis, afin que deux répliques ne le rafraîchissent pas simultanément.
Testé sur Kubernetes
Face à une simulation d’un GitLab autogéré surGITLAB_SYNC_URL (approuvée via NODE_EXTRA_CA_CERTS depuis overleaf-certs), sur Kubernetes 1.37 avec une réplique et l’intégration Git activée, nos tests de bout en bout de la synchronisation GitLab réussissent (40 cas) : liaison et déliaison du compte, rafraîchissement d’un jeton d’accès qui expire et jetons révoqués, export vers un nouveau projet privé ou de groupe, import d’un dépôt, récupération (pull) et envoi (push), fusions, conflits, branches supprimées et réécrites par push forcé, fichiers binaires, renommages et suppressions, et ce que les propriétaires, éditeurs et lecteurs peuvent faire.
