gitlab-sync) i hver Ayakaleaf Pro-pod. Den krever Git-integrasjonen. Opprett OAuth-applikasjonen og les hva hver innstilling gjør i GitLab-synkronisering; denne siden overfører det til Kubernetes.
Konfigurasjon
1
ConfigMap
30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" og git-bridge-StatefulSet-en fra Git-integrasjon må være på plass: uten dem skjuler kontoinnstillingene og redigeringsprogrammet GitLab-synkronisering.2
Secret
GITLAB_TOKEN_CIPHER_PASSWORD krypterer brukernes GitLab-tilgangs- og oppdateringstokener i MongoDB. Alle replikaer må bruke samme verdi, og hvis du endrer den senere, må alle brukere koble til GitLab på nytt.3
Privat CA (valgfritt)
Hvis GitLab-instansen din har et sertifikat fra din egen CA, legger du CA-en til i Secret-en
overleaf-certs som er montert på /var/lib/overleaf/certs (se Sertifikater og andre filer) og angir NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem i ConfigMap-en.4
Bruk, start på nytt og kontroller
000 betyr at den ikke kan det.Flere replikaer
Ingenting ekstra utover den delteGITLAB_TOKEN_CIPHER_PASSWORD. En synkronisering tar en lås i Redis, delt med de andre Git-synkroniseringene, slik at to replikaer aldri synkroniserer det samme prosjektet samtidig. Oppdatering av en brukers GitLab-token tar også en Redis-lås, slik at to replikaer ikke oppdaterer det samtidig.
Testet på Kubernetes
Mot en etterligning av en selvadministrert GitLab påGITLAB_SYNC_URL (klarert via NODE_EXTRA_CA_CERTS fra overleaf-certs), på Kubernetes 1.37 med én replika og Git-integrasjonen slått på, består ende-til-ende-testene våre for GitLab-synkronisering (40 tilfeller): tilkobling og frakobling av kontoen, oppdatering av et tilgangstoken som er i ferd med å utløpe og tilbakekalte tokener, eksport til et nytt privat prosjekt eller gruppeprosjekt, import av et repositorium, pull og push, sammenslåinger, konflikter, slettede og tvangspushede grener, binærfiler, omdøpinger og slettinger, og hva eiere, redaktører og lesere har lov til å gjøre.
