# CStor Beta Readiness
## Limitations
- Migration from SPC to CSPC is supported from 1.11.x. The SPC should be upgraded to 1.11.x ce/ee, before migrating to CSPC.
## OpenEBS : Must Fixes
- Functionality: Improvements to Upgrade status for CSI volumes (@shubham) [Done]
- Usability: Ability to easily disable webhook validations via helm value. (@prateek) [Done]
- Install: cStor operator yamls for different operating systems.(@prateek) [Done]
- Pod affinity cStor target. [Done]
- Install: Helm charts for cstor-operators ( a new chart will be added ) (@kiran) (@ashutosh will help with this)
- Create a new helm chart for cstor-operators YAML
- NDM UUID should be in Beta. (@akhil) [In-Review] (Enable by default by updating operator yaml/helm chart)
- May introduce a fix for McKinsey, where they depend on auto cstor pool creation with new NDM device coming with same id.
- Size unit representation in cspi resource (Mi,Ki,Gi) (known issue, exploring different ways)[Scoped Out for next release]
- Show default status values in cspi, get omitted due to omitempty json tag (readOnly, provisioned and healthy replicas count) ( PR needs merge, update cstro-operators with apis and re-tag, inform to e2e team) (@sai @prateek) [Done]
- Remove the allocated and type from CSPI custom columns (@sai)[Done]
- external provisioner lib version details wrt to local pv and openebs-provisioner (@prateek)[Done]
-
## Director : Must Fixes
- Support for Migrate from SPC to CSPC (@shovan ?)
- Support for Upgrades of CSPC and CSI based volumes
- Support for uninstall of OpenEBS and cStor CSPC/CSI operators (?)
## Documentation
- Tunnables docs CSPC (@ashutosh) [Done]
- CStor Pool Resource Organization docs.(@ashutosh) [Done]
- CStor volume resource organisation docs(@ashutosh).[Done]
- Add volume troubleshoot docs (@prateek) [In-Progress]
- CSI volume policy documentation. (@prateek) [Done]
- Recovery document of data in case of Node name change -- (document proper manual steps) (@sai) [Done]
- Recovery document when pool operation hung due to bad disks.--(NDM unique disk accessing required to fix this) (@ashutosh) [Done]
- Migrate pools when node and underlying disk are lost(AutoScale usecase) (@sai)-- [Done]
- Troubleshooting doc to install ISCSI in Rancher based cluster (@sai). [Done]
- Doc needs to be modified to indicate the beta release.
- Update the older CSPC and CSI blogs.
- CStor 101 blogs.
- Website docs update
# Upgrade:
- Minimum CSPC/CSI supported version (1.10.0)
# Migration:
- Minimum version to support migration (1.12.0)
# Social Media Engagement
- List of tweets to tweet
- Reddit posts
- Video tutorials
# PRs
- Add missing CSI Integration tests (Manual Verification Done)[PR][In-progress] @prateek
- Replace Manual CRDs with generated OpenAPIV3 based CRDs [Done] @prateek
- A new PR needs to be raised to bring the changes in cstor-operators. [Done](@prateek, @sathya)
- Block Device tag check from cstor-operators. (@ashutosh)[Done]
## E2e test
- Test migration with generic CSI operator (@sathya) (done added into openshift and konvoy pipeline)
- Cstor operators yaml with new CRDs (@sathya) (done added into openshift and konvoy pipeline)
## Design
- Migrate backup and restore to v1 version(#3072 in openebs/openebs repo) [In review]. [Not a beta blocker]
## E2e - Beta Blockers
- Provisioning
- provisioning volume with 1 Replica [Automated] [IT-Covered]
- Resource limits on Pool and Target Deployments [MV In progress] [IT-Will-Cover]
- Toleration for Pool and Target Deployments [MV In progress] [IT-Will-Cover]
- Target Node Selectors [MV In progress] [IT-Will-Cover]
- Target Pod Affinity with application pod label [MV] [IT-Will-Cover]
- Pool - raidz types [IT-Will-Cover]
- (stripe, mirror,raidz,raidz2 pool provisioning are automated. stripe,mirror cases only there in pipeline)
- Pool - multiple disks > 2 [pending] [UT-Will-Covered][IT-Will-Cover]
- Day 2 pool operations
- Pod disruption budget for the cStor Pool Deployments [MV] [IT-Will-Cover]
- Disk replacement for different CSPC configurations [Automated] [IT-Will-Cover]
- Pool expansion for different CSPC configurations [Automated] [IT-Will-Cover]
- cStor CSPC pool scaleup/scaledown [Automated] [IT-Will-Cover]
- Add / Delete Pools [Automated] [IT-Will-Cover]
- CSPC and CSPI Status verifications for cases like rebuilding, degraded mode [Pending] [Need to manualy tested ]
- Day 2 volume operations
- Verify the auto-remount feature [In progress] [IT-Will-Cover]
- Expand Volume Capacity with ext4 file system [Automated] [IT-Covered]
- Expand Volume Capacity with xfs file system [Automated] [IT-Will-Covered]
- Expand Raw Block volume [Automated] [IT-Covered]
- Scale-up/down replicas [Automated][IT-Will-Cover]
- Volume snapshot creation [Automated] [IT-Covered]
- Volume clone creation [Automated] [IT-Covered]
- Backup/Restore on CSI volumes ()
- Remote Backup/Restore [ Automated] [IT-Will-Cover]
- Local Backup/Restore [ Automated] [IT-Will-Cover]
- Scheduled Snapshots [ In progress] [IT-Will-Cover]
- Upgrade/Migration [MV] [Requires some thought on how IT can cover upgrade/migration test scenarios.]
- Upgrade CSPC pool /csi volumes [Automated - for community releases] [pipeline scripts is in progress]
- Migrate SPC to CSPC pool and non-csi to csi volume [ Automated - for community releases] [ pipeline scripts is in progress]
- Upgrade pipelines for enterprise versions ( 1.10-ee to the latest enterprise version)
- Upgrade pipelines for community to enterprise versions ( 1.x.x > latest enterprise version)
- Upgrade pipelines for SPC to CSPC migration ( min 1.11.0 ce/ee of SPC )
- Upgrade community to 1.11.0-ee
- Migrate SPC to CSPC
- Limitation: handling bad disks
- Limitation: Scale-down application
- Needs a consent from the user to scale down (Kubera)
- Repeat the above functionality tests on the upgraded pools and volumes.
- Repeat the above functionality tests on the migrated pools and volumes.
- Verify the following steps:
- Take a full backup
- Perform migration
- In case there is an issue, restore from full backup
- Verify old pools and applications are running
- Scale testing [IT-Will-Not-Cover]
- Multiple Volumes [pending]
- Resiliency testing [IT-Will-Not-Cover]
- Pool Capacity filling up and recovery [MV]
- Scale down/poweroff all K8s nodes and scale-up [MV]
- Application Node shutdown test case [Automated]
- Kubelet service stop [MV]
- container run time failure [MV]
- Delete a node and migrate pool to a new node in the cluster [pending]
- Uninstall/Cleanup Tests
- Deletion of Volumes and Pools [Automated] [IT-Will-Cover]
- Deletion of cstor operators [Automated] [IT-Will-Cover]
- Deletion of cstor pools in presence of volumes [Automated] [IT-Will-Cover]
- Reusablity of blockdevice [Automated] [IT-Will-Cover]
- Deletion of volumes in presence of clones [MV] [IT-Will-Cover]
## Pushed Items
### OpenEBS : Future Backlog
- Functionality: Do fsync before snapshot in CSI (@payes)
- Functionality: Support for disabling over provisioning on CSPC based pools. (This feature is present on SPC)
- Functionality: Disallow seeing of non-cstor disks from cstor deployments
- Usability: Remove a manual step of creating a CStorVolumePolicy CR for migrated StorageClass.(@shubam)
- Functionality: Rebuild estimate (time estimatation has to be done)
- Refactor API: Generate CRDs via kubebuilder ( @prateek )
- Refactor API: APIs and Group refactoring to v1 apis
- Refactor API: Upgrade and migration to v1 apis
## Director : Future Backlog
- Replace Disk in a pool
- Add new pools
- Expand capacity
## Release planning
### July 15th Release
- Kubera / Director : Support for upgrade between Enterprise Edition
- OpenEBS Dependencies:
- Support upgrade 1.11.0 to 1.11.0-ee (in-progress)
- Version was displayed as 1.11.0 even when upgraded to ee version (in-progress)
- Both these items are in the new upgrade/migrate code and will be back-ported to 1.11 release and available for OpenEBS 1.11.0-ee targeted at July 15th.
- Kubera / Director : Support for Storage Class creation ( cStor).
- OpenEBS Community E2e on SPC to CSPC migration.
- Manual Migration of SPC to CSPC will be supported.
### Aug 15th Release
- Kubera / Director : Support for Migration of SPC to CSPC
- Kubera / Director : Install pre-req like iSCSI and hugepages
#### Local PV
- Kubera/Director : New screens/review for Local PV Storage Classes ( or Pools via Block Device Tags)
- Kubera/Director : Implement the action to label the Block Devices
- Kubera/Director : Implement creation of Local PV Storage Classes