Configuration
1
Buckets and keys
Create the three buckets
overleaf-template-files, overleaf-project-blobs and overleaf-chunks and the two restricted users with your S3 service as described in S3 setup, or run Garage in the cluster as shown below. Put the four keys into a Secret:2
ConfigMap
30-config.yaml (additions)
3
Add the Secret to the pod and restart
In the Deployment (or StatefulSet), add the Secret next to the others:
Garage in the cluster
Without an S3 service, Garage is a small S3 server that runs in the cluster. The Horizontal scaling setup was tested with it. The commands below generate the keys and create the Secretoverleaf-s3 themselves, so use them instead of the Secret command in step 1.
MinIO, used in Overleaf’s sample, no longer publishes container images:
minio/minio is gone from Docker Hub and quay.io.50-garage.yaml
GK plus 24 hex characters, secrets 64 hex characters:
garage here, and OVERLEAF_*_S3_REGION must be the same.
With Garage, set the endpoint, PATH_STYLE: "true" and the region garage for both services in the ConfigMap, as in 60-config.yaml of Horizontal scaling.
Several replicas
All replicas must use the same buckets and keys. Back the buckets up with your S3 provider’s tools; the replicas’ own disks then hold no data that needs a backup.Tested on Kubernetes
On Kubernetes 1.37 with three replicas and Garage as above, every end-to-end test of these pages that creates projects, uploads files, uses the history or publishes templates passed, and afterwards the bucketsoverleaf-project-blobs, overleaf-chunks and overleaf-template-files held the objects, while the replicas’ own /var/lib/overleaf/data/history stayed empty.
