Veertu driver implementation

Hi! I’m the developer behind this branch:

docker-machine-driver-veertu

I’ve already tested the veertu hypervisor with the generic driver and works ok. Also I’m in contact with veertu developers and part of the preview access program.

As of today no API/CLI client is available, but I’m thinking in making a first implementation that just creates the machine boilerplate, ssh certs (userdata.tar), and provision it by ssh in start until the new version of veertu hits the app-store.

Is there any kind of documentation on how to create these plugins? best practices?
If not I’ll be using drivers/vmwarefusion/fusion_darwin as reference.

@qcho

I’d take a look at an existing external driver implementation such as Daniel’s KVM driver ( https://github.com/dhiltgen/docker-machine-kvm ).

Basically, you want to create a file (or several files) where the implementation of the Driver interface is specified (in Daniel’s driver: https://github.com/dhiltgen/docker-machine-kvm/blob/master/kvm.go). Then, in a separate (package main) directory, create a file such as https://github.com/dhiltgen/docker-machine-kvm/blob/master/bin/main.go which will yield the actual plugin binary when you go build. This file should be fairly small and is mostly meant to call plugin.RegisterDriver with an instance of your Driver.

You then drop the plugin binary in your PATH (I use /usr/local/bin) as docker-machine-driver-foo (docker-machine-driver-veertu in your case), and when you run docker-machine create -d veertu ... the main Machine binary will invoke and communicate with the plugin automatically.

Does that make sense?

It does :slight_smile: I’ll be implementing the interface as far as I can until Veertu releases it’s API in the AppStore.

Thanks in advance! keep you posted

Guys, just to let you know that since no API was exposed by Veertu for now and due to the existence of “Docker for Mac”, probably this project won’t make though.

If anyone needs this for any reason, maybe I could get back to this. But halted for now.