# 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