gitlab-sync) của mọi pod Ayakaleaf Pro. Tính năng này cần Tích hợp Git. Hãy tạo ứng dụng OAuth và đọc ý nghĩa của từng cài đặt trong Đồng bộ hóa GitLab; trang này đưa cấu hình đó vào Kubernetes.
Cấu hình
1
ConfigMap
30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" và StatefulSet git-bridge từ Tích hợp Git phải được thiết lập sẵn: nếu thiếu chúng, phần cài đặt tài khoản và trình soạn thảo sẽ ẩn Đồng bộ hóa GitLab.2
Secret
GITLAB_TOKEN_CIPHER_PASSWORD mã hóa các access token và refresh token GitLab của người dùng trong MongoDB. Mọi replica phải dùng cùng một giá trị, và việc thay đổi giá trị này sau đó sẽ buộc mọi người dùng phải liên kết lại GitLab.3
CA riêng (tùy chọn)
Nếu GitLab của bạn dùng chứng chỉ do CA riêng của bạn cấp, hãy thêm CA đó vào Secret
overleaf-certs được mount tại /var/lib/overleaf/certs (xem Chứng chỉ và các tệp khác) và đặt NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem trong ConfigMap.4
Áp dụng, khởi động lại và kiểm tra
000 có nghĩa là không truy cập được.Nhiều replica
Không cần thêm gì ngoàiGITLAB_TOKEN_CIPHER_PASSWORD dùng chung. Mỗi lần đồng bộ sẽ giữ một khóa trong Redis, dùng chung với các loại đồng bộ hóa Git khác, nên hai replica không bao giờ đồng bộ cùng một dự án cùng lúc. Việc làm mới token GitLab của người dùng cũng giữ một khóa Redis, nên hai replica không làm mới token đó cùng lúc.
Đã kiểm thử trên Kubernetes
Với một bản mô phỏng GitLab tự quản lý tạiGITLAB_SYNC_URL (được tin cậy thông qua NODE_EXTRA_CA_CERTS từ overleaf-certs), trên Kubernetes 1.37 với một replica và Tích hợp Git được bật, các bài kiểm thử end-to-end của chúng tôi cho Đồng bộ hóa GitLab đều đạt (40 trường hợp): liên kết và hủy liên kết tài khoản, làm mới access token sắp hết hạn và token bị thu hồi, xuất sang một dự án riêng tư hoặc dự án nhóm mới, nhập một kho lưu trữ, pull và push, merge, xung đột, nhánh bị xóa và bị force push, tệp nhị phân, đổi tên và xóa, và những gì chủ sở hữu, người chỉnh sửa và người xem được phép làm.
