github-sync) de cada pod do Ayakaleaf Pro. Ela precisa da integração com Git. Crie o aplicativo OAuth e leia o que cada configuração faz em Sincronização com GitHub; esta página a leva para o Kubernetes.
Configuração
1
ConfigMap
30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" e o StatefulSet do git-bridge da integração com Git precisam estar configurados: sem eles, as configurações da conta e o editor ocultam a sincronização com GitHub.2
Secret
GITHUB_TOKEN_CIPHER_PASSWORD criptografa os tokens de acesso do GitHub dos usuários no MongoDB. Todas as réplicas devem usar o mesmo valor, e alterá-lo depois faz com que todos os usuários precisem vincular o GitHub novamente.3
CA privada (opcional)
Se o seu GitHub tiver um certificado da sua própria CA, adicione a CA ao Secret
overleaf-certs montado em /var/lib/overleaf/certs (veja Certificados e outros arquivos) e defina NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem no ConfigMap.4
Aplicar, reiniciar e verificar
000 significa que não está.Várias réplicas
Nada além doGITHUB_TOKEN_CIPHER_PASSWORD compartilhado. Uma sincronização obtém um lock no Redis, compartilhado com as outras sincronizações Git, de modo que duas réplicas nunca sincronizam o mesmo projeto ao mesmo tempo.
Testado no Kubernetes
Contra um mock do github.com e de suas APIs REST e GraphQL (confiável por meio deNODE_EXTRA_CA_CERTS a partir de overleaf-certs), no Kubernetes 1.37 com uma réplica e a integração com Git ativada, nossos testes ponta a ponta da sincronização com GitHub são aprovados (31 casos): vincular e desvincular a conta, tokens revogados, exportar um projeto para um novo repositório privado ou de organização, importar um repositório (inclusive acima do limite de upload), pull e push, merges, conflitos e merges manuais, branches excluídos e com force push, arquivos binários, renomeações e exclusões, perda de acesso de push e o que proprietários, editores e leitores podem fazer.
