Open-source Kubernetes DR control plane
Testudo
Application-level disaster recovery orchestration for Kubernetes. Testudo uses CRDs for intent, an operator for state reconciliation, Velero for backup and restore, and server APIs for console and automation workflows.
Source ClusterKubernetes · Velero
Testudo Control Plane
Server APIOperatorCRD Protection Intent
Recovery ClusterKubernetes · Standby
Resource and Data Sync
Object StorageS3 / MinIO
Architecture
Server is the entry point, Operator executes, CRDs are the source of truth
`disaster-server` owns auth, REST, Watch, DTOs, and statistics. `disaster-operator` owns CRD state machines, remote cluster access, Velero resources, and compensation logic.
Source ClusterKubernetes · Velero
Testudo Control Plane
Server APIOperatorCRD Protection Intent
Recovery ClusterKubernetes · Standby
Resource and Data Sync
Object StorageS3 / MinIO
API Layer/apis/disasterinstances.disaster.wuxs.vip/v1/instances
Control PlaneDisasterInstance / DataSync / ResourceSync / DisasterOperation
RuntimeSource cluster / Target cluster / Velero / S3 or MinIO
Capabilities
View all capabilities Capabilities for the disaster recovery loop
Data SyncSynchronize PVC data through AppBackup, Velero Backup, AppRestore, and Trafficless Pods.Resource SyncSynchronize Kubernetes resource manifests and keep target workloads in standby form.FailoverSplit failover into observable steps such as PreCheck, FinalSync, and ScaleUpTarget.ReprotectEstablish the new source-to-standby protection relationship after failover.Disaster GroupUse levels to express dependency order across multiple instances.API And WatchServer exposes REST APIs, Watch streams, statistics APIs, and OpenAPI.
Workflow
Standard path from protection to drill
1Protect
2Sync
3Failover
4Reprotect
5Drill
Documentation
Enter DocsStart reading
Start with Quick Start, then go deeper into CRDs, sync flows, operation state machines, APIs, production deployment, and contribution workflows.