gitea-sync) каждого пода Ayakaleaf Pro. Для неё нужна интеграция с Git. Как создать OAuth-приложение и что делает каждая настройка, описано в разделе Синхронизация с Gitea; на этой странице показано, как перенести это в Kubernetes.
Настройка
1
ConfigMap
30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" и StatefulSet git-bridge из раздела Интеграция с Git: без них настройки учётной записи и редактор скрывают синхронизацию с Gitea.2
Secret
GITEA_TOKEN_CIPHER_PASSWORD шифрует токены доступа и обновления Gitea пользователей в MongoDB. Все реплики должны использовать одно и то же значение, а его последующее изменение вынудит всех пользователей заново привязать Gitea.3
Частный CA (необязательно)
Если сертификат вашего Gitea выдан вашим собственным CA, добавьте CA в Secret
overleaf-certs, смонтированный в /var/lib/overleaf/certs (см. Сертификаты и другие файлы), и задайте NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem в ConfigMap.4
Примените, перезапустите и проверьте
000 — что недоступен.Несколько реплик
Ничего дополнительного, кроме общегоGITEA_TOKEN_CIPHER_PASSWORD, не требуется. Синхронизация захватывает блокировку в Redis, общую с другими синхронизациями Git, поэтому две реплики никогда не синхронизируют один и тот же проект одновременно.
Проверено на Kubernetes
С реальным Gitea 1.23 по адресуGITEA_SYNC_URL, на Kubernetes 1.37 с одной репликой и включённой интеграцией с Git, наши сквозные тесты синхронизации с Gitea проходят (39 сценариев): привязка и отвязка учётной записи через OAuth2 Gitea, обновление истекающего токена доступа и отозванные разрешения, экспорт в новый приватный репозиторий или репозиторий организации, импорт репозитория, pull и push, слияния, конфликты, удалённые ветки и ветки после force-push, бинарные файлы, переименования и удаления, а также то, что могут делать владельцы, редакторы и читатели.
