Skip to content

Use SQLite on a Longhorn PVC for Renovate CE state, not CNPG Postgres

Date: 2026-06-14 Status: Accepted Decision: hl-v808 Deciders: Sean Brandt

Renovate CE needs a persistent state store for its job queue and installation/repository registry. The cluster runs CNPG (CloudNativePG) for authoritative relational data. CE’s state is a rebuildable cache: if the volume is lost, CE re-syncs from GitHub on the next autodiscovery sweep with no data loss beyond transient queue churn.

Mount a Longhorn PVC (via the chart’s cachePersistence.enabled) at the parent directory of MEND_RNV_SQLITE_FILE_PATH. Do not provision a CNPG Postgres cluster (postgresql.enabled=false). Postgres remains a documented future upgrade path, not built now.

  • CE’s state is a rebuildable cache (job queue + repo registry), not authoritative data — DB-layer HA/durability would protect data that is not irreplaceable.
  • SQLite is CE’s native default; using it avoids a CNPG dependency and keeps the deployment self-contained.
  • Longhorn replication provides adequate durability for cache data; PVC loss costs one re-sync sweep, not a restore from backup. (This is also why the renovate namespace is excluded from Velero backups.)
  • SQLite on a Longhorn PVC (chosen): zero additional infrastructure; Longhorn replication is sufficient for rebuildable cache data; SQLite is the CE default. Cost: single-writer, so CE runs a single replica; PVC loss requires a re-sync sweep.
  • CNPG Postgres (rejected): HA and WAL durability consistent with the cluster pattern for authoritative data, but adds a dedicated CNPG cluster (CPU/memory/storage) to protect intentionally non-authoritative, fully rebuildable data.
  • Positive: no CNPG cluster required; simpler, lower-overhead deployment; Longhorn-backed PVC meets the data’s actual durability needs.
  • Negative: SQLite is single-writer, so CE must run as a single replica (no horizontal scaling); a future Postgres migration needs a planned schema/data step.
  • Neutral: the pod must set fsGroup: 12021 to match CE’s uid/gid (documented footgun); the namespace is excluded from Velero backups.