gitlab-sync) i hver Ayakaleaf Pro-pod. Den kræver Git-integrationen. Opret OAuth-applikationen, og læs, hvad hver indstilling gør, under GitLab-synkronisering; denne side omsætter det til Kubernetes.
Konfiguration
1
ConfigMap
30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" og git-bridge-StatefulSet’et fra Git-integration skal være på plads: uden dem skjuler kontoindstillingerne og editoren GitLab-synkronisering.2
Secret
GITLAB_TOKEN_CIPHER_PASSWORD krypterer brugernes GitLab-adgangs- og refresh-tokens i MongoDB. Alle replikaer skal bruge den samme værdi, og hvis den ændres senere, skal alle brugere forbinde GitLab igen.3
Privat CA (valgfrit)
Hvis din GitLab har et certifikat fra din egen CA, skal du tilføje CA’en til Secret’et
overleaf-certs, der er monteret på /var/lib/overleaf/certs (se Certifikater og andre filer), og sætte NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem i ConfigMap’et.4
Anvend, genstart og kontrollér
000 betyder, at den ikke kan.Flere replikaer
Intet ekstra ud over den fællesGITLAB_TOKEN_CIPHER_PASSWORD. En synkronisering tager en lås i Redis, som deles med de andre Git-synkroniseringer, så to replikaer aldrig synkroniserer det samme projekt på samme tid. Fornyelse af en brugers GitLab-token tager også en Redis-lås, så to replikaer ikke fornyer det på samme tid.
Testet på Kubernetes
Mod en mock af en selvadministreret GitLab påGITLAB_SYNC_URL (der stoles på via NODE_EXTRA_CA_CERTS fra overleaf-certs), på Kubernetes 1.37 med én replika og Git-integrationen slået til, består vores end-to-end-tests for GitLab-synkronisering (40 tilfælde): forbindelse og afbrydelse af kontoen, fornyelse af et udløbende adgangstoken og tilbagekaldte tokens, eksport til et nyt privat projekt eller gruppeprojekt, import af et repository, pull og push, merges, konflikter, slettede og force-pushede branches, binære filer, omdøbninger og sletninger samt hvad ejere, redaktører og læsere må gøre.
