Skip to content

Releases: stashed/stash

Stash v0.9.0-rc.6

24 Feb 14:19
Compare
Choose a tag to compare

Stash v0.9.0-rc.6 comes with support for providing region of S3 compatible backends and some bug fixes since v0.9.0-rc.4 release. Please, try it and give us your valuable feedback. To install, please follow the guide here.

Significant Changes

  • Custom Region for S3 Compatible Storage: You can now provide region for s3 compatible storage. Use spec.backend.s3.region field to provide your bucket's region. For more details, please visit here.

  • Remove Defaulting fsGroup: Stash no longer injects fsGroup: 65535 in security context which was required for distroless based image in some GKE alpha clusters. Now, Stash uses busybox as base image.

  • Support New MongoDB Versions: We have added support for MongoDB 4.2 and 4.2.3.

Issue Fixed

  • s3 storage on scaleway: configurable default region instead 'us-east-1' #1049
  • Enforcing fsGroup to 65535 breaks backups on OpenShift #1009

Stash v0.9.0-rc.4

23 Jan 22:45
Compare
Choose a tag to compare

Stash v0.9.0-rc.4 comes with a number of new features and bug fixes since v0.9.0-rc.2
release. Please, try it and give us your valuable feedback. To install, please follow the guide here.

Significant Changes

  • Batch Backup: We have added support for taking backup of multiple co-related stateful workloads using a single configuration. Now, you can backup all the components(i.e. front-end, backend, database etc.) of your application using single configuration. For more details, pleas visit here.

  • Hooks: We are introducing backup and restore hooks in this version. Now, you can perform some actions before and after the backup/restore process. You can send HTTP requests to a remote server via httpGet or httpPost hooks. You can check whether a TCP socket is open using tcpSocket hook. You can also execute some commands into your application pod using exec hook. For more details, please visit here.

  • Fixed Large Name Issue: We have fixed the issue that was causing backup/restore to fail when Stash resources name was larger than 63 characters. Ref: #924.

Issue Fixed

  • Can't install stash #1032
  • Backup mysql creates infinite dumps #1030
  • large names #1012
  • BackupSession skipped for paused BackupConfiguration #997
  • Failed to create CronJob when BackupConfiguration name is same as Database crd name #1022
  • Operator is observing panic() while handling failed CronJob creation for BackupConfiguration #1019
  • Stash Addons: Make chart.sh script compatible with helm 3 #984
  • Introduce BackupBatch CRD #886
  • Add preBackup & postBackup hooks in BackupConfiguration #885
  • backup error for items #1018
  • RBAC permission missing in Chart for PersistentVolumeClaim, exists in installer deploy script #981
  • Clarify that user can not user /stash as mountPath for local backend #945
  • Invalid flag name for PVC restorer job #956

Release v0.9.0-rc.2

23 Oct 10:02
Compare
Choose a tag to compare

Stash v0.9.0-rc.2 comes with some bug fixes and improvements since v0.9.0-rc.1 release. Please, try it and give us your valuable feedback. To install, please follow the guide here.

Significant Changes

  • Retention Policy for VolumeSnapshot: We have implemented retention policy for VolumeSnapshot. Now, your old VolumeSnapshots will automatically cleaned according to retention policy. Ref: #926.

  • Fix Argument Passing: We have fixed argument passing to database backup/restore commands. Ref: stashed/mongodb#5, stashed/postgres#17, stashed/elasticsearch#8, stashed/mysql#9.

  • BackupSession API Revision: Now a BackupSession is triggered via spec.invoker instead of spec.backupConfiguration field. This breaking api change is done in preparation for upcoming BackupBatch crd support. Ref: stashed/stash#890, stashed/stash#931, stashed/docs#44.

Issue Fixed

  • Implement retention policy for VolumeSnapshot #808
  • Support elasticsearch backups #894
  • Chart "stash-postgres" not found in appscode index #898
  • Support mysql backups #892
  • Support mongodb backups #893
  • RestoreSession stuck running #895
  • Stash restore job fails #914

