${OVERLEAF_SITE_URL}/git/<project id>; под Ayakaleaf Pro пересилає ці запити до git-bridge, а git-bridge звертається назад до пода по вміст та історію проєкту. Її ввімкнення також вмикає MCP-сервер і є обов’язковим для синхронізації з GitHub, GitLab, Gitea і Dropbox.
Ця сторінка розширює інсталяцію з однією реплікою з розділу Використання Kubernetes. Про кілька реплік див. Горизонтальне масштабування.
1
Розгорніть git-bridge
45-git-bridge.yaml
10.96.100.80 має бути вільною адресою в межах CIDR служб вашого кластера (стандартно для kubeadm — 10.96.0.0/12).2
Спрямуйте Ayakaleaf Pro на нього
Додайте до
30-config.yaml:30-config.yaml (additions)
3
Клонуйте проєкт
Створіть токен автентифікації Git в Account Settings, а потім:Використовуйте
git як ім’я користувача й токен як пароль.Чому маніфест виглядає саме так
- Фіксований ClusterIP як
GIT_BRIDGE_HOST. nginx усередині образу Ayakaleaf Pro пересилає/git/з resolver, налаштованим на127.0.0.11— вбудований DNS Docker. У Kubernetes там немає DNS-сервера, тож ім’я хоста на кшталтgit-bridgeпризводить до помилки502і повідомлення «git-bridge could not be resolved» у/var/log/nginx/error.log. IP-адреса не потребує розв’язання. overleaf-internal. git-bridge потребує портів3000(API web) і3100(історія) пода Ayakaleaf Pro. Окремий Service типу ClusterIP тримає їх усередині кластера; додавання їх до Service типу NodePort опублікувало б їх на кожному вузлі.enableServiceLinks: false. Servicegit-bridgeзмусив би Kubernetes додати до подаGIT_BRIDGE_PORT=tcp://10.96.100.80:8000; git-bridge зчитуєGIT_BRIDGE_PORTяк свій порт прослуховування й зупиняється зMalformedJsonException ... path $.port.- Одна репліка з власним томом. git-bridge зберігає на диску git-репозиторій для кожного клонованого проєкту, і його не можна запускати двічі. Створюйте резервні копії його тому.
Перевірено в Kubernetes
У Kubernetes 1.37 із трьома репліками за HAProxy і git-bridge як сусідомoverleaf-0 наші наскрізні тести інтеграції з Git проходять (19 випадків), зокрема й тоді, коли git-bridge перенесено на порт 8001, щоб nginx мусив використовувати GIT_BRIDGE_HOST і GIT_BRIDGE_PORT: токени Git у налаштуваннях облікового запису, команда клонування в редакторі, clone, push і pull, бінарні файли й папки, перейменування та видалення, відхилення застарілих push, доступ за роллю (запрошені редактори й редактори за посиланням можуть виконувати push, глядачі та рецензенти можуть лише клонувати, користувачам без доступу відмовлено), відхилення неправильних і видалених токенів, внутрішні маршрути git-bridge, приховані за nginx, і призупинені облікові записи. Самі токени автентифікації Git (створення, перелік, ліміт на користувача, видалення, строк дії, перевірка, яку git-bridge запитує в web, і токени призупинених і видалених облікових записів) проходять тести на одній репліці (16 випадків).
Запитання та відповіді
git clone повертає 502.
git clone повертає 502.
Відповідь: Перевірте
GIT_BRIDGE_HOST: це має бути IP-адреса Service git-bridge, а не його ім’я, див. вище. kubectl -n overleaf exec deploy/overleaf -- tail /var/log/nginx/error.log показує причину.
