[go: up one dir, main page]

Skip to content

v4.0.0

Compare
Choose a tag to compare
@niladrih niladrih released this 16 Apr 15:01
· 42 commits to main since this release

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.