v4.0.0
Release Summary
OpenEBS v4.0.0 is a major milestone change in entire project.
Important
This release increases and simplifies the overall user experience, adopter experience, repo/developer experience and CNCF community experience. With the guidance of the Cloud Native Computing Foundation TOC (Technical Oversight Committee), CNCF Exec Leadership, CNCF Storage TAG (TOC Technical Advisory Group).... v4.0.0 has implemented major & significant changes to the OpenEBS project structure and architecture. - These changes are critical and necessary for the long-term health, maintenance and community experience of the project.
Detailed info on this topic is tracked by OpenEBS and CNCF. Please view it here...
In a nutshell, the major project changes can be broadly classified into the following categories:
Level | Type of restructuring effort undertaken |
---|---|
1 | Deprecation of older and legacy engines |
2 | Restructuring of the technical documentation |
3 | Restructuring of the project repos, code, dependencies and assets |
4 | A unifying experience during installation |
These are in addition to the vast majority of super cool features π and enhancements π to the Local-PV and Replicated-PV storage Engines, that OpenEBS is well-known for.
With this release, OpenEBS project Maintainers intends to re-enter the CNCF Storage landscape as a CNCF Sandbox project and re-establish itself as a contributing member of the CNCF Storage Landscape... in respect of our responsibility to the 1.2 Million active users (in our community) that have installed OpenEBS 9 million times over the past few years. They have spoken and they want OpenEBS to remain part of the CNCF project Landscape.
- OpenEBS is the leading Cloud-native storage solution for stateful persistent Kubernetes workloads.
Deprecation of Legacy Solutions
Prior to the v4.0.0 release, OpenEBS contained the following solutions or engines (note: These are the pre-v4.0.0 Legacy names):
Local Storage Engines
Num | Storage engine name | Mode | Type of provisioner |
---|---|---|---|
1. | LocalPV Hostpath | Out-of-tree | non-CSI provisioner |
2. | LocalPV Device | Out-of-tree | non-CSI provisioner |
3. | LVM LocalPV | Native plugin | CSI provisioner |
4. | ZFS LocalPV | Native plugin | CSI provisioner |
5. | Device LocalPV | Native plugin | CSI provisioner |
6. | Rawfile LocalPV | Native plugin | CSI provisioner |
Replicated Engines
Num | Storage engine name | Mode | Type of provisioner |
---|---|---|---|
1. | Jiva | Native plugin | CSI provisioner |
2. | CStor | Native plugin | CSI provisioner |
3. | Mayastor | Native plugin | CSI provisioner |
RWM (Read Write Many)
Num | Storage engine name | Mode | Type of provisioner |
---|---|---|---|
1. | NFS provisioner |
Auxiliary storage services
Num | Storage engine name | Mode | Type of provisioner |
---|---|---|---|
1. | Node Device Manager (NDM) | ||
2. | Monitoring | ||
3. | Velero Plugin for Data Protection | ||
4. | Data Populator |
Decision to Unify the project
In v4.0.0, the maintainers have decided to trim down the above list, for improved focus and sustained future maintenance.
This was a tough but strategic decision. Several factors like aged of old project code, adoption levels, relevance to K8s trends, available expertise, community involvement, compliance with CNCF project guidelines; and a bit of common sense (π) have been taken into account in deciding which OpenEBS projects and technologies to retain, which to deprecate, which to migrate out of the parent project and which components to move forward with.
- In all decisions, the community is the primary deciding factor
Note
The NEW and re-organized structure of OpenEBS parent (Umbrella) project now comprises a set of very specific repos, projects, tech stacks, assets and Storage engines. Note: Some of the v4.0.0 Storage engines have been slightly renamed to provide a better community experience and more unified consistency across all Storage services.
No. | Local PV Storage engine | Mode | Type of provisioner |
---|---|---|---|
1. | Local PV Hostpath | Out-of-tree | non-CSI provisioner |
2. | Local PV LVM | Native plugin | CSI provisioner |
3. | Local PV ZFS | Native plugin | CSI provisioner |
4. | Local PV RawFile* | Native plugin | CSI provisioner |
*
Currently under review
No. | Replicated PV Storage engine | Mode | Type of provisioner |
---|---|---|---|
1. | Replicated PV Mayastor | Native plugin | CSI provisioner |
Auxiliary storage services
Num | Storage engine name | Mode | Type of provisioner |
---|---|---|---|
1. | Monitoring | ||
2. | Velero Plugin for Data Protection | ||
3. | Data Populator |
With the unification of the above Storage engines and auxiliary services, OpenEBS can now serve a large base of 900,000 users. For the users of the legacy engines (the v4.0.0 release formally deprecates the old storage engines, services, tools and tech stack). They will soon be physically migrated out of the OpenEBS CNCF GitHub org as indicated by OpenEBS Issue #3701 and OpenEBS Issue #3709.
- We would like to offer our
β₯οΈ whole-heartedβ₯οΈ gratitude π for being the early adopters and supporters of OpenEBS and contributing to the maturity that OpenEBS has reached today. Migration procedures are documented here to migrate data from legacy OpenEBS engines to OpenEBS 4.0.0 storage.
βΉοΈ INFO
The code, tools, assets and dependent repositories associated with the deprecated Legacy projects and Storage engines will soon be transferred our of the CNCF GitHub openebs organization to a new CNCF owned GitHub openebs-archive Archive organization as per discussions and guidance provided by CNCF.
π Restructuring Tech Docs
Before the v4.0.0 release, the OpenEBS technical documentation was distributed across two main websites:
π https://openebs.io/docs - Hosts tech docs for all engines except Mayastor
π https://mayastor.gitbook.io/ - Hosts tech docs for Mayastor
Release 4.0.0 integrates OpenEBS Local and Replicated Storage into a new modern and updated documentation set. It is published here: https://openebs.io/docs website. The release also updates and clarifies documentation related to the legacy engines that are now deprecated and will be migrated out of the project.
Since the project documentation is versioned, users of deprecated legacy engines can still view all legacy documentation content as follows:
π Documentation for non-Mayastor engines (v3.10.x or earlier) will be available at https://openebs.io/docs/3.10.x/.
π Documentation for Mayastor (v2.5 or earlier) will be available at https://mayastor.gitbook.io/introduction/v/version-2.5.
β© One Installer
OpenEBS v4.0.0 Helm chart is the OFFICAL way to install both OpenEBS Local-PV and Replicated-PV Storage engines.
The OpenEBS 4.0.0 Helm chart bundles sub-charts and are now officially named as the following components:
Num | Helm Installer - Storage engine name |
---|---|
1. | Local PV Hostpath |
2. | Local PV LVM |
3. | Local PV ZFS |
4. | Replicated PV Mayastor |
5. | Kubernetes Snapshot CRDs |
Important
ALL of the above storage components are now INSTALLED as part of the default Helm installation process. The Helm chart provides an option to exclude Replicated PV Mayastor, if the user is interested in only installing Local PV storage (non-replicated storage).
Note
The method of using the operator.yaml
file to control the installation of individual OpenEBS engines/components is now DEPRECATED and NOT supported.
Using operator.yaml
is not recommended for independently installing Helm sub-charts. Please do NOT install the products using this method.
Component Versions
OpenEBS is now a Unified project that contains Storage engines and operators to deliver different types of K8s Storage services (Local and Replicated Persistent Volumes (PVs) for Kubernetes stateful workloads). - Kubernetes PVs can be provisioned via Container Storage Interface (CSI) Drivers or using Out-of-tree Provisioners. The status of the various components as of v4.0.0 are as follows:
Type | CSI Driver name | Version | Status |
---|---|---|---|
CSI Drivers | |||
1. | Replicated PV Mayastor | v2.6.0 | (stable) |
2. | Local PV ZFS | v2.5.0 | (stable) |
3. | Local PV LVM | v1.5.0 | (stable) |
Out-of-Tree provisioners | |||
4. | Local PV Hostpath | v4.0.0 | (stable) |
Change Summary
A detailed changelog is available under the component repositories listed above. Here is a quick summary of what has changed since the last release.
Local Storage
- Deprecated device-localpv from Dynamic LocalPV Provisioner.
- CVE fixes in Local PV Hostpath.
- CSI controller changed to K8s kind βDeployment' from 'STSβ for Local PV LVM and Local PV ZFS.
- Ability to have custom value for label openebs.io/nodeid in Local PV ZFS.
Replicated Storage
- Online and offline volume expansion support in Replicated PV Mayastor.
- Ability to take file-system consistent snapshots in Replicated PV Mayastor.
- Enhanced product event generation capabilities.
- Pool, Volume, and Replica performance metrics as part of metrics exporter.
Important
There will be no updates to the auxiliary component projects (e.g. the Velero-plugin, Monitoring, and Data Populator) in this release.
There will be a focused effort to first remove support
for the deprecated Legacy services in these projects before engaging in any updates to the auxiliary projects.
Upgrade and Backward Incompatibilities
Before deciding to upgrade, review the list below:
- Kubernetes 1.23 or higher is recommended to install this release.
- Upgrade to OpenEBS 4.0.0 is only supported for the selected engines namely Local PV Hostpath, Local PV LVM, Local PV ZFS, and Replicated PV Mayastor from the earlier editions of OpenEBS (3.10.x or below).
- Refer to the documentation for more details.
- Documented migration procedures have been provided for the deprecated engines.