Skip to main content

What Is Testudo

Testudo is an application-level disaster recovery orchestration project for Kubernetes. It uses CRDs to describe user intent and an operator to continuously reconcile the actual state.

Velero is excellent for backup and restore. Testudo builds a higher-level control plane on top of Velero: application protection, cross-cluster role relationships, sync history, failover orchestration, reprotection, drills, and API aggregation.

Problems It Solves

  • Protect Kubernetes namespaces and PVC data.
  • Keep recoverable backup data and standby resources between source and target clusters.
  • Run step-based failover without making both sites active at the same time.
  • Establish reverse protection after failover.
  • Run drills without impacting the production source cluster.
  • Expose REST APIs, Watch streams, events, and statistics for a console or automation platform.

Typical Use Cases

  • Application-level disaster recovery between two Kubernetes clusters.
  • Periodic synchronization of workloads, Services, Ingresses, configuration, and PVC data.
  • Group failover for applications with dependency levels.
  • Scheduled validation that backups can actually be restored.
  • Platform integration through APIs and Watch streams.

Non-Goals

  • It does not replace storage-array replication or database-native replication.
  • It does not perform DNS switching or global traffic routing by itself.
  • It does not assume all workloads can be switched without application-specific consistency design.
  • It does not hide Velero as a black box; Velero compatibility still matters.

Repository Split

  • disaster-operator: CRDs, controllers, state machines, and execution.
  • disaster-server: REST API, Watch streams, authentication, DTO aggregation, statistics, and OpenAPI.