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

FeaturesAvailabilityScope
Backup & Restore Workload DataDeployment, DaemonSet, StatefulSet, ReplicaSet, ReplicationController, OpenShift DeploymentConfig
Backup & Restore Stand-alone Volume (PVC)PersistentVolumeClaim, PersistentVolume
Backup & Restore databasesPostgreSQL, MySQL, MongoDB, Elasticsearch
VolumeSnapshotCSI Driver must support VolumeSnapshot and Kubernetes Alpha features must be enabled
Schedule BackupSchedule through cron expression
Instant BackupUse CLI or create BackupSession manually
Auto BackupUsing a Template and annotations
Batch BackupBackup multiple co-related targets under a single configuration
Pause Scheduled Backup
Support Multiple Storage ProviderAWS S3, Minio, Rook, GCS, Azure, OpenStack Swift, Backblaze B2, Rest Server, any PV/PVC
EncryptionAES-256 in counter mode (CTR) (for Restic driver)
Deduplication (send only diff)Uses Content Defined Chunking (CDC) (for Restic driver)
Cleanup old snapshots automaticallyCleanup according to different retention policies
Prometheus Metrics for Backup & Restore ProcessOfficial Prometheus Server, CoreOS Prometheus Operator
Prometheus Metrics for Stash OperatorOfficial Prometheus Server, CoreOS Prometheus Operator
Support RBAC enabled cluster
Support PSP enabled cluster
CLIkubectl plugin (for Kubernetes 1.12+)
ExtensibilityExtend using Function and Task
CustomizabilityCustomize backup / restore process using Function and Task
HooksExecute httpGet, httpPost, tcpSocket and exec hooks before and after of backup or restore process.
Send Notification to WebhookUse hooks to send notification to webhooks(i.e. Slack channel)