-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Description
- One-line feature description (can be used as a release note): Add support for Out-of-Tree CSI Volume Plugins in Kubernetes
- Primary contact (assignee): @saad-ali
- Responsible SIGs: storage
- Design proposal link (community repo): CSI Volume Plugins in Kubernetes Design Doc community#1258
- Reviewer(s) - (for LGTM) recommend having 2+ reviewers (at least one from code-area OWNERS file) agreed to review. Reviewers from multiple companies preferred:
@childsb
@jsafrane - Approver (likely from SIG/area to which feature belongs):
@thockin - Feature target (which target equals to which milestone):
- Alpha release target (x.y): 1.9
- Beta release target (x.y): 1.10
- Stable release target (x.y): 1.13
Background
Kubernetes volume plugins are currently all "in-tree" meaning that their source code is included in the main Kubernetes repo. All volume plugins are compiled and ship along with kubernetes binaries.
The drawback to this approach is that it requires third-party storage vendors wanting to support Kubernetes to commit code to the Kubernetes repo, and thus be locked into Kubernetes release schedules. It requires them to make their source code public/open-source.
While the Flex volume plugin already provides a mechanism for Plugin developers to experiment with out-of-tree plugins, it provides no guarantees of backwards compatibility (since it is alpha), and is completely exec based (driver installation requires ability to deploy files to specific locations on node and master machines).
This feature aims to create a new (or adopt an existing) API for Volume Plugins in Kubernetes that:
- Will allow volume plugins to be developed out-of-tree.
- Not require building volume plugins (or their dependencies) into Kubernetes binaries.
- Not requiring direct machine access to deploy new volume plugins (drivers).
CC @kubernetes/sig-storage-feature-requests @kubernetes/sig-storage-proposals