Skip to content

Storage

One bucket per component, provisioned by terraform/40_seaweedfs-buckets — see seaweedfs-buckets/index.md.

Component Bucket Prefixes Local disk
Loki loki chunks and ruler share it 10Gi Longhorn, WAL and index staging
Mimir mimir blocks 20Gi Longhorn, TSDB head, compactor scratch, store-gateway sync, Alertmanager state
Tempo tempo — 5Gi Longhorn, WAL

SeaweedFS needs the same three things everywhere: path-style addressing (s3ForcePathStyle / bucket_lookup_type: path / forcepathstyle), insecure for plain HTTP on port 8333, and region us-east-1.

Retention is in-app, 30 days everywhere — limits_config.retention_period, compactor_blocks_retention_period and tempo.retention. Not S3 lifecycle rules, and not bucket quotas: buckets are unlimited, for reasons given in SeaweedFS on s3-01.

Only the two key fields come from OpenBao. Endpoint, region and bucket are not secrets and sit in the values. Each component reads the keys as environment variables and expands them with -config.expand-env=true, so no credential is ever templated into a ConfigMap.

Loki's chart still renders an inert boltdb_shipper index-gateway stanza. No schema period references it — the single schema entry is tsdb/v13 — so it is dead config, not a second index.