Skip to content

Restoring Data

How to restore from a Retour backup.

Restore by Backup Name

The simplest restore references the Backup by name:

apiVersion: retour.thebackup.company/v1
kind: Restore
metadata:
  name: my-restore
spec:
  backupName: webapp-backup
  storageBackend: s3-production

Retour will restore all resources and PV data from that backup.

Selective Restore

Restore only specific resources:

apiVersion: retour.thebackup.company/v1
kind: Restore
metadata:
  name: selective-restore
spec:
  backupName: webapp-backup
  storageBackend: s3-production
  resourcesToRestore:
    - kind: Deployment
      name: webapp
      namespace: production
    - kind: PersistentVolumeClaim
      name: webapp-data
      namespace: production

Restore from External Path

When the backup was created in another cluster or the Backup CR no longer exists, use backupPath:

apiVersion: retour.thebackup.company/v1
kind: Restore
metadata:
  name: external-restore
spec:
  backupPath: /backups/2024-01-15/webapp-backup
  storageBackend: s3-production

The restore reads the backup's metadata documents straight from the storage backend, so nothing needs to exist in the cluster beforehand. See Disaster Recovery.

Restore from Backup Job UUID

If you have the backup's job UUID (recorded in the Backup CR's status.jobUUID):

spec:
  backupJobUUID: "550e8400-e29b-41d4-a716-446655440000"
  storageBackend: s3-production

Monitoring a Restore

# Watch restore status
kubectl get restores -w

# Check worker logs
kubectl logs -f -n retour -l app=retour-worker

# Inspect restore details
kubectl describe restore my-restore

Phases: Pending → Running → Completed (or Failed)

Restore to a Different Namespace

Retour restores resources to their original namespaces by default. For cross-namespace or cluster migration, you may need to adjust the restore workflow or use resourcesToRestore to target specific resources after manual namespace creation.