feat: dedicated ceph volume for Forgejo [storage] (LFS/packages/attachments) (#188) #192

Sammanfogat
supernaut sammanfogade 2 incheckningar från feat/188-lfs-storage-tier in i main 2026-07-21 20:41:59 +00:00
Ägare

Splits Forgejo's bulk object storage (LFS + packages + attachments) onto a dedicated standard-ceph Cinder volume; repos + Postgres stay on ceph-ssd. Implements #188 (links #45).

Fully gated / inert behind forgejo_external_storage_enabled=false — merging changes nothing in prod.

  • OpenTofu: new ceph volume (20 GB) + attach + lfs_volume_id output.
  • Forgejo role: mount /srv/gitborg-lfs (by Cinder serial) → podman unshare chown to the git subuid → bind at /srv/storage → [storage] PATH; RequiresMountsFor guards against writing storage to the root disk.
  • Backup: archives /srv/gitborg-lfs when mounted (it leaves the named volume podman volume export captures).

Cutover (separate, gated apply — NOT this PR): tofu apply → set lfs_volume_id → extend the DR restore path (backup-drill + runbook) to unpack forgejo-storage.tar.gz → flip the flag → ansible-playbook --tags forgejo,backup → verify LFS/package push + backup contains the volume. Near-zero migration (storage empty today).

Splits Forgejo's bulk object storage (LFS + packages + attachments) onto a dedicated standard-`ceph` Cinder volume; repos + Postgres stay on ceph-ssd. Implements #188 (links #45). **Fully gated / inert** behind `forgejo_external_storage_enabled=false` — merging changes nothing in prod. - OpenTofu: new `ceph` volume (20 GB) + attach + `lfs_volume_id` output. - Forgejo role: mount `/srv/gitborg-lfs` (by Cinder serial) → `podman unshare chown` to the git subuid → bind at `/srv/storage` → `[storage] PATH`; `RequiresMountsFor` guards against writing storage to the root disk. - Backup: archives `/srv/gitborg-lfs` when mounted (it leaves the named volume `podman volume export` captures). **Cutover (separate, gated apply — NOT this PR):** `tofu apply` → set `lfs_volume_id` → **extend the DR restore path (backup-drill + runbook) to unpack `forgejo-storage.tar.gz`** → flip the flag → `ansible-playbook --tags forgejo,backup` → verify LFS/package push + backup contains the volume. Near-zero migration (storage empty today).
supernaut tvångsskickade feat/188-lfs-storage-tier från 55262b4bc0
Alla kontroller lyckades
ci / ci (pull_request) Successful in 1m19s
till fe1aae5ed6
Alla kontroller lyckades
ci / ci (pull_request) Successful in 1m24s
2026-07-21 20:39:21 +00:00
Jämför
supernaut sammanfogade incheckning 758455d46d till main 2026-07-21 20:41:59 +00:00
supernaut tog bort grenen feat/188-lfs-storage-tier 2026-07-21 20:41:59 +00:00
Logga in för att delta i denna konversation.
Inga granskare
Ingen milstolpe
Inget projekt
Inga tilldelade
1 deltagare
Notiser
Förfallodatum
Förfallodatumet är ogiltigt eller utanför gränserna. Använd formatet "åååå-mm-dd".

Inget förfallodatum satt.

Beroenden

Inga beroenden satta

Referens
bitborg/bitborg-infra!192
Ingen beskrivning angiven.