All developers of CSI drivers should join https://groups.google.com/forum/#!forum/container-storage-interface-drivers-announce to remain informed about changes to CSI or Kubernetes that may affect existing CSI drivers.
OverviewThe first step to creating a CSI driver is writing an application implementing the gRPC services described in the CSI specification
At a minimum, CSI drivers must implement the following CSI services:
Identity
service
Node
service
NodePublishVolume
, NodeUnpublishVolume
, and NodeGetCapabilities
are required.All CSI services may be implemented in the same CSI driver application. The CSI driver application should be containerized to make it easy to deploy on Kubernetes. Once containerized, the CSI driver can be paired with CSI Sidecar Containers and deployed in node and/or controller mode as appropriate.
CapabilitiesIf your driver supports additional features, CSI "capabilities" can be used to advertise the optional methods/services it supports, for example:
CONTROLLER_SERVICE
(PluginCapability
)
Controller
service is optional. This capability indicates the driver implement one or more of the methods in the CSI Controller
service.VOLUME_ACCESSIBILITY_CONSTRAINTS
(PluginCapability
)
VolumeExpansion
(PluginCapability
)
CREATE_DELETE_VOLUME
(ControllerServiceCapability
)
PUBLISH_UNPUBLISH_VOLUME
(ControllerServiceCapability
)
ControllerPublishVolume
and ControllerUnpublishVolume
-- operations that correspond to the Kubernetes volume attach/detach operations. This may, for example, result in a "volume attach" operation against the Google Cloud control plane to attach the specified volume to the specified node for the Google Cloud PD CSI Driver.CREATE_DELETE_SNAPSHOT
(ControllerServiceCapability
)
CLONE_VOLUME
(ControllerServiceCapability
)
STAGE_UNSTAGE_VOLUME
(NodeServiceCapability
)
NodeStageVolume
and NodeUnstageVolume
-- operations that correspond to the Kubernetes volume device mount/unmount operations. This may, for example, be used to create a global (per node) volume mount of a block storage device.This is an partial list, please see the CSI spec for a complete list of capabilities. Also see the Features section to understand how a feature integrates with Kubernetes.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4