CSI plugins for Docker Swarm

October 28, 2024 ยท View on GitHub

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.

IssueReported onPR 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 properlymoby/swarmkit#3116
Cluster volume reference on stack file does not trigger volume creation
Docker Swarm does not support resizing CSI volumesmoby/moby#44985
Docker Swarm does not work properly with CSI drivers that do not support stagingmoby/swarmkit/3116
Docker Swarm does not support VOLUME_MOUNT_GROUPmoby/moby#44988
One bad CSI volume can stop the all volumes from being scheduledmoby/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:

PluginFeature requestStatus
Amazon EBS CSIkubernetes-sigs/aws-ebs-csi-driver#1513
Ceph CSIceph-csi/issues#3769
DigitalOcean CSIdigitalocean/csi-digitalocean#57
Hetzner Cloud CSIhetznercloud/csi-driver#374implemented
Kadalukadalu/kadalu#963
NetApp Trident CSINetApp/trident#804
NFS CSIkubernetes-csi/csi-driver-nfs#/40
Nutanix CSInutanix/helm#/92
SeaweedFS CSIseaweedfs/seaweedfs-csi-driver#98implemented
SMB CSIkubernetes-csi/csi-driver-smb#576
Synology CSISynologyOpenSource/synology-csi#28
VMware vSphere CSIkubernetes-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.

PluginProblem descriptionRelated issue
LonghornWorks as Kubernetes controllerlonghorn/longhorn#23