github-sync) każdego poda Ayakaleaf Pro. Wymaga integracji z Git. Utwórz aplikację OAuth i przeczytaj, do czego służy każde ustawienie, na stronie Synchronizacja z GitHub; ta strona przenosi tę konfigurację do Kubernetes.
Konfiguracja
1
ConfigMap
30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" oraz StatefulSet git-bridge z integracji z Git muszą być na miejscu: bez nich ustawienia konta i edytor ukrywają synchronizację z GitHub.2
Secret
GITHUB_TOKEN_CIPHER_PASSWORD szyfruje tokeny dostępu GitHub użytkowników w MongoDB. Każda replika musi używać tej samej wartości, a późniejsza jej zmiana zmusza każdego użytkownika do ponownego połączenia GitHub.3
Prywatny CA (opcjonalnie)
Jeśli Twój GitHub ma certyfikat wystawiony przez własny urząd certyfikacji (CA), dodaj ten CA do Secretu
overleaf-certs zamontowanego w /var/lib/overleaf/certs (zobacz Certyfikaty i inne pliki) i ustaw NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem w ConfigMap.4
Zastosuj, uruchom ponownie i sprawdź
000 oznacza, że nie jest.Kilka replik
Nic dodatkowego poza wspólnymGITHUB_TOKEN_CIPHER_PASSWORD. Synchronizacja zakłada blokadę w Redis, współdzieloną z innymi synchronizacjami Git, więc dwie repliki nigdy nie synchronizują tego samego projektu jednocześnie.
Przetestowano na Kubernetes
Na atrapie github.com oraz jego API REST i GraphQL (zaufanej przezNODE_EXTRA_CA_CERTS z overleaf-certs), na Kubernetes 1.37 z jedną repliką i włączoną integracją z Git, nasze testy end-to-end synchronizacji z GitHub przechodzą pomyślnie (31 przypadków): łączenie i odłączanie konta, unieważnione tokeny, eksport projektu do nowego prywatnego repozytorium lub repozytorium organizacji, import repozytorium (również przekraczającego limit przesyłania), pobieranie i wypychanie, scalanie, konflikty i ręczne scalanie, usunięte gałęzie i gałęzie po wymuszonym wypchnięciu, pliki binarne, zmiany nazw i usunięcia, utrata uprawnień do wypychania oraz to, co mogą robić właściciele, edytorzy i osoby z dostępem tylko do odczytu.
