${OVERLEAF_SITE_URL}/git/<project id>; Ayakaleaf Pro-podden vidarebefordrar dessa förfrågningar till git-bridge, och git-bridge anropar podden för projektinnehåll och historik. Att aktivera den aktiverar även MCP-servern, och den krävs för GitHub-, GitLab-, Gitea- och Dropbox-synkronisering.
Den här sidan bygger vidare på installationen med en replik från Använda Kubernetes. För flera repliker, se Horisontell skalning.
1
Driftsätt git-bridge
45-git-bridge.yaml
10.96.100.80 måste vara en ledig adress inom klustrets tjänste-CIDR (kubeadms standard är 10.96.0.0/12).2
Peka Ayakaleaf Pro mot den
Lägg till i
30-config.yaml:30-config.yaml (additions)
3
Klona ett projekt
Skapa en Git-autentiseringstoken under Account Settings och kör sedan:Använd
git som användarnamn och token som lösenord.Varför manifestet ser ut så här
- En fast ClusterIP som
GIT_BRIDGE_HOST. nginx i Ayakaleaf Pro-avbildningen vidarebefordrar/git/med en resolver inställd på127.0.0.11, Dockers inbyggda DNS. Kubernetes har ingen DNS-server där, så ett värdnamn somgit-bridgemisslyckas med502och ”git-bridge could not be resolved” i/var/log/nginx/error.log. En IP-adress kräver ingen uppslagning. overleaf-internal. git-bridge behöver portarna3000(web-API) och3100(historik) i Ayakaleaf Pro-podden. En separat ClusterIP-Service håller dem inom klustret; att lägga till dem i NodePort-Service skulle publicera dem på varje nod.enableServiceLinks: false. Servicegit-bridgeskulle få Kubernetes att lägga tillGIT_BRIDGE_PORT=tcp://10.96.100.80:8000i podden; git-bridge läserGIT_BRIDGE_PORTsom sin lyssningsport och stoppar medMalformedJsonException ... path $.port.- En replik med egen volym. git-bridge sparar ett git-repositorium per klonat projekt på disk och får inte köras i två exemplar. Säkerhetskopiera dess volym.
Testat på Kubernetes
På Kubernetes 1.37 med tre repliker bakom HAProxy och git-bridge som syskon tilloverleaf-0 klarar våra end-to-end-tester för Git-integrationen sig (19 fall), även med git-bridge flyttad till port 8001 så att nginx måste använda GIT_BRIDGE_HOST och GIT_BRIDGE_PORT: Git-tokens i kontoinställningarna, klonkommandot i redigeraren, clone, push och pull, binära filer och mappar, namnbyten och borttagningar, inaktuella push som nekas, åtkomst efter roll (inbjudna redigerare och redigerare via länk får pusha, läsare och granskare får bara klona, användare utan åtkomst nekas), felaktiga och borttagna tokens som nekas, git-bridges interna rutter som hålls bakom nginx, samt avstängda konton. Själva Git-autentiseringstokens (generering, listning, gränsen per användare, borttagning, utgång, kontrollen som git-bridge ber web om, samt tokens för avstängda och raderade konton) klarar sig på en replik (16 fall).
Frågor och svar
git clone returnerar 502.
git clone returnerar 502.
Svar: Kontrollera
GIT_BRIDGE_HOST: det måste vara IP-adressen till git-bridge-Service, inte dess namn, se ovan. kubectl -n overleaf exec deploy/overleaf -- tail /var/log/nginx/error.log visar orsaken.
