This repository holds definitions of additional grpc
protocols which can be implemented by CSI drivers to build upon existing
functionality supported via the Container Storage Interface (CSI).
These are defined as .proto files, and compiled using the protoc program to generate a go file.
Current set of supported protocols:
- podmon - Extensions to CSI to enable CSI drivers to report host connectivity status
- replication - Extensions to CSI to enable CSI drivers to leverage storage array based replication within Kubernetes clusters
- volumeGroupSnapshot - Extensions to CSI to enable CSI drivers to manage crash-consistent snapshots of groups of volumes
You can utilize the provided Makefile
to compile protocol definitions in .proto files to go source files and then build
the source files.
podmon
to compile and update files for podmonreplication
to compile and update files for replication.volumeGroupSnapshot
to compile and update files for volumeGroupSnapshot
Each protocol is available as a go module
and can be included separately in CSI drivers.
If you are using gocsi
for developing CSI driver, these extensions APIs can be used in CSI drivers by registering additional grpc servers while creating the Storage Plugin
object.
This facility is available in the forked version of gocsi here.
For using podmon
, include "github.com/dell/dell-csi-extensions/podmon" in your go module dependencies.
For using replication
, include "github.com/dell/dell-csi-extensions/replication" in your go module dependencies.
For using volumeGroupSnapshot
, include "github.com/dell/dell-csi-extensions/volumeGroupSnapshot" in your go module dependencies.
- Code of Conduct
- Maintainer Guide
- Committer Guide
- Contributing Guide
- List of Adopters
- Support
- Security
- About
Don’t hesitate to ask! Contact the team and community on our support page. Open an issue if you found a bug on Github Issues.
This project is adhering to Semantic Versioning.
Dell CSI Extensions is 100% open source and community-driven. All components are available under Apache 2 License on GitHub.