New to Stash? Please start here.
Backend is where Stash stores backup snapshots. It can be a cloud storage like GCS bucket, AWS S3, Azure Blob Storage etc. or a Kubernetes persistent volume like HostPath, PersistentVolumeClaim, NFS etc. Below diagram show how Stash sidecar container access and store backup data into a backend storage.
Stash sidecar container receive backend information from
spec.backend field of Restic crd. It obtains necessary credentials to access the backend from the secret specified in
spec.backend.storageSecretName field of Restic crd. Then on first backup schedule, Stash initialize a repository in the backend.
Below, a screenshot that show a repository created at AWS S3 bucket named
stash-qa for a Deployment named
You will see all snapshots taken by Stash at
/snapshot directory of this repository.
Note: Stash keeps all backup data encrypted. So, snapshot files in the bucket will not contain any meaningful data until they are decrypted.
Stash creates a Repository crd that represents original repository in backend in a Kubernetes native way. It holds information like number of backup snapshot taken, time when last backup was taken etc.
In order to use a backend, you have to configure
Restic crd and create a
Secret with necessary credentials.
localbackend from here.
AWS S3backend from here.
Google Cloud Storage (GCS)backend from here.
Microsoft Azure Storagebackend from here.
OpenStack Swiftbackend from here.
Backblaze B2backend from here.