This document outlines the roadmap for supporting CSI with libStorage and REX-Ray:
Release | Description |
---|---|
R1 | Initial CSI compatibility |
R2 | CNCF-ready |
R3 | Reference CSI implementation |
The first release will support both CSI architectures: centralized and decentralized, as well as the hybrid model necessary to satisfy Mesos. Many thanks to @codenrhoden for providing the illustrations!
Arch | Diagram |
---|---|
Centralized | |
Decentralized | |
Hybrid |
Currently the only analogue to the CSI centralized model is K8s where there is a CO master. Docker and Mesos both function in a decentralized model with the libStorage API controller providing optional centralization.
Work | Summary | Story Points |
---|---|---|
#1 |
New REX-Ray module for CSI Ident+Node+Controller Services | 21 |
21 |
The second release will represent a project ready to donate to the CNCF as the default implementation of CSI. The primary feature of this release will be support for out-of-tree drivers via Go plug-ins, making it trivial to deliver CSI compatibility for a given storage platform via REX-Ray.
Work | Summary | Story Points |
---|---|---|
#1 |
Convert existing drivers into plug-ins | 40 |
#2 |
Deprecate libStorage executor | 21 |
#3 |
Update build process to account for plug-ins | 21 |
82 |
Rounding out the roadmap is R3, the release that transforms REX-Ray from a program that embeds the libStorage API to the reference implementation of CSI. This release introduces support for distributed configuration via one or more well-known providers such as Etcd or abstraction libraries like Docker's libkv.
The introduction of distributed configuration support will sunset the libStorage API and complete the transformation of REX-Ray into a reference implementation of the CSI specification.
Work | Summary | Story Points |
---|---|---|
#1 |
Distributed configuration support | 40 |
#2 |
Relocate CSI endpoint from REX-Ray to libStorage | 20 |
60 |