We intend to migrate Gerrit on Kubernetes.
Migrating the data to object storage will be the first step in that direction.
The migration plan will be similar to T378922: Migrate gitlab storage to apus (also: backups from S3?)
Description
| Status | Subtype | Assigned | Task | ||
|---|---|---|---|---|---|
| Open | ABran-WMF | T416972 Move Gerrit data to CephFS | |||
| Duplicate | ABran-WMF | T418364 Explore solutions for Gerrit on Kubernetes |
Event Timeline
Gerrit does not support object storage: https://gerrit.googlesource.com/plugins/lfs-storage-s3 the plugin has been deprecated for over 10 years.
The documentation only mentions access to filesystem: https://gerrit-review.googlesource.com/Documentation/dev-design.html#_notedb
From my readings so far: the best way to prepare a first step towards T418364: Explore solutions for Gerrit on Kubernetes could be to use CephFS
The Apus cluster does not currently support CephFS, I'm afraid. It wouldn't be straightforward to add support either - Apus does multi-site replication at the RGW/S3 level, the underlying Ceph clusters (1 in eqiad, 1 in codfw) don't talk to each other except via https/S3 communication between the RGWs. So even if we added MDS (metadata servers, the things you need to run CephFS on top of Ceph), you'd have two separate filesystems, one per DC. There is snapshot mirroring, but I don't think it's what you'd want here. Data Platform Engineering's cluster has CephFS (per wikitech), but I don't know if they do any sort of cross-site stuff with it.
The lfs-storage-s3 plugin is deprecated, but I think the lfs plugin that replaced it maybe does have S3 support? I found package com.googlesource.gerrit.plugins.lfs.s3; while poking through its source... I've not found any documentation, mind!
I see from T414407 you're thinking about moving gerrit to k8s. I do wonder if this is the sort of thing that k8s persistent volume claims are intended for?