gitlab-sync) في كل pod من 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. يجب أن تستخدم كل نسخة متماثلة (replica) القيمة نفسها، وتغييرها لاحقًا يُلزم كل مستخدم بربط GitLab من جديد.3
مرجع شهادات خاص (اختياري)
إذا كان GitLab لديك يستخدم شهادة صادرة عن مرجع شهادات (CA) خاص بك، فأضف هذا المرجع إلى الـ Secret المسمّى
overleaf-certs المُركَّب في /var/lib/overleaf/certs (راجع الشهادات والملفات الأخرى) واضبط NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem في الـ ConfigMap.4
التطبيق وإعادة التشغيل والتحقق
000 فيعني أنه غير قابل للوصول.عدة نسخ متماثلة
لا يلزم أي شيء إضافي سوىGITLAB_TOKEN_CIPHER_PASSWORD المشترك. تأخذ كل عملية مزامنة قفلًا في Redis، مشتركًا مع عمليات مزامنة Git الأخرى، لذا لا تقوم نسختان متماثلتان أبدًا بمزامنة المشروع نفسه في الوقت ذاته. كما يأخذ تحديث رمز GitLab الخاص بالمستخدم قفلًا في Redis أيضًا، لذا لا تقوم نسختان متماثلتان بتحديثه في الوقت ذاته.
الاختبار على Kubernetes
في مقابل محاكاة لـ GitLab مُدار ذاتيًا علىGITLAB_SYNC_URL (موثوق بها عبر NODE_EXTRA_CA_CERTS من overleaf-certs)، وعلى Kubernetes 1.37 مع نسخة متماثلة واحدة وتكامل Git مفعّل، تنجح اختباراتنا الشاملة (end-to-end) للمزامنة مع GitLab (40 حالة): ربط الحساب وإلغاء ربطه، وتحديث رمز وصول على وشك الانتهاء والرموز المُلغاة، والتصدير إلى مشروع خاص جديد أو مشروع مجموعة، واستيراد مستودع، والسحب والدفع، وعمليات الدمج، والتعارضات، والفروع المحذوفة والمدفوعة قسرًا (force-pushed)، والملفات الثنائية، وإعادة التسمية والحذف، وما يُسمح للمالكين والمحرّرين والمشاهدين بفعله.
