finds.dev← search

// the find

k8up-io/k8up

★ 1,002 · Go · Apache-2.0 · updated Jul 2026

Kubernetes and OpenShift Backup Operator

K8up is a Kubernetes operator that wraps Restic to handle scheduled backups of PVCs and application-aware backups via pre-backup pods. It's been running in production since 2019 and covers the full backup lifecycle: schedule, backup, restore, archive, prune, and integrity checks. The target user is anyone running stateful workloads on Kubernetes or OpenShift who wants something more than a cron job calling restic directly.

The PreBackupPod concept is genuinely useful — you annotate a deployment and K8up spins up a sidecar pod that runs a dump command before the backup, which is the right way to handle databases without quiescing the main container. The operator splits into two binaries cleanly: a long-running reconciliation loop and a short-lived restic executor, so a crashing backup job doesn't destabilize the controller. The e2e test suite covers TLS, mTLS, annotated backups, PVC RWO edge cases, and restore verification using real KIND clusters — not mocks. Prometheus metrics and a bundled Grafana dashboard are included in the Helm chart, so you get backup success/failure visibility without extra plumbing.

The CRD count (Archive, Backup, Check, PreBackupPod, Prune, Restore, Schedule, Snapshot) is high for what is essentially a cron-plus-restic wrapper, and operators new to it will spend time understanding the relationships before getting a working schedule. There is no built-in cross-namespace backup policy — each namespace needs its own Schedule CR, which becomes painful at scale across dozens of tenant namespaces. The project is VSHN-backed and community activity outside that org is thin (1002 stars, 110 forks after years of production use), which is a real bus-factor concern if VSHN deprioritizes it. Snapshot restoration targeting a specific point-in-time across multiple PVCs is not atomic — you coordinate this yourself, which is fine for simple cases but breaks down for anything requiring consistency across volumes.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →