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