Skip to content

Backup Examples

Ready-to-use Backup manifests for common scenarios. See YAML Files for downloadable .yaml files.

Basic: Single Deployment

Backup a Deployment and its attached PVCs. Retour discovers volumes automatically. Retour discovers volumes automatically.

apiVersion: retour.thebackup.company/v1
kind: Backup
metadata:
  name: webapp-backup
spec:
  storageBackend: s3-production
  namespacedResources:
    - resourceType: Deployment
      namespace: production
      name: webapp

StatefulSet

apiVersion: retour.thebackup.company/v1
kind: Backup
metadata:
  name: database-backup
spec:
  storageBackend: s3-production
  namespacedResources:
    - resourceType: StatefulSet
      namespace: production
      name: postgres

Full Namespace

Backup all resources in a namespace and their PVs.

apiVersion: retour.thebackup.company/v1
kind: Backup
metadata:
  name: production-namespace-backup
spec:
  storageBackend: s3-production
  clusterResources:
    - resourceType: Namespace
      name: production

Manifests Only (No PV Data)

Useful for quick configuration backup or when PV data is managed separately.

apiVersion: retour.thebackup.company/v1
kind: Backup
metadata:
  name: manifests-only
spec:
  storageBackend: s3-production
  excludePVs: true
  namespacedResources:
    - resourceType: Deployment
      namespace: production
      name: webapp

With Resource Filter

Exclude Secrets, Pods, and resources matching patterns or labels.

apiVersion: retour.thebackup.company/v1
kind: Backup
metadata:
  name: filtered-backup
spec:
  storageBackend: minio
  clusterResources:
    - resourceType: Namespace
      name: my-app
  resourceFilter:
    excludeResourceTypes:
      - Secret
      - ConfigMap
      - Pod
    excludeResourceNames:
      - "^debug-"
      - "^test-"
    excludeResourceLabels:
      matchLabels:
        exclude-from-backup: "true"

With PV Path Filters

Include or exclude specific paths within a PVC.

apiVersion: retour.thebackup.company/v1
kind: Backup
metadata:
  name: selective-paths-backup
spec:
  storageBackend: s3-production
  namespacedResources:
    - resourceType: StatefulSet
      namespace: production
      name: database
      pvFilters:
        - name: data-pvc
          include:
            - /var/lib/mysql
          exclude:
            - /var/lib/mysql/tmp
            - /var/lib/mysql/logs

Multiple Resources

Backup several Deployments and a Namespace in one Backup.

apiVersion: retour.thebackup.company/v1
kind: Backup
metadata:
  name: multi-resource-backup
spec:
  storageBackend: s3-production
  namespacedResources:
    - resourceType: Deployment
      namespace: production
      name: webapp
    - resourceType: Deployment
      namespace: production
      name: api
    - resourceType: StatefulSet
      namespace: production
      name: redis
  clusterResources:
    - resourceType: Namespace
      name: staging

Skip Specific PVC

Skip a PVC when backing up a StatefulSet.

apiVersion: retour.thebackup.company/v1
kind: Backup
metadata:
  name: skip-pvc-backup
spec:
  storageBackend: s3-production
  namespacedResources:
    - resourceType: StatefulSet
      namespace: production
      name: app
      pvFilters:
        - name: cache-pvc
          skip: true

BackupSchedule: Daily

apiVersion: retour.thebackup.company/v1
kind: BackupSchedule
metadata:
  name: daily-backup
spec:
  schedule: "0 2 * * *"
  storageBackend: s3-production
  namespacedResources:
    - resourceType: Deployment
      namespace: production
      name: webapp
  successfulBackupsHistoryLimit: 7
  failedBackupsHistoryLimit: 2

BackupSchedule: Hourly with No Overlap

apiVersion: retour.thebackup.company/v1
kind: BackupSchedule
metadata:
  name: hourly-backup
spec:
  schedule: "0 * * * *"
  storageBackend: s3-production
  concurrencyPolicy: Forbid
  namespacedResources:
    - resourceType: StatefulSet
      namespace: production
      name: database
  successfulBackupsHistoryLimit: 24