github-sync) de cada pod de Ayakaleaf Pro. Necesita la integración con Git. Crea la aplicación OAuth y consulta qué hace cada ajuste en Sincronización con GitHub; esta página lo traslada a Kubernetes.
Configuración
1
ConfigMap
30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" y el StatefulSet de git-bridge de la integración con Git deben estar configurados: sin ellos, la configuración de la cuenta y el editor ocultan la sincronización con GitHub.2
Secret
GITHUB_TOKEN_CIPHER_PASSWORD cifra los tokens de acceso de GitHub de los usuarios en MongoDB. Todas las réplicas deben usar el mismo valor, y cambiarlo más adelante obliga a todos los usuarios a vincular GitHub de nuevo.3
CA privada (opcional)
Si tu GitHub tiene un certificado de tu propia CA, añade la CA al Secret
overleaf-certs montado en /var/lib/overleaf/certs (consulta Certificados y otros archivos) y establece NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem en el ConfigMap.4
Aplicar, reiniciar y comprobar
000 significa que no lo es.Varias réplicas
No hace falta nada más aparte delGITHUB_TOKEN_CIPHER_PASSWORD compartido. Una sincronización toma un bloqueo en Redis, compartido con las demás sincronizaciones de Git, de modo que dos réplicas nunca sincronizan el mismo proyecto a la vez.
Probado en Kubernetes
Contra un simulacro de github.com y sus API REST y GraphQL (de confianza a través deNODE_EXTRA_CA_CERTS desde overleaf-certs), en Kubernetes 1.37 con una réplica y la integración con Git activada, nuestras pruebas de extremo a extremo de la sincronización con GitHub se superan (31 casos): vincular y desvincular la cuenta, tokens revocados, exportar un proyecto a un nuevo repositorio privado o de una organización, importar un repositorio (también por encima del límite de subida), pull y push, fusiones, conflictos y fusiones manuales, ramas eliminadas y con push forzado, archivos binarios, cambios de nombre y eliminaciones, pérdida del acceso de push, y lo que pueden hacer los propietarios, editores y lectores.
