gitlab-sync) van elke Ayakaleaf Pro-pod. Ze vereist de Git-integratie. Maak de OAuth-applicatie aan en lees wat elke instelling doet in GitLab-synchronisatie; deze pagina zet het om naar Kubernetes.
Configuratie
1
ConfigMap
30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" en de git-bridge-StatefulSet uit Git-integratie moeten aanwezig zijn: zonder deze verbergen de accountinstellingen en de editor GitLab-synchronisatie.2
Secret
GITLAB_TOKEN_CIPHER_PASSWORD versleutelt de GitLab-toegangs- en vernieuwingstokens van de gebruikers in MongoDB. Elke replica moet dezelfde waarde gebruiken, en als je deze later wijzigt, moet elke gebruiker GitLab opnieuw koppelen.3
Private CA (optioneel)
Als je GitLab een certificaat van je eigen CA heeft, voeg de CA dan toe aan de Secret
overleaf-certs die is gekoppeld op /var/lib/overleaf/certs (zie Certificaten en andere bestanden) en stel NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem in de ConfigMap in.4
Toepassen, herstarten en controleren
000 betekent dat dat niet zo is.Meerdere replica’s
Niets extra’s naast de gedeeldeGITLAB_TOKEN_CIPHER_PASSWORD. Een synchronisatie neemt een lock in Redis, gedeeld met de andere Git-synchronisaties, zodat twee replica’s nooit tegelijk hetzelfde project synchroniseren. Het vernieuwen van het GitLab-token van een gebruiker neemt ook een Redis-lock, zodat twee replica’s het niet tegelijkertijd vernieuwen.
Getest op Kubernetes
Tegen een mock van een zelfbeheerde GitLab opGITLAB_SYNC_URL (vertrouwd via NODE_EXTRA_CA_CERTS uit overleaf-certs), op Kubernetes 1.37 met één replica en de Git-integratie ingeschakeld, slagen onze end-to-endtests voor GitLab-synchronisatie (40 gevallen): het account koppelen en ontkoppelen, een verlopend toegangstoken vernieuwen en ingetrokken tokens, exporteren naar een nieuw privé- of groepsproject, een repository importeren, pullen en pushen, merges, conflicten, verwijderde en geforceerd gepushte branches, binaire bestanden, hernoemingen en verwijderingen, en wat eigenaren, bewerkers en kijkers mogen doen.
