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.
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 |
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 | |
Ceph CSI | ceph-csi/issues#3769 | |
DigitalOcean CSI | digitalocean/csi-digitalocean#57 | |
Hetzner Cloud CSI | hetznercloud/csi-driver#374 | implemented |
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 | implemented |
SMB CSI | kubernetes-csi/csi-driver-smb#576 | |
Synology CSI | SynologyOpenSource/synology-csi#28 | |
VMware vSphere CSI | kubernetes-sigs/vsphere-csi-driver#2191 |
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 |