gitlab-sync 模組)中執行,並需要 Git 整合。請在 GitLab 同步中建立 OAuth 應用程式並了解各項設定的作用;本頁說明如何將其套用到 Kubernetes。
設定
1
ConfigMap
30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" 以及 Git 整合中的 git-bridge StatefulSet:否則帳號設定與編輯器會隱藏 GitLab 同步。2
Secret
GITLAB_TOKEN_CIPHER_PASSWORD 用於加密儲存在 MongoDB 中的使用者 GitLab 存取權杖與更新權杖。每個副本都必須使用相同的值,之後若變更此值,所有使用者都必須重新連結 GitLab。3
私人 CA(選用)
如果您的 GitLab 使用由您自己的 CA 簽發的憑證,請將該 CA 加入掛載於
/var/lib/overleaf/certs 的 Secret overleaf-certs(請參閱憑證與其他檔案),並在 ConfigMap 中設定 NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem。4
套用、重新啟動並檢查
000 則表示無法連線。多個副本
除了共用的GITLAB_TOKEN_CIPHER_PASSWORD 之外,不需要額外設定。同步時會在 Redis 中取得鎖定(與其他 Git 同步共用),因此兩個副本絕不會同時同步同一個專案。更新使用者的 GitLab 權杖時也會取得 Redis 鎖定,因此兩個副本不會同時更新權杖。
在 Kubernetes 上的測試
我們以位於GITLAB_SYNC_URL 的模擬自行管理 GitLab(透過來自 overleaf-certs 的 NODE_EXTRA_CA_CERTS 信任),在 Kubernetes 1.37 上以一個副本並啟用 Git 整合進行測試,GitLab 同步的端對端測試全數通過(40 個案例):連結與解除連結帳號、更新即將過期的存取權杖與已撤銷的權杖、匯出至新的私人或群組專案、匯入儲存庫、拉取與推送、合併、衝突、已刪除及遭強制推送的分支、二進位檔案、重新命名與刪除,以及擁有者、編輯者與檢視者各自可執行的操作。