Pull Request Merged

stashed/stash:

  • Add release checklist issue template #934
  • Volume e2e test github action #933
  • Fix BackupSession additional print column #932
  • Remove spec.backupConfiguration from BackupSession #931
  • Update e2e tests to run on GitHub actions #917
  • Enable make ci #928
  • Don't restart workload on backup pause+Use ImagePullPolicy: "Always" for Function-Task model #929
  • Add status.observedGeneration #927
  • Implement RetentionPolicy for VolumeSnapshot #926
  • Verify generated files are up to date #925
  • Update and rename go.yml to ci.yml #922
  • Add probe and BackupBatch api #890
  • Use core package from k8s.io/api repo #921

stash/docs:

  • Use spec.invoker instead of spec.backupConfiguration in BackupSession stashed/docs#44

stash/installer:

stash/catalog:

stashed/postgres:

stashed/mongodb:

stashed/mysql:

stashed/elasticsearch:

v0.9.0-rc.1

07 Oct 16:51
Compare
Choose a tag to compare

Stash v0.9.0-rc.1 comes with documentation and respective charts for addons to backup databases. It also comes with some bug fixes since v0.9.0-rc.0 release. We have also introduced a kubectl plugin for Stash in this release. Please, try it and give us your valuable feedback. To install, please follow the guide here.

Significant Changes

  • Addon Support: Stash addons enable users to extend it's functionality to backup/restore any type of custom workloads. This release includes respective documentations and charts for PostgreSQL, MySQL, MongoDB, and Elasticsearch databases. This enables Stash to backup various KubeDB supported databases. You can also write your own addon to backup your custom target. We will include a guide on how to build addon for Stash in a future release.

  • Stash kubectl Plugin (Alpha): We have introduced an experimental Stash kubectl plugin. This will help you to unlock repository, trigger instant backup and copy various Stash resources between namespace and more.

  • Introduce BackupHistoryLimit: Now, you can configure how many BackupSession and associate resources (Job, PVC etc) to keep for each backup target. By default, Stash will keep only the history of last backup for debugging purpose. You can configure it using spec.backupHistoryLimit field of BackupConfiguration.

  • Introduce InterimVolumeTemplate: We have introduced a new field called InterimVolumeTemplate that can be used to pass a PVC template for storing temporary backup/restore data before uploading to backup or injecting into target. For more details, please visit here.

  • Allow subPath in Auto-Backup Annotation: Now, you can provide subPath in auto-backup annotation. For more details, please check here.

  • Use Kubebuilder to Generate CRDs: We have moved to kubernetes-sigs/kubebuilder for generating CRDs for Stash.

