rancher / convoy

A Docker volume plugin, managing persistent container volumes.
Apache License 2.0
1.31k stars 135 forks source link

New Driver: ProfitBricks #203

Closed tjb1019 closed 6 years ago

tjb1019 commented 7 years ago

Here is the implementation for a new backend, ProfitBricks. I’ve modeled the driver after the EBS and DigitalOcean implementations.

README.md has been updated where necessary, and I’ve also created driver-specific documentation at docs/profitbricks.md. Unit tests can be found in the profitbricks_test.go.

Overall, functional testing went very well. I have found that the MountPoint field is never populated for any of the volumes I create, although the daemon does log something to the effect of:

DEBU[2233] Response:  {
    "Mountpoint": "/var/lib/rancher/convoy/profitbricks/mounts/apples"
}  pkg=daemon

I’ve also run into an issue with the Docker integration, which may stem from the mount point issue above. If I try an example like the one below, my data does not persist from the original volume to the one created by snapshot.

root@ubuntu:~# docker run -it -v volume1:/volume1 --volume-driver=convoy ubuntu
root@c7d73b8733e9:/# touch /volume1/foo
root@c7d73b8733e9:/# exit
exit
root@ubuntu:~# convoy snapshot create volume1 --name "volume1_snapshot"
volume1_snapshot
root@ubuntu:~# convoy create volume2 --backup "UUID of snapshot from above"
volume2
root@ubuntu:~# docker run -it -v volume2:/volume2 --volume-driver=convoy ubuntu
root@4b3a4ef0d35a:/# ls /volume2/foo
ls: cannot access '/volume2/foo': No such file or directory
root@4b3a4ef0d35a:/# exit
exit

Please let me know your thoughts, and advise of any changes that you would like to be made on my end. Thanks in advance.

@yasker