gitlab-sync) кожного пода Ayakaleaf Pro. Для неї потрібна інтеграція з Git. Як створити OAuth-застосунок і що робить кожне налаштування, описано в розділі Синхронізація з GitLab; ця сторінка переносить це в Kubernetes.
Налаштування
1
ConfigMap
30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" і StatefulSet git-bridge з розділу Інтеграція з Git мають бути налаштовані: без них налаштування облікового запису та редактор приховують синхронізацію з GitLab.2
Secret
GITLAB_TOKEN_CIPHER_PASSWORD шифрує токени доступу та оновлення GitLab користувачів у MongoDB. Усі репліки мають використовувати однакове значення, а якщо змінити його пізніше, усім користувачам доведеться знову прив’язати GitLab.3
Приватний CA (необов'язково)
Якщо ваш GitLab має сертифікат від вашого власного центру сертифікації (CA), додайте CA до Secret
overleaf-certs, змонтованого в /var/lib/overleaf/certs (див. Сертифікати та інші файли), і встановіть NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem у ConfigMap.4
Застосування, перезапуск і перевірка
000 означає, що ні.Кілька реплік
Нічого додаткового, окрім спільногоGITLAB_TOKEN_CIPHER_PASSWORD. Синхронізація бере блокування в Redis, спільне з іншими Git-синхронізаціями, тож дві репліки ніколи не синхронізують той самий проєкт одночасно. Оновлення токена GitLab користувача також бере блокування в Redis, тож дві репліки не оновлюють його одночасно.
Перевірено на Kubernetes
З макетом самостійно розміщеного GitLab за адресоюGITLAB_SYNC_URL (довіра через NODE_EXTRA_CA_CERTS з overleaf-certs), на Kubernetes 1.37 з однією реплікою та ввімкненою інтеграцією з Git, наші наскрізні тести синхронізації з GitLab проходять (40 випадків): прив’язка та скасування прив’язки облікового запису, оновлення токена доступу з обмеженим терміном дії та відкликані токени, експорт у новий приватний проєкт або проєкт групи, імпорт репозиторію, pull і push, злиття, конфлікти, видалені гілки та гілки після force push, бінарні файли, перейменування та видалення, а також те, що можуть робити власники, редактори та глядачі.
