Skip to main content
Синхронизация с GitLab работает в сервисе web (модуль gitlab-sync) каждого пода Ayakaleaf Pro. Для неё требуется интеграция с Git. Как создать OAuth-приложение и что делает каждая настройка, описано на странице Синхронизация с GitLab; эта страница переносит всё это в Kubernetes.

Настройка

1

ConfigMap

30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" и StatefulSet git-bridge из раздела Интеграция с Git должны быть уже настроены: без них настройки учётной записи и редактор скрывают синхронизацию с GitLab.
2

Secret

GITLAB_TOKEN_CIPHER_PASSWORD шифрует токены доступа и обновления GitLab пользователей в MongoDB. Все реплики должны использовать одно и то же значение, а его последующее изменение заставит каждого пользователя заново привязать GitLab.
3

Частный CA (необязательно)

Если ваш GitLab использует сертификат, выданный вашим собственным центром сертификации (CA), добавьте сертификат CA в Secret overleaf-certs, смонтированный в /var/lib/overleaf/certs (см. Сертификаты и другие файлы), и задайте NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem в ConfigMap.
4

Применение, перезапуск и проверка

Любой HTTP-статус означает, что GitLab доступен из этого пода; 000 означает, что он недоступен.

Несколько реплик

Ничего дополнительного, кроме общего GITLAB_TOKEN_CIPHER_PASSWORD, не требуется. Синхронизация берёт блокировку в Redis, общую с другими Git-синхронизациями, поэтому две реплики никогда не синхронизируют один и тот же проект одновременно. Обновление токена GitLab пользователя тоже берёт блокировку в Redis, поэтому две реплики не обновляют его одновременно.

Проверено на Kubernetes

На макете самостоятельно размещённого GitLab по адресу GITLAB_SYNC_URL (доверие через NODE_EXTRA_CA_CERTS из overleaf-certs), в Kubernetes 1.37 с одной репликой и включённой интеграцией с Git наши сквозные тесты синхронизации с GitLab проходят (40 сценариев): привязка и отвязка учётной записи, обновление истекающего токена доступа и отозванные токены, экспорт в новый приватный проект или проект группы, импорт репозитория, pull и push, слияния, конфликты, удалённые ветки и ветки после force push, бинарные файлы, переименования и удаления, а также то, что могут делать владельцы, редакторы и читатели.
Последнее изменение 2 ноября 2026 г.