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 stash-demo.
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.
local backend from here.AWS S3 backend from here.Google Cloud Storage (GCS) backend from here.Microsoft Azure Storage backend from here.OpenStack Swift backend from here.Backblaze B2 backend from here.