Issues Fixed

  • subPath stash autobackup annotation #868
  • GKE Alpha cluster need to run as "fsGroup: 65535" #873
  • Can't evaluate field version in AppBinding #876
  • Neither --kubeconfig nor --master was specified #878
  • Prometheus metrics missing source of the backup #869
  • Waiting until stash apiservice is available on GKE with private nodes #875
  • niceandionice` is missing in distroless image #882
  • BackupBlueprint not creating Repository or BackupConfiguration #877
  • mysql stash backup error: unexpected end of JSON input #880
  • How do I override the folder name stash recovers from #861
  • Cannot pull image stashed/stash-mysql:8.0.14 #879
  • Nil pointer check is missing in metric handling #881
  • [0.9.0-rc.0] Cannot list snapshots #901
  • Support interim data volume in BackupConfiguration #906
  • Stash not backing up all files #899
  • [feature] clean up objects #867
  • Stash addon doc organization #856
  • Generate swagger.json for v1beta1 #896
  • Stash restore job fails #914
  • RestoreSession stuck running #895
  • Support mongodb backups #893
  • Support mysql backups #892

Pull Request Merged

  • Bring back dependency to github.com/golang/protobuf@v1.2.0 #918
  • Run e2e tests using GitHub actions #909
  • Generate swagger.json for v1beta1 #916
  • Add release pipeline #915
  • Fix Restore PVC using Task Function method #897
  • Fix VolumeSnapshot Issues #912
  • Add Kubebuilder annotations #911
  • Use kubebuilder to generate crd yamls #843
  • Introduce InterimVolumeTemplate and BackupHistoryLimit field. #907
  • Make RetentionPolicy required in v1beta1 api #905
  • Enable GitHub actions #903
  • Fix snapshot listing for local backend #902
  • Improve Error Handling + Code refactor #891
  • Add NICE and IONICE into distroless image #883
  • Improve metrics handling + make update status uniform #872
  • Use default fsGroup: 65535 #874
  • Add DumpEnv func to Restic Config file #870
  • Allow to specify subPath in auto-backup annotation + use default mounts and target paths for PVC #871

v0.9.0-rc.0

09 Aug 12:30
50f69ff
Compare
Choose a tag to compare
v0.9.0-rc.0 Pre-release
Pre-release

We are very excited to announce Stash v0.9.0-rc.0. This release introduces v1beta1 API and a design overhaul. The new API and design enable Stash to support the use cases that were not possible before. This makes Stash more powerful, transparent, extensible and customizable. We are expecting that this new API will graduate to GA after some maturity. Check out the new architecture from here.

What's New

This release introduces lots of new features and changes. A summary of these new features is given below:

New Custom Resources

The following custom resources have been introduced in this release:

New Features

In addition to improving existing features, this release introduces the following new features:

  • Backup & Restore Stand-alone PVC :
    Stash now supports taking backup of a stand-alone PVC. To learn more about how Stash takes backup of a stand-alone PVC, please visit here.

  • Backup & Restore Databases :
    Stash now can backup PostgreSQL, MongoDB, Elasticsearch and MySQL databases in both stand-alone and clustered mode. To learn more about how Stash takes backup of a database, please visit here.

  • VolumeSnapshot :
    Now, you can take a scheduled snapshot of the volumes of a workload using Kubernetes VolumeSnapshot API. Check out how volume snapshotting works in Stash from here.

  • Instant Backup :
    You can now trigger a backup instantly. To learn how, please visit here.

  • Auto Backup :
    Now, Stash will let you configure a common template to backup similar types of target. You will require to add just a few annotations to the targeted workload to enable backup for it. Want to know how? Please visit here.

  • Support PSP Enabled Cluster :
    Stash now supports PSP enabled cluster.

  • Improved Prometheus Metrics :
    We have improved Prometheus metrics in this release. Check out the new metrics from here.

  • Support REST Server as Backend :
    Stash now supports REST server as backend. To learn how to configure REST backend, please visit here.

  • KubeDB Integration :
    Stash now seemingly integrates with KubeDB. It is now recommended tool to backup & restore KubeDB supported databases.

For a complete feature list of this release, please visit here.

Significant Changes

  • Stash now has been moved from appscode Github organization to its own organization. New home for Stash is stashed organization.
  • We have split the original appscode/stash repository into multiple repositories (stashed/stash, stashed/installer, stashed/docs). This enables us to push emergency fixes to installer and docs without requiring to cut a new release.
  • Now Stash uses a more industry-standard Makefile based build process. This makes building Stash from source code simple and easy (#800).
  • We have added ARM architecture support in this release. Thanks to @carlosedp (#802).
  • We now use Docker manifest to build Stash docker images. Hence, Stash docker images are now platform aware. You don't have to worry about your platform architecture. Docker will take care of it (#802).
  • We have updated restic version from 0.8.3 to 0.9.5 (#789).
  • We have upgraded Kubernetes client to v1.14.0 (#775).
  • Now Stash uses failurePolicy: Ignore in webhooks for Kubernetes official resources. So, Stash will no longer cause any problem for creating new Kubernetes resources when it is not ready (#726).
  • As RBAC is now default in most of the Kubenetes cluster and creating RBAC resources in an RBAC disabled cluster does not cause any problem, we have removed --rbac flag. Now, Stash will always start in RBAC enabled mode (#761).
  • We have moved to go mod from glide for dependency management (#775).
  • We have changed Stash package path to stash.appscode.dev/stash (#776).

Upgrading from 0.8.3

If you are upgrading Stash from 0.8.3 to this version, pay attention to the following things:

What will work:

  • Exiting scheduled backup will continue to work.
  • Scheduling new backup using Restic crd will work.
  • Restoring the already backed up data using Recovery crd will work.

What will not work:

  • Restoring the data that was backed up using old API (Restic) with the new API (RestoreSession) will not work.
  • Restoring the data that was backed up using new API (BackupConfiguration) with the old API (Recovery) will not work.
  • Using new API (BackupConfiguration ) to backup into already existing Repository will not work. Stash will upload all targeted data again into the backend. Old snapshots will not be usable any more.
  • Old Grafana dashboard will not work with new metrics.

Issues Fixed

  • Sidecar RoleBinding is not being created when Mutating Webhook is enabled #395
  • Cannot deploy stash with helm@3 #822
  • Restore PVCs from templates using Restic #784
  • Handle restored files permission properly #733
  • Use restic 0.9.5 #781
  • Support PSP or SCC (openshift) enabled clusters #462
  • Configure environment variables (or proxy settings) on restic and recovery CRDs #621
  • Proposal: Move cluster backup part from Kubed to Stash #601
  • error: unable to retrieve the complete list of server APIs: admission.stash.appscode.com/v1alpha1: the server is currently unable to handle the request, repositories.stash.appscode.com/v1alpha1: the server is currently unable to handle the request #785
  • Internal error occurred: failed calling webhook "deployment.admission.stash.appscode.com": the server is currently unable to handle the request #692
  • MutatingWebhooks must be without side-effect #758
  • Targeted Workload stuck in terminating state after deleted a Restic CRD #672
  • OSM config and file permission issue #766
  • Remove --rbac flag #705
  • Use FailurePolicy ignore for K8s resource webhooks? #709
  • FR: Add possibility to change settings of Restic #545
  • Allow setting nice and ionice for backup command #366
  • Cleanup old cache after backup #703
  • Support Restic Rest server as backend. #126

Pull Request Summary

Read more

0.8.3

19 Feb 02:57
ccf4469
Compare
Choose a tag to compare

Stash 0.8.3 fixes various bugs reported since 0.8.2 release. To install, please follow the guide here.

Download Docker images via:

docker pull appscode/stash:0.8.3

Changelog

0.8.2

02 Jan 11:43
Compare
Choose a tag to compare

Stash 0.8.2 fixes various bugs reported since 0.8.1 release. To install, please follow the guide here.

Download Docker images via:

docker pull appscode/stash:0.8.2

Changelog

0.8.1

09 Dec 03:29
5523345
Compare
Choose a tag to compare

Stash 0.8.1 fixes Helm chart(#627). To install, please follow the guide here.

Download Docker images via:

docker pull appscode/stash:0.8.1

Changelog

0.8.0

08 Dec 00:32
Compare
Choose a tag to compare

Stash 0.8.0 comes with lots of bug fixes and documentation improvements. It requires Kubernetes 1.9.x or later versions. Stash bundles restic binary 0.8.3. To install, please follow the guide here. To upgrade, please follow the guide here.

Download Docker images via:

docker pull appscode/stash:0.8.0

Fixed bugs:

  • Delete snapshot command does not check for snapshot's existence #549
  • Backup not triggered #461
  • Service name hardcoded in func PushgatewayURL, no metrics available #596
  • Fix extended apiserver issues with Kubernetes 1.11 #536 (tamalsaha)
  • Correctly handle ignored openapi prefixes #533 (tamalsaha)
  • Add rbac permissions for snapshots #531 (tamalsaha)

Closed issues:

  • Problem creating backups #588
  • Issue while installing stash kubernetes 1.11.2 #587
  • Hardcoded cleaner kubectl image in Helm chart #583
  • Deployed latest helm chart and getting error during sidecar creation #556
  • Minio backup fails: 'net/http: invalid header field value "..." for key Authorization' #547
  • Repository overwrite for different workload with same name in different namespace #539
  • Unexpected behavior in offline backup #535
  • Offline backup not working (permissions) #534
  • Support node selector for recovery job #515
  • Clarify that hostpaths are just example #514
  • Internal error occurred: failed calling admission webhook "deployment.admission.stash.appscode.com": the server could not find the requested resource #510
  • GKE page missing front matter #505
  • Could not list snapshots on kubernetes 1.8.4 #503
  • Admission webhook denied rquest: Rolebindings not found #501
  • Incorrect image name for sidecar container #485
  • Using Stash with TLS secured Minio Server Can't succeed #478
  • Add cluster name in repo path #374
  • Stash don't pass nodeSelector from Recovery crd to recovery Job. #617
  • Add Prometheus config sample for pushgateway #582
  • Handle security context #566
  • [Request] Add backup details to "kubectl get" for stash objects on K8s 1.11 #525
  • matchLabels on Restic CRD not working when using hyphens in keys #521

Merged pull requests:

Read more

0.7.0

29 May 01:13
705ecd0
Compare
Choose a tag to compare

Stash 0.7.0 comes with a number of major features and lots of bug fixes, It requires Kubernetes 1.8.x or later versions. It adds 2 new resources Repository and Snapshot. Stash supports self signed certificates with Minio backends. Stash upgrades bundled restic binary to 0.8.3. Stash now uses admission webhooks to mutate workloads and validate crds. To install, please follow the guide here. To upgrade, please follow the guide here.

Download Docker images via:

docker pull appscode/stash:0.7.0

Notable Changes

  • Fix enableRBAC flag for sidecar #480 (emruz-hossain)
  • Add support for initial backoff to the apiserver call on recover #476 (farcaller)
  • Support recovering from repository in different namespace #474 (tamalsaha)
  • Limit the GCS file permissions to owner only #472 (farcaller)
  • Use new UpdateRecoveryStatus method #466 (tamalsaha)
  • Add Update***Status helpers #465 (tamalsaha)
  • Added SSL support for deleting restic repository from Minio backend #464 (emruz-hossain)
  • Update client-go to 7.0.0 #463 (tamalsaha)
  • Improve installer #456 (tamalsaha)
  • Used Snapshot to verify successful backup #447 (emruz-hossain)
  • Delete restic repository from backend if Repository CRD is deleted #438 (emruz-hossain)
  • Recover specific snapshot #437 (emruz-hossain)
  • Use Repository data in Recovery CRD #436 (emruz-hossain)
  • Increase qps and burst limits #435 (tamalsaha)
  • Show repository snapshot list #417 (emruz-hossain)
  • Recovery to PVC restores data in subdirectory instead of root directory #392
  • Add CRD Validation #406
  • Use Restic spec hash instead of resource version to restart pods #399
  • Create repository crd for each Restic repository #394
  • Use restic 0.8.3 #355
  • Implement offline backup for multiple replica #335
  • Don't block deletion of owner by default #342
  • Use rbac/v1 apis #339
  • Add user roles #338
  • Use official code generator scripts #336
  • Update Grafana dashboard #330 (galexrt)
  • Implement Pause Restic #315
  • Support private docker registry in installer #310
  • Write restic stderror in error events #296
  • Support self-signed ca cert for backends #294