Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Kopiur

Kopiur (Kopia + Rust) is a Kopia-native Kubernetes backup operator written in Rust on kube-rs. It makes a kopia repository a first-class Kubernetes resource and separates the backup recipe from its invocation from its schedule, so backups can be triggered by cron, kubectl create, Argo Events, or a Helm hook — and a kopia snapshot's lifecycle is tied to its Backup CR by a finalizer + deletionPolicy.

The whole CRD surface is modeled as Rust enums so invalid states are unrepresentable and reconcilers handle every variant at compile time. See ADR-0003 for the full design.

Alpha

API group kopiur.home-operations.com, version v1alpha1. The CRD surface may still change between releases.

The 7 CRDs (kopiur.home-operations.com/v1alpha1)

CRDScopeLayerPurpose
RepositoryNamespacedStorageA kopia repository owned by one namespace: backend, encryption, credentials.
ClusterRepositoryClusterStorageA shared repository for platform teams, gated by allowedNamespaces.
BackupConfigNamespacedRecipeWhat to back up: PVC sources, identity, retention, policy, hooks. Idempotent.
BackupNamespacedInvocation + CatalogOne kopia snapshot as a Kubernetes object. The universal trigger entry point.
BackupScheduleNamespacedCronWhen it runs: cron + jitter + timezone; creates Backup CRs.
RestoreNamespacedOperationRestore a snapshot to a PVC, or act as a passive volume-populator source.
MaintenanceNamespacedLifecycleSchedules kopia maintenance quick + full with an ownership lease.

Where to next