Skip to content

Instantly share code, notes, and snippets.

@skriss
Last active May 11, 2020 20:50
Show Gist options
  • Save skriss/dccc494aea67a47473e184c18aac9af6 to your computer and use it in GitHub Desktop.
Save skriss/dccc494aea67a47473e184c18aac9af6 to your computer and use it in GitHub Desktop.

Case 1: current behavior -- opt in to restic backups

Pod definition:

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
  namespace: my-ns
  annotations:
    backup.velero.io/backup-volumes: volume-1
spec:
  volumes:
  - name: volume-1
    emptyDir: {}
  - name: volume-2
    emptyDir: {}

Velero command:

velero backup create my-backup

Result:

$ velero backup describe my-backup --details
...
Restic Backups:
  Completed:
    my-ns/my-pod: volume-1

Case 2: new behavior -- back up volumes with restic by default

Pod definition:

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
  namespace: my-ns
  annotations:
    backup.velero.io/dont-backup-volumes: volume-1
spec:
  volumes:
  - name: volume-1
    emptyDir: {}
  - name: volume-2
    emptyDir: {}

Velero command:

velero backup create my-backup --restic-backup-by-default true

Result:

$ velero backup describe my-backup --details
...
Restic Backups:
  Completed:
    my-ns/my-pod: volume-2

Case 3: new behavior for snapshottable volumes

Pod definition:

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
  namespace: my-ns
  annotations:
    backup.velero.io/backup-volumes: volume-1
    backup.velero.io/dont-backup-volumes: volume-2
spec:
  volumes:
  - name: volume-1
    persistentVolumeClaim:
      claimName: pvc-1
  - name: volume-2
    emptyDir: {}

NOTE: assume there is a VolumeSnapshotter that can back up volume-1

Velero command:

velero backup create my-backup --restic-backup-by-default true

Result:

$ velero backup describe my-backup --details
...
Restic Backups:
  Completed:
    my-ns/my-pod: volume-1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment