Skip to content

Out-of-tree CSI Volume Plugins #178

@saad-ali

Description

@saad-ali
  • 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

Metadata

Metadata

Assignees

Labels

kind/featureCategorizes issue or PR as related to a new feature.sig/storageCategorizes an issue or PR as relevant to SIG Storage.stage/stableDenotes an issue tracking an enhancement targeted for Stable/GA statustracked/noDenotes an enhancement issue is NOT actively being tracked by the Release Team

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions