Change Log

v0.9.0-rc.0

Full Changelog

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