You are looking at the documentation of a prior release. To read the documentation of the latest release, please visit here.

New to Stash? Please start here.

Stash Backends

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 Backend Overview

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.

  Repository in AWS S3 Backend

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.

Next Steps

  • Learn how to configure local backend from here.
  • Learn how to configure AWS S3 backend from here.
  • Learn how to configure Google Cloud Storage (GCS) backend from here.
  • Learn how to configure Microsoft Azure Storage backend from here.
  • Learn how to configure OpenStack Swift backend from here.
  • Learn how to configure Backblaze B2 backend from here.