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.