CSI plugins for Docker Swarm

This is my playground repository with CSI plugins which I trying to make working with Docker Swarm. Contributions to improve documentation and add more examples are very welcome.

It is recommended to read official documentation first before playing with these.

Target is trying to detect that which CSI plugins can be easily make working (= they don't use Kubernetes specific things or those at least can be disabled) and eventually contribute to original projects.

Known issues

On Docker 23.0.0 there looks to be at least following issues when working on with CSI plugins.

Issue Reported on PR to fix it
docker plugin create does not support flag --alias
docker volume create flag --secret does not work with syntax <key>:<secret name>, only with <key>:<secret id>
CSI plugins without stagging support does not work properly moby/swarmkit#3116
Cluster volume reference on stack file does not trigger volume creation
Docker Swarm does not support resizing CSI volumes moby/moby#44985
Docker Swarm does not work properly with CSI drivers that do not support staging moby/swarmkit/3116
Docker Swarm does not support VOLUME_MOUNT_GROUP moby/moby#44988
One bad CSI volume can stop the all volumes from being scheduled moby/swarmkit#3120

Feature requests/support for Docker Swarm support on existing CSI plugin projects

These are known feature requests to add Docker Swarm support to existing CSI plugins:

Plugin Feature request Status
Amazon EBS CSI kubernetes-sigs/aws-ebs-csi-driver#1513
DigitalOcean CSI digitalocean/csi-digitalocean#57
Hetzner Cloud CSI hetznercloud/csi-driver#374 beta
Kadalu kadalu/kadalu#963
NetApp Trident CSI NetApp/trident#804
NFS CSI kubernetes-csi/csi-driver-nfs#/40
Nutanix CSI nutanix/helm#/92
SeaweedFS CSI seaweedfs/seaweedfs-csi-driver#98
SMB CSI kubernetes-csi/csi-driver-smb#576
Synology CSI SynologyOpenSource/synology-csi#28
VMware vSphere CSI kubernetes-sigs/vsphere-csi-driver#2191

Non-compatible CSI plugins

These CSI plugins are known to use Kubernetes specific implementation which why it is not possible to make them working with Docker Swarm without big changes to their implementation.

Plugin Problem description Related issue
Longhorn Works as Kubernetes controller longhorn/longhorn#23