gitlab-sync) di ogni pod di Ayakaleaf Pro. Richiede l’integrazione Git. Crea l’applicazione OAuth e leggi cosa fa ciascuna impostazione in Sincronizzazione con GitLab; questa pagina la riporta su Kubernetes.
Configurazione
1
ConfigMap
30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" e lo StatefulSet di git-bridge descritto in Integrazione Git devono essere presenti: senza di essi le impostazioni dell’account e l’editor nascondono la sincronizzazione con GitLab.2
Secret
GITLAB_TOKEN_CIPHER_PASSWORD cifra i token di accesso e di refresh GitLab degli utenti in MongoDB. Tutte le repliche devono usare lo stesso valore, e modificarlo in seguito obbliga ogni utente a collegare di nuovo GitLab.3
CA privata (facoltativo)
Se il tuo GitLab usa un certificato emesso dalla tua CA, aggiungi la CA al Secret
overleaf-certs montato in /var/lib/overleaf/certs (vedi Certificati e altri file) e imposta NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem nella ConfigMap.4
Applica, riavvia e verifica
000 significa che non lo è.Più repliche
Nulla di aggiuntivo oltre al valore condiviso diGITLAB_TOKEN_CIPHER_PASSWORD. Una sincronizzazione acquisisce un lock in Redis, condiviso con le altre sincronizzazioni Git, quindi due repliche non sincronizzano mai lo stesso progetto contemporaneamente. Anche il refresh del token GitLab di un utente acquisisce un lock in Redis, quindi due repliche non lo aggiornano nello stesso momento.
Testato su Kubernetes
Contro un mock di un GitLab self-managed suGITLAB_SYNC_URL (considerato attendibile tramite NODE_EXTRA_CA_CERTS da overleaf-certs), su Kubernetes 1.37 con una replica e l’integrazione Git attiva, i nostri test end-to-end per la sincronizzazione con GitLab vengono superati (40 casi): collegamento e scollegamento dell’account, refresh di un token di accesso in scadenza e token revocati, esportazione in un nuovo progetto privato o di gruppo, importazione di un repository, pull e push, merge, conflitti, branch eliminati e sottoposti a force push, file binari, rinomine ed eliminazioni, e cosa possono fare proprietari, editor e lettori.
