Back up persistent volumes in a Kubernetes cluster on an automatic cron schedule.
Restore a Kopia snapshot straight back onto a Kubernetes persistent volume claim.
Trigger backups from Argo Events, Helm hooks, or plain kubectl commands.
Run scheduled maintenance on a shared Kopia repository across a whole cluster.
| home-operations/kopiur | hellanglez/zspark | geekgineer/needle-rs | |
|---|---|---|---|
| Stars | 27 | 27 | 26 |
| Language | Rust | Rust | Rust |
| Setup difficulty | hard | hard | moderate |
| Complexity | 4/5 | 4/5 | 4/5 |
| Audience | ops devops | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires a running Kubernetes cluster (1.24+) and optionally cert-manager to install via Helm.
Kopiur is a backup operator for Kubernetes, the system used to run containerized applications at scale. It is written in Rust and uses Kopia as the actual backup engine underneath. Kopia is a backup tool that can store encrypted snapshots in remote locations like cloud object storage. Kopiur makes Kopia a native part of Kubernetes by expressing backup concepts as custom resource types, meaning you manage backups the same way you manage other Kubernetes objects. The project introduces seven custom resource types, each covering a distinct concern. A Repository defines a backup destination owned by a single namespace, including the backend storage location, encryption settings, and credentials. A ClusterRepository does the same but is shared across the whole cluster for platform teams. A BackupConfig describes what to back up, including which storage volumes to include, how long to retain snapshots, and any hooks to run before or after. A Backup represents a single snapshot as a Kubernetes object and is the main trigger point. A BackupSchedule defines when backups run, using a cron expression with optional jitter and timezone. A Restore initiates the recovery of a snapshot into a storage volume. A Maintenance object schedules Kopia's housekeeping routines. Separating the recipe from the invocation from the schedule means that the same backup configuration can be triggered multiple ways: on a schedule, by applying a Backup object manually, through an event system, or as a step in a deployment process. When a Backup object is deleted, its associated Kopia snapshot is cleaned up according to the configured deletion policy. Installation uses Helm, the Kubernetes package manager, and requires Kubernetes version 1.24 or later. Certificate management tooling is optional but supported. The project is in alpha, meaning the custom resource definitions may change between releases. The license is AGPL-3.0, which requires that modifications be shared under the same license.
A Rust-built Kubernetes operator that turns Kopia backups into native, schedulable Kubernetes objects.
Mainly Rust. The stack also includes Rust, Kubernetes, Kopia.
You can use and modify this freely, but if you distribute it or run a modified version as a network service, you must share your source code too.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly ops devops.
This repo across BitVibe Labs
Verify against the repo before relying on details.