CSI driver for mounting a volume provided by the driver inside a pod.
Getting started
Decide the name for your CSI driver. It should be a standard/sanitized name that doesn't contain dangerous characters.
Create a gRPC server which listens on a specific port.
Start implementing the methods defined in CSI spec, initial implementation can just be an empty function definition.
You may verify whether you have added required implementations as expected using csc tool. More details on how to test using csc can be found in csc.md.
NodeGetInfo() and GetPluginInfo() functions need to be have valid implementations for the driver to get registered.
The parameter values can be passed in from config or hard-coded (not recommended).
GetPluginInfo() configures the driver name and version.
NodeGetInfo() returns the node ID in response.
Register the Node and Identity components using csi library like csi.RegisterIdentityServer(serverOptions, driverOptions).
Logic for mount and unmount volume operations goes in NodePublishVolume() and NodeUnpublishVolume() functions.