gitea-sync モジュール)で動作します。Git 連携 が必要です。OAuth アプリケーションの作成方法と各設定の役割は Gitea 同期 を参照してください。このページでは、それを Kubernetes に設定する方法を説明します。
設定
1
ConfigMap
30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" と、Git 連携 の git-bridge StatefulSet が用意されている必要があります。これらがないと、アカウント設定とエディターに Gitea 同期が表示されません。2
Secret
GITEA_TOKEN_CIPHER_PASSWORD は、MongoDB 内のユーザーの Gitea アクセストークンとリフレッシュトークンを暗号化します。すべてのレプリカで同じ値を使用する必要があり、後から変更するとすべてのユーザーが Gitea を再リンクすることになります。3
プライベート CA(任意)
Gitea の証明書が独自の CA によるものである場合は、その CA を
/var/lib/overleaf/certs にマウントされる Secret overleaf-certs に追加し(証明書とその他のファイル を参照)、ConfigMap に NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem を設定します。4
適用、再起動、確認
000 の場合は到達できていません。複数のレプリカ
共有のGITEA_TOKEN_CIPHER_PASSWORD 以外に追加の作業は不要です。同期は、ほかの Git 同期と共有される Redis のロックを取得するため、2 つのレプリカが同じプロジェクトを同時に同期することはありません。
Kubernetes でのテスト結果
GITEA_SYNC_URL に実際の Gitea 1.23 を設定し、Kubernetes 1.37 上でレプリカ 1 つ、Git 連携を有効にした構成で、Gitea 同期のエンドツーエンドテストに合格しました(39 ケース)。対象は、Gitea の OAuth2 によるアカウントのリンクとリンク解除、期限切れになるアクセストークンの更新と取り消された許可、新しいプライベートリポジトリまたは組織リポジトリへのエクスポート、リポジトリのインポート、プルとプッシュ、マージ、コンフリクト、削除されたブランチと強制プッシュされたブランチ、バイナリファイル、名前の変更と削除、そしてオーナー、編集者、閲覧者がそれぞれ実行できる操作です。
