Releases: libopenstorage/stork
Releases · libopenstorage/stork
Release Stork v2.3.2
Improvements
- Added
purgeDeletedResourcesoption to theMigrationspec, allowing resources that have been deleted on the source cluster to be purged from the destination cluster. This is disabled by default (#522) - Portworx: Added support for in-place cloudsnap restores. Supported with Portworx Enterprise v2.3.2 onwards (#505)
Bug Fixes
- A failure during snapshot object creation can no longer lead to a stuck
GroupVolumeSnapshot(#494) - Updated base container and packages to fix vulnerabilities detected by CVEs (#503)
- Fixes for
storkctl(#504):- Added the missing
backupNameparam when creatingApplicationRestoreobjects - Added the
replacePolicyparam when creatingApplicationCloneandApplicationRestoreobjects - Fixed an alias clash for the
VolumeSnapshotRestoreandApplicationRestoreobjects
- Added the missing
Docker Hub Image: openstorage/stork:2.3.2
Release Stork v2.3.1
Improvements
- Optimized some operations for
migrationandmigrationscheduleto reduce Kubernetes API calls (#483) - Added checks when collecting the following resources for migration and backup (#488)
- Secrets: Ignore auto-created secrets with well-known prefix names
- ServiceAccounts: Ignore auto-created service accounts unless they have non-default image pull secrets configured
- Ingress: Only collect namespace-scoped objects
- Role/RoleBinding: Ignore auto-created objects starting with "system:"
Bug Fixes
- Auto-created resources no longer risk getting stuck when being applied during migration (#488)
Docker Hub Image: openstorage/stork:2.3.1
Release Stork v2.3.0
New Features
- Added the VolumeSnapshotRestore CRD, which performs snapshot restores in-place
- Added support for backing-up and restoring applications (#372)
- Backup and restore operations trigger for the volume first, followed by the Kubernetes resources
- A BackupLocation CRD specifies the location of the backup
- An
ApplicationRestoreobject must refer to an ApplicationBackup that it wants to restore from - You can configure an
ApplicationBackupScheduleobject to perform periodic backups (#379) - Backups sync from a
BackupLocationif not already present on the cluster and if thesyncoption is set totruein theBackupLocation - You can find instructions here
- Added support to clone applications between namespaces (#373)
- You can only create
ApplicationCloneobjects in the admin namespace ClusterRoleis not copied since it is a cluster scoped objectClusterRoleBindingis merged to have the same binding for both namespaces- You can find instructions here
- You can only create
- Added new
storkctlcommands for the new CRDs
Improvements
- Added events for pods in case of scheduling failure from the extender (#338)
- Added adminClusterPair field in the Migration spec. You can use this to specify a cluster pair from the admin namespace which can be used to migrate cluster scoped resources (#361)
- Added validation for
nameandnamespacein the clusterpair generated withstorkctl generate clusterpair(#422) - The
migration-admin-namespaceparameter for stork has been deprecated. Please useadmin-namespaceinstead. This can be used to specify the admin namespace forMigrationas well as the namespace whereApplicationClonescan be created (#485) - The ImagePullSecrets field in the default ServiceAccount will now be migrated (#460)
- Portworx
Bug Fixes
- Fixed an issue in the health monitor by ignoring duplicate node IPs which would cause pods to be deleted from nodes where storage was online (#448)
- The kube apiserver sometimes returns Unauthorized when running on the cloud if there are temporary auth errors. Migration now retries on Unauthorized errors (#478)
- Default RBAC objects are now skipped during migration. This fixes issues where migration would attempt to delete and re-create
cluster-adminclusterrole on the destination (#478) - Fixed an issue that occurred during migration when an application didn't have annotations. This issue caused failures when trying to add the replica count as an annotation (#467)
Docker Hub Image: openstorage/stork:2.3.0
Release Stork v2.2.5
Improvements:
- Users can now set the annotation
stork.libopenstorage.org/preferLocalNodeOnlytotrueon their pods if they want pods to be scheduled only on nodes where data is located (#414) - Added support to migrate the following additional resources:
Bug Fixes
- Ignore errors when updating DeploymentConfig using
storkctl activate/deactivate migrationsif the type isn't registered (#395) - Fixed issue with failing scheduled snapshots if the snapshot schedule name was longer than 64 characters (#415)
- Fixed an issue where Portworx driver would attempt to make API calls to a non-existing portworx service port (#407)
Docker Hub Image: openstorage/stork:2.2.5
Release Stork v2.2.4
Enhancements
- Added a new status SyncStatusUnknown for ClusterDomains (#396)
- Migrations will be marked as Failed if the local cluster domain is inactive (#397)
- Updated migration behavior for PVs (#397)
- Setting reclaim policy to Retain if volumes aren't being migrated
- Updating PV if it already exists instead of deleting and creating
Bug Fixes
- Portworx: Changed the GetClusterDomains API to not return an error when it fails to fetch the volume list (#396)
Docker Hub Image: openstorage/stork:2.2.4
Release Stork v2.2.3
Improvements
- Optimized migrations for clusterrole and clusterrolebindings (#381)
- For clusterrolebindings using the object that we are iterating over
- For clusterrole, getting a list of clusterrolebindings initially and using that to check if migration
is required
- Skipping migration of
deployerandbuilderservice accounts which are automatically created
on OCP (#381) - Added some default schedule policies (#385)
- default-migration-policy: Triggers after every minute
- default-interval-policy: Triggers after every hour. Retains last 10
- default-daily-policy: Triggers every day at 12:00am. Retains last 7
- default-weekly-policy: Triggers every Sunday@12:00am. Retains last 4
- default-monthly-policy: Triggers every 15th day of the month at 12:00am. Retains last 12.
storkctlnow printsN/Ain the migration status when volumes or resources are not being migrated (#387)- Updated the default admin namespace to
kube-system(#386) - Added wait option (
-w / --watch) tostorkcktlcommand to activate clusterdomain (#384) - Added wait option (
-w / --watch) tostorkcktlcommand to create migrations (#391) - Added SyncStatus to the ClusterDomainsStatus CRD indicating whether a cluster domain is in sync with other cluster domains. The status will also be displayed when checking the status with
storkctl(#389) - Added
suspendandresumesubcommands tostorkctlfor schedule objects (#390) - Migration schedules will now be suspended if the local domain is inactive (#382)
- Updated
storkctlto print local cluster domain (#382)
Bug Fixes
- Fixed comparing cluster domains to see if an update is required in the status (#368)
- Fixed schedules not getting triggered if the current time is exactly at next trigger time (#371)
- Added missing activation for DeploymentConfig in
storkctl activate migrationssubcommand (#375)
Docker hub image: openstorage/stork:2.2.3
Release Stork v2.2.2
Improvements
- Added support to migrate the following additional OCP resources (#355)
- DeploymentConfig
- ImageStream
- Route
Container Image Updates
- Updated google cloud sdk to 243.0.0 (#351)
- Switched to python3 from python2.7 (#351)
- Upgraded some python libraries (#351)
Bug Fixes
- Portworx: Fixed memory leak when grpc endpoint was incorrect (#367)
Docker hub image: openstorage/stork:2.2.2
Release Stork v2.2.1
Updates
- Removed google cloud sdk test directories from the container (#349)
Docker hub image: openstorage/stork:2.2.1
Release Stork v2.2.0
New Features
- Added CRD to configure
SchedulePolicies(#250)- Cluster scoped objects that can be used in Schedule objects
- Added
storkctlsubcommands forschedulepolicy
- Added support for scheduling
Migrations(#252)- A new CRD (
MigrationSchedule) has been defined which can be used to run Migrations according to the specifiedSchedulePolicy - Added
storkctlsubcommands formigrationshotschedule
- A new CRD (
- Added support for scheduling
VolumeSnapshots(#289)- A new CRD (
VolumeSnapshotSchedule) has been defined which can be used to run VolumeSnapshots according to the specifiedSchedulePolicy - Added
storkctlsubcommands forvolumesnapshotschedule - Snapshot schedules can be created automatically on PVC creation by specifying options in the storageclass
- Examples in #289
- A new CRD (
- Added support to check and update ClusterDomains (#294)
- Two new cluster scoped CRDs have been defined
ClusterDomainsStatusreports the currently active and inactive domains from the storage driver.ClusterDomainUpdatecan be used to update the active and inactive domains- Added
storkctlsubcommands forclusterdomainsstatusandclusterdomainupdate - Examples in #294
Improvements
- Added support to run Pre/Post Exec rules during Migration (#238)
- They can be specified using
preExecandpostExecfields in the Migration spec
- They can be specified using
- Added support to specify label selectors during Migration (#272)
key: valuepairs can be specified using theselectorsfield to select specific resources to migrate- Helpful when you want to migrate only certain apps from a namespace
- Added support to migrate the following additional resources (#313)
- DaemonSets
- ServiceAccounts (except default)
- ClusterRoles (if used in the namespace)
- ClusterRoleBindings (if used in the namespace)
- Added option to skip pairing of storage when creating ClusterPair (#249)
- If no storage options are provided only the schedule will be paired
- This is useful when you have one storage fabric between multiple Kubernetes clusters and only want to migrate resources
- The restore namespace for VolumeGroupSnapshots can now be updated after it was created (#263)
- This propagates the annotation to all the children snapshots
- Portworx:
Bug Fixes
- Portworx
Docker hub image: openstorage/stork:2.2.0
Release Stork v2.1.2
Improvements
- Portworx: Ability to read service and namespace from environment variables (#307)
- Service name can be passed in with
PX_SERVICE(defaults toportworx-service) - Namespace can be passed in with
PX_NAMESPACE(defaults tokube-system)
- Service name can be passed in with