gitlab-sync) pada setiap pod Ayakaleaf Pro. Fitur ini memerlukan integrasi Git. Buat aplikasi OAuth dan baca fungsi setiap pengaturan di Sinkronisasi GitLab; halaman ini menerapkannya ke Kubernetes.
Konfigurasi
1
ConfigMap
30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" dan StatefulSet git-bridge dari integrasi Git harus sudah tersedia: tanpa keduanya, pengaturan akun dan editor menyembunyikan Sinkronisasi GitLab.2
Secret
GITLAB_TOKEN_CIPHER_PASSWORD mengenkripsi token akses dan token refresh GitLab pengguna di MongoDB. Setiap replika harus menggunakan nilai yang sama, dan mengubahnya di kemudian hari membuat setiap pengguna harus menautkan GitLab lagi.3
CA privat (opsional)
Jika GitLab Anda memiliki sertifikat dari CA Anda sendiri, tambahkan CA tersebut ke Secret
overleaf-certs yang di-mount di /var/lib/overleaf/certs (lihat Sertifikat dan file lainnya) dan atur NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem di ConfigMap.4
Terapkan, mulai ulang, dan periksa
000 berarti tidak dapat dijangkau.Beberapa replika
Tidak ada yang perlu ditambahkan selainGITLAB_TOKEN_CIPHER_PASSWORD yang sama. Sebuah sinkronisasi mengambil lock di Redis, yang dibagi dengan sinkronisasi Git lainnya, sehingga dua replika tidak pernah menyinkronkan proyek yang sama secara bersamaan. Memperbarui token GitLab pengguna juga mengambil lock Redis, sehingga dua replika tidak memperbaruinya pada saat yang sama.
Diuji di Kubernetes
Terhadap mock GitLab yang dikelola sendiri diGITLAB_SYNC_URL (dipercaya melalui NODE_EXTRA_CA_CERTS dari overleaf-certs), di Kubernetes 1.37 dengan satu replika dan integrasi Git aktif, pengujian end-to-end kami untuk Sinkronisasi GitLab lulus (40 kasus): menautkan dan memutus tautan akun, memperbarui token akses yang akan kedaluwarsa dan token yang dicabut, mengekspor ke proyek privat atau grup baru, mengimpor repositori, pull dan push, merge, konflik, branch yang dihapus dan di-force-push, file biner, penggantian nama dan penghapusan, serta apa yang boleh dilakukan pemilik, editor, dan penampil.
