-
Notifications
You must be signed in to change notification settings - Fork 107
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support Docker Swarm #57
Comments
Unfortunately, there are no docker swarm mode examples. Currently, our main focus is to support Kubernetes. I'll update the README.md in the future for other CO's. Thanks! |
Maybe replace with: "with Kubernetes". |
Sure, but this doesn't main that it's not meant to be used with others. If any other CO supports the CSI plugin, somehow is still able to use it. What I mean is that our focus is currently supporting Kubernetes, it doesn't mean the CSI is only meant for Kubernetes. Hope this clarifies it better :) Thanks again for the feedback |
I just wish you supported Docker Swarm Mode (it is way better than old swarm, and much easier to learn than K8s). |
FYI. Docker 23.0.0 added CSI support for Swarm mode so unless this plugin uses Kubernetes specific implementation (works as controller, etc) it should be possible to make it working with Docker Swarm now. I have build some example scripts and guidance to https://github.com/olljanat/csi-plugins-for-docker-swarm which you might find useful. |
Hi @olljanat, thanks for the update. The DigitalOcean CSI driver should not come with any Kubernetes-specific implementations (unless we accidentally introduced some, which should be considered a bug). We do use some library functionality from the Kubernetes ecosystem but they should not affect compatibility (e.g., mount helpers). FWIW, we had a Nomad users trying out the DigitalOcean driver some time ago, which has led to an upstream Nomad ticket being filed to get some CSI spec non-compliance fixed on their end. I haven't heard back from them since then, which makes me assume our driver should generally be usable with container orchestrators other than Kubernetes. Our main usage is definitely Kubernetes as described earlier in this issue; if anyone spots a problem possibly related to the DigitalOcean driver not behaving in accordance with the spec, however, please do file a new issue on our repo. (End user support pertaining to the configuration or usage of the driver in other orchestrators is definitely out of scope though and should be directed towards the respective orchestrator's community and channels.) |
For anyone considering picking this up: Even though I don't have any digitalocean servers, I think porting the CSI driver to Swarm should be doable. For the Hetzner CSI this meant that we only had to bundle the controller and node binary into a single all in one binary and then create the tooling to build a docker plugin. You can find the PR over at hetznercloud/csi-driver#376 |
@timoreimann Docker Swarm plugins have to be packaged specifically for use with Swarm, so it would be great for digitalocean users who want to try this if they can use an official source. Would you accept PRs that add the necessary tooling to build sucha plugin if anyone is interested in working on the CSI support for Swarm? |
Hey @s4ke, thanks for the offer. Two quick questions:
|
@timoreimann to be clear. We don't use digitalocean right now so I can't do the work. I can assist with packaging questions as can @olljanat. |
AFAICS, the last user in this discussion who expressed direct interest in seeing Docker Swarm support was from more than 4 years ago. I'd prefer to see a real world need expressed before committing to any work. At that point though, I'm generally open to external contributions. |
I would be interested as well. Previously I wasn't aware that there could be any chance for CSI compatibility with Swarm so I developed my own minimalistic (non-CSI) plugin in the meantime. But it would very helpful to have a robust and centrally supported CSI alternative. Also, would be willing to test. |
Thanks @djmaze. The next step should be to outline the work that needs to be done. This will allow us to ensure it fits with the existing CSI driver structure. Afterwards, any volunteer(s) may drive the work. |
Like mentioned in olljanat/csi-plugins-for-docker-swarm#14 (comment) I would like to see Github action template which can be copied to any CSI projects with small modifications. Looks that e2e tests for Kubernetes already exists in csi-digitalocean/.github/workflows/test.yaml Lines 110 to 135 in d3e8957
@djmaze also I'm interested that if that your non-CSI plugin is available on somewhere? It might helpful too. |
To make sure we're on the same page: bundling and possibly refactoring the driver for compatibility with other container orchestrators is something I'd think should come with relatively low effort (in terms of initial and repeated maintenance work). However, we likely cannot maintain end-to-end tests for orchestrators other than Kubernetes in this repository given DigitalOcean's focus is on Kubernetes. My concern is around scenarios where complications with Docker could block progress / releasing for Kubernetes users when we may have no one available to really understand the specifics of other orchestrators. I can theoretically see a possibility where an external contributor (such as one of you involved in this discussion) could function as Docker maintainers. Practically speaking, the priority on the Kubernetes use case would still be given along with implications that aren't very appealing when the Docker Swarm part fails in some regard (e.g., leaving Docker tests broken, not releasing for Docker, etc.) Chances are you imagine the amount of involvement to some other extent or in a way that addresses my concerns. Let me know if that's the case. |
Yes and that should be the case as long both this CSI driver and Docker do things rights on their end with CSI spec compatibility.
IMO right way to handle those cases is skip releasing for Docker until it is fixed and just make sure that existing versions keeps working (=> APIs needed by those cannot change, etc). So I would like to see test set which is good enough to tell if version is good to be released for Docker but probably it does not need to be end to end test but more like integration test.
Something like that most likely would works. Those don't need to be even official maintainers but more like persons who can be pinged when there questions about these topics.
So far I have seen very little CSI driver specific needs when I tested to packaging those for Docker Swarm so it should not be too hard to maintain some generic toolkit, etc which can be used also in here too. And if we manage to do so then right place to maintain it would be some Git repo on moby organization. PS. Draft version of this CSI driver packaging scripts for Docker Swarm exists now in olljanat/csi-plugins-for-docker-swarm#15 |
|
Has anyone used this with docker swarm mode?
Will it work and if yes, could someone provide an example in a stack file?
Thank you very much.
The text was updated successfully, but these errors were encountered: