Change Log
v0.9.0-rc.2
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 be automatically garbage collected according to retention policy. Ref: stashed/stash#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
can be triggered viaspec.invoker
instead ofspec.backupConfiguration
field. This breaking api change is done in preparation for upcomingBackupBatch
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
- 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
- Use
spec.invoker
instead ofspec.backupConfiguration
in BackupSession stashed/docs#44
- Prepare for release v0.9.0-rc.2 stashed/installer#16
- Remove –enable-status-subresource flag stashed/installer#15
- Add delete permission to VS ClusterRole stashed/installer#13
- Ignore error while delete resources from uninstaller script stashed/installer#14
- Fix catalog installer (when helm is not installed) stashed/catalog#10
- Fix BackupSession’s Print Columns stashed/postgres#20
- Enable make ci stashed/postgres#19
- Remove
--enable-status-subresource
flag stashed/postgres#18 - Fix arguments passing stashed/postgres#17
- Fix BackupSession’s Print Columns stashed/mongodb#9
- Enable make ci stashed/mongodb#8
- Remove
--enable-status-subresource
flag stashed/mongodb#7 - Update totalHosts from backup/restore process stashed/mongodb#6
- Fix argument passing stashed/mongodb#5
- Fix BackupSession’s Print Columns stashed/mysql#12
- Enable make ci stashed/mysql#11
- Remove
--enable-status-subresource
flag stashed/mysql#10 - Fix argument passing stashed/mysql#9
- Fix BackupSession’s Print Columns stashed/elasticsearch#11
- Enable make ci stashed/elasticsearch#10
- Remove –enable-status-subresource flag stashed/elasticsearch#9
- Fix argument passing stashed/elasticsearch#8
v0.9.0-rc.1
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
, andElasticsearch
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 Stashkubectl
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 usingspec.backupHistoryLimit
field ofBackupConfiguration
.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 providesubPath
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
- nice
and
ionice` 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/[email protected] #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
andIONICE
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
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
to0.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
andionice
for backup command #366 - Cleanup old cache after backup #703
- Support Restic Rest server as backend. #126
Pull Request Summary
- Remove the
bs
short name for BackupSession #859 (tamalsaha) - Use github.com/golang/[email protected] #855 (tamalsaha)
- Fix resolving Task when volumeClaimTemplate is specified in RestoreSession #852 (hossainemruz)
- Use POD_ORDINAL env var to restore using PVC template #849 (suaas21)
- Pass replicas from RestoreSession to Function #848 (hossainemruz)
- Rename BackupConfigurationTemplate to BackupBlueprint #847 (hossainemruz)
- Use variable for version in BackupConfigurationTemplate name #846 (hossainemruz)
- New variable from type field of AppBinding + Fix RoleBinding name conflict with KubeDB #845 (hossainemruz)
- Fix Platforms Issue #844 (suaas21)
- Add support to restore using volumeClaimTemplate in Function-Task model #841 (hossainemruz)
- Add GetSnapshotSize() function #839 (hossainemruz)
- Fix travis build #837 (tamalsaha)
- Update azure-sdk-for-go dependencies #836 (tamalsaha)
- Fix RestoreSession replicas logic #835 (suaas21)
- Use robfig/cron@v3 #834 (tamalsaha)
- Add support for parallel backup & restore #833 (hossainemruz)
- Fix restore Job parallel execution #832 (suaas21)
- Remove unused code #829 (tamalsaha)
- Generate docs files inside docs repo #828 (tamalsaha)
- Add License notice to makefile #825 ([tamalsaha]https://github.com/tamalsaha())
- Create default Functions and Tasks from operator #824 (hossainemruz)
- Fix default securityContext passing to restore init-container/job #823 (hossainemruz)
- Fix restore job RBAC #821 (hossainemruz)
- Fixed volumeSnapshot Error Issue #819 (suaas21)
- Always attempt to pull a newer image for
make container
#818 (tamalsaha) - Make –image-tag a required flag. #817 (tamalsaha)
- Add PusgatewayURL input for Functions #816 (hossainemruz)
- Add TARGET_RESOURCE variable for BackupConfigurationTemplate #814 (hossainemruz)
- Add make install, uninstall, purge commands #813 (tamalsaha)
- Move chart & deploy scripts to github.com/stashed/installer #811 (tamalsaha)
- Move docs to github.com/stashed/docs repo #810 (tamalsaha)
- Restore PVCs from templates using Restic #809 (hossainemruz)
- Move HandleResticError to util package #806 (tamalsaha)
- Remove canary support #805 ([tamalsaha]https://github.com/tamalsaha())
- Fix travis build #804 (tamalsaha)
- Update Version.go #803 (tamalsaha)
- Added ARM64 support to the install script and manifest #802 (tamalsaha)
- Pass labels to offshoot + add generic offshoot labels #801 (hossainemruz)
- Add Makefile #800 (tamalsaha)
- Skip BackupSession creation if target does not exist + use timestamp … #797 (hossainemruz)
- Use absolute path as aliases for reference docs. #796 (tamalsaha)
- Remove importance of order of rule in RestoreSession #795 (hossainemruz)
- Use restic 0.9.5 #789 (hossainemruz)
- VolumeSnapshot #787 (suaas21)
- Fix: User and group creation of stash for mongodb and mysql #786 (the-redback)
- Update backup manager #782 ([tamalsaha]https://github.com/tamalsaha())
- Configure Env variables for Functions #780 (tamalsaha)
- Fix rest backend for workloads + add more authentication method for swift backend #778 (hossainemruz)
- Update package path to stash.appscode.dev/stash #776 (tamalsaha)
- Update to k8s 1.14.0 client libraries using go.mod #775 (tamalsaha)
- MutatingWebhooks must be without side-effect #773 (suaas21)
- Introduce VolumeSnapshot APIs #772 (hossainemruz)
- Use osm pkg from kmodules/objectstore-api #770 (tamalsaha)
- Remove –rbac flag #761 (suaas21) Skip creating/processing backup-session when backup-config is paused #759 (diptadas)
- Add “Supported Backends” doc to new guides #756 (hossainemruz)
- Add guides template for new design #755 (hossainemruz)
- Run restic commands using docker #754 (diptadas)
- Stash v1beta1 E2E test for PVC #753 (suaas21)
- Update Kubernetes client libraries to 1.13.5 #752 [https://github.com/stashed/stash/pull/752] (tamalsaha)
- Enable pipefail and update restore yamls #750 (diptadas)
- Implement snapshots for v1beta1 api #749 (diptadas)
- Stash v1beta1 E2E test for ReplicaSet #747 (suaas21)
- Apply nice/ionice settings from env #746 (diptadas)
- Fixed scratch-dir, output-dir and hostname in functions/tasks yamls #744 (diptadas)
- Stash v1beta1 E2E test for ReplicationController #742 (suaas21)
- Stash v1beta1 E2E test for DaemonSet #741 (suaas21)
- Update concept doc #739 (hossainemruz)
- Stash V1beta1 E2E test for StatefulSet #737 (suaas21)
- Attach volume for local backend #736 (diptadas)
- Add Stash CLI #734 (diptadas)
- Fix openapi path prefixes for validators and mutators #732 (tamalsaha)
- Add max-connections for GCS, Azure, B2 backend #730 (diptadas)
- Support PSP enabled cluster #729 (hossainemruz)
- Use FailurePolicy ignore for K8s resource webhooks #726 (diptadas)
- Rename admission webhooks to avoid name collision #725 (diptadas)
- Don’t write secret data inside temp dir #724 (diptadas)
- Add support for backup cluster resources YAML #721 (hossainemruz)
- Add TempDir and PSP settings for Function #720 (tamalsaha)
- Apply EmptyDir settings to TmpDir #719 (diptadas)
- Use cleanup-cache flag #717 (diptadas)
- Use ionice and nice with Restic CMD #716 (diptadas)
- Add support for OpenShift DeploymentConfig #714 (hossainemruz)
- Add support for rest backend #713 (diptadas)
- Stash V1beta1 E2E test for Deployment #710 (suaas21)
- Backup and restore Elasticsearch #702 (diptadas)
- Add BackupSession Controller for Sidecar #701 (suaas21)
- Backup and restore Mongo DB #699 (diptadas)
- Backup and restore MySQL DB #696 (diptadas)
- Backup and restore Postgres DB #695 (diptadas)
- Backup from stdin and dump to stdout #694 (diptadas)
- Post backup/restore status update #691 (diptadas)
- Use ContainerRuntimeSettings in Function spec #689 (diptadas)
- Fix v1beta1 api for BackupConfigurationTemplate #688 (hossainemruz)
- Update Kubernetes client libraries to 1.13.0 #687 (tamalsaha)
- Backup and restore PVC #676 (diptadas)
- Update workload controller for new design #675 (hossainemruz)
- Resolve tasks for backup/restore sessions #674 (diptadas)
- Add restic wrapper library #673 (hossainemruz)
- Add BackupConfiguration Controller #671 (suaas21)
- Introduce v1beta1 api #647 (hossainemruz)