Release Summary
π π π OpenEBS 3.0 is a culmination of efforts geared towards laying the foundation for making it easier to onboard and accept community contributions, making each of the data engine operators ready for future Kubernetes releases, making it easy to manage, and troubleshoot various data engines. This has been achieved via migration to the latest Kubernetes constructs, ease of use improvements, bug fixes and most importantly refactoring the control plane and e2e test suites to independently enhance and release each of the engines.
Deprecation Notice: Jiva and cStor out-of-tree external
provisioners will be deprecated by Dec 2021 in favor of the corresponding CSI Drivers. The out of tree provisioners for Jiva and cStor will stop working from Kubernetes 1.22 and forward as the version of the custom resources used by those provisioners will be deprecated. We strongly recommend you plan for migrating your volumes to cStor CSI or Jiva CSI as early as possible.
If you have any questions or need help with the migration please reach out to us on our Kubernetes Community slack channel #openebs.
Upgrade and Backward Incompatibilities
Please review this list prior to deciding to upgrade:
- Kubernetes 1.18 or higher release is recommended as this release uses features of Kubernetes that will not be compatible with older Kubernetes releases. Some of the engines might require you to have a higher Kubernetes version as the CSI drivers have been upgraded to the latest versions. For example, Kubernetes 1.19.12 or higher is recommended for using Rawfile Local PV.
- OpenEBS has deprecated arch-specific container images in favor of multi-arch container images. For example, images like
cstor-pool-arm64:x.y.x
should be replaced with corresponding multi-arch imagecstor-pool:x.y.x
. - The non-csi provisioners for cstor and jiva are not included by default with 3.0 helm chart or operator.yaml. You can still continue to use them till Dec 2021. The older provisioners are released with the v2.12.2 version at the moment and only patch releases (to fix severe security vulnerabilities) will be supported going forward. If you need help making a decision on upgrading or migrating, please reach out to us on our Kubernetes Community slack channel #openebs.
Component versions
OpenEBS is a collection of data engines and operators to create different types of replicated and local persistent volumes for Kubernetes Stateful workloads. Kubernetes volumes can be provisioned via CSI Drivers or using Out-of-tree Provisioners. The status of the various components as of v3.0.0 are as follows:
- CSI Drivers
- Mayastor 0.8.1 (beta)
- cStor 3.0.0 (stable)
- Jiva 3.0.0 (beta)
- Local PV ZFS 1.9.2 (stable)
- Local PV LVM 0.8.2 (stable)
- Local PV Rawfile 0.5.0 (beta)
- Local PV Partitions 0.5.1 (alpha)
- Out-of-tree provisioners
- Local PV hostpath 3.0.0 (stable)
- Local PV device 3.0.0 (stable)
- Dynamic NFS Volume 0.7.1 (beta)
- Other components
Change Summary
A detailed Changelog is available under the component repositories listed above. The focus was to close on the refactoring and maintenance-related activities and a few bug fixes that were required for some of the components to be declared GA or beta. Here is a quick summary of what has changed since the last release.
- Added support for pushing the container images to GHCR, in addition to pushing the to DockerHub and Quay.io.
- Rename the branches to "develop" or "main" on all the active repositories which are accepting contributions.
- Update the CRD references to v1 across all components - even with deprecated provisioners - so users can continue to use the older provisioners beyond 1.22 as well.
- Update the Kubernetes CSI driver side-cars to the latest version compatible with Kubernetes 1.18 and higher.
- Enhance the iSCSI Targets functionality in Jiva and cStor volumes to only accept connections from one node at a time. The connection from a new node will be accepted only after the previous connection is torn down.
- Enhanced the Local PV hostpath with a feature to enforce capacity limits using XFS quota - for volumes provisioned on XFS filesystem.
- Enhanced the Jiva Specs (Jiva Volume Policy) to remove unused fields and make most of the fields with default configuration as optional. Also fixed the issues around specifying pod affinity and anti-affinity policies on jiva replica and target.
- Enhanced the NDM operator and helm chart to include NDM exporter.
- Enhanced NDM to detect filesystem and size changes, and update the block device resource. (under feature-gate in this release).
- Dashboard and CLI have made enhanced their support to display details about cStor, Jiva, ZFS, LVM and Device Local PV.
- Enhanced OpenEBS helm chart that can easily enable or disable a data engine of choice. The 3.0 helm chart stops installing the legacy cstor and jiva provisioners. If you would like to continue to use them, you have to set the flag βlegacy.enabled=trueβ.
- OpenEBS helm chart includes sample kyverno policies that can be used as an option for PodSecurityPolicies(PSP) replacement.
- New revamped website for https://openebs.io is live.
Show your Support
Thank you @turowicz(Surveily), @WillyRL(Teknologi Anak Rantau Indonesia), @Somsubhra1, @t3hmrman for sharing your OpenEBS Adoption story.
Are you using or evaluating OpenEBS? You can help OpenEBS in its journey towards becoming a CNCF Incubation project by sharing your OpenEBS story and join the league of OpenEBS Adopters.
Shoutouts!
MANY THANKS to our existing contributors and for everyone helping OpenEBS Community going. @AVRahul @Ab-hishek @Abhinandan-Purkait @IsAmrish @Pallavi-PH @ParthS007 @semekh @z0marlin @akhilerm @anupriya0703 @avishnu @blaisedias @chriswldenyer @cjones1024 @gila @iyashu @jonathan-teh @kmova @mittachaitu @mtzaurus @mynktl @niladrih @nsathyaseelan @paulyoong @pawanpraka1 @prateekpandey14 @rajaSahil @rakeshPRaghu @satyapriyamishra222 @shovanmaity @shubham14bajpai @tiagolobocastro @vharsh @w3aman
A very special thanks to our first-time contributors to code, tests, and docs: @burntcarrot, @aamirqs, @sbidoul, @dsavitskiy, @almas33, @liuminjian, @zeenix, @Nivedita-coder, @fengye87, @Abhishek-kumar09, @Amishakumari544, @eripa, @Quarky9, @tathougies, @omeiirr, @g-linville, @rweilg
Documentation
Install
OpenEBS can be installed via kubectl
or helm
. Follow the installation instructions here.
Upgrade
The upgrade instructions for various OpenEBS engines are here.
Do not upgrade if you are using legacy cstor or jiva provisioners. You have to first migrate those to the corresponding CSI Drivers. Please reach out to us for support
Known Issues
Check our open issues uncovered through e2e and community testing.
Support
If you are having issues in setting up or upgrade, you can contact:
- OpenEBS Community for Support on Kubernetes Slack
- Already signed up? Head to our user discussions at #openebs
- Would you like to contribute to the OpenEBS project? Head to our contributor discussions at #openebs-dev
- Raise an issue
- Subscribe and reach out on our OpenEBS CNCF Mailing lists
- For OpenEBS project updates, subscribe to OpenEBS Announcements
- For interacting with other OpenEBS users, subscribe to OpenEBS Users
- Join Community Meetings