template-gallery モジュール)で動作します。同じ Pod 内の filestore サービスがテンプレートファイルを保存し、プレビューを生成します。カテゴリ、権限、公開についてはテンプレートで説明しています。
設定
1
ConfigMap
30-config.yaml (additions)
2
テンプレート用ユーザー(任意)
管理者はいつでも公開できます。管理者以外のユーザーにギャラリーを管理させるには、そのユーザーを作成し、MongoDB から ID を読み取って ConfigMap に設定します。
3
適用と再起動
複数のレプリカ
- テンプレートファイルは S3 に置く必要があります。各レプリカ自身のディスクにファイルを置くと、ノードごとに異なるギャラリーが表示されてしまいます。水平スケーリングの構成では、すでにバケット
overleaf-template-filesを使用しています。 - 公開時にはプロジェクトの最後のコンパイルの PDF が使われますが、これはコンパイルしたレプリカにしか存在しません。ロードバランサーのスティッキー Cookie によってユーザーはそのレプリカにとどまるため、コンパイルしたのと同じブラウザーセッションから公開してください。
Kubernetes でのテスト
Kubernetes 1.37 上で HAProxy の背後に 3 つのレプリカを置き、テンプレートファイルを S3 バケットoverleaf-template-files(Garage)に置いた状態で、テンプレートギャラリーのエンドツーエンドテスト(41 ケース)に合格しています。対象は、ファイルメニューからのコンパイル済みプロジェクトの公開と、バケットから配信される PDF、プレビュー画像、ソース ZIP、テンプレートからのプロジェクト作成、ギャラリーのカテゴリ・検索・並べ替え・ページ、テンプレートの編集・上書き・削除、管理者・一般ユーザー・OVERLEAF_TEMPLATES_USER_ID のテンプレート用ユーザー(上記のとおり MongoDB から ID を読み取り)の権限、そして不正な形式のリクエストです。
