Stash

Stash by AppsCode is a Kubernetes operator for restic. If you are running production workloads in Kubernetes, you might want to take backup of your disks, databases etc. Traditional tools are too complex to setup and maintain in a dynamic compute environment like Kubernetes. restic is a backup program that is fast, efficient and secure with few moving parts. Stash is a CRD controller for Kubernetes built around restic to address these issues. Using Stash, you can backup Kubernetes volumes mounted in workloads, stand-alone volumes and databases.

Features

Features Availability Scope
Backup & Restore Workload Data Deployment, DaemonSet, StatefulSet, ReplicaSet, ReplicationController, OpenShift DeploymentConfig
Backup & Restore Stand-alone Volume (PVC) PersistentVolumeClaim, PersistentVolume
Backup & Restore databases PostgreSQL, MySQL, MongoDB, Elasticsearch
VolumeSnapshot CSI Driver must support VolumeSnapshot and Kubernetes Alpha features must be enabled
Backup Kubernetes Cluster Manual restore
Schedule Backup Schedule through cron expression
Instant Backup Use CLI or create BackupSession manually
Auto Backup Using a Template and annotations
Pause Scheduled Backup
Support Multiple Storage Provider AWS S3, Minio, Rook, GCS, Azure, OpenStack Swift, Backblaze B2, Rest Server, any PV/PVC
Encryption AES-256 in counter mode (CTR) (for Restic driver)
Deduplication (send only diff) Uses Content Defined Chunking (CDC) (for Restic driver)
Cleanup old snapshots automatically Cleanup according to different retention policies
Prometheus Metrics for Backup & Restore Process Official Prometheus Server, CoreOS Prometheus Operator
Prometheus Metrics for Stash Operator Official Prometheus Server, CoreOS Prometheus Operator
Support RBAC enabled cluster
Support PSP enabled cluster
CLI kubectl plugin (for Kubernetes 1.12+)
Extensibility Extend using Function and Task
Customizability Customize backup / restore process using Function and Task