- The tools directory ideally should not contain source code - Removes double vendoring of packagages - Makes it easer to hook the build into the top-level Makefile Eventually, the plugin should be moved to the infrakit repo. Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2.0 KiB
Hyperkit/Moby Infrakit plugin
There is a HyperKit Moby instance plugin for infrakit in
src/cmd/infrakit-instance-hyperkit
. The instance plugin is capable
to start/manage several hyperkit instances with with different
configurations and Moby configurations.
The plugin keeps state in a local directory (default
.infrakit/hyperkit-vms
) where each instance keeps some state in a
sub-directory. The VM state directory can be specified at the kernel
command line using the --vm-dir
option.
Building
make bin/infrakit-instance-hyperkit
Quickstart
This is roughly based on the infrakit tutorial. You need to have the infrakit binaries in your path (or adjust the invocation of the commands below). To get the binaries, it's best to compile from source (checkout https://github.com/docker/infrakit.git
, then make
or make build-in-container
). The add the ./build
directory to your path.
Start the default group plugin:
infrakit-group-default
and the vanilla flavour plugin:
infrakit-flavor-vanilla
Then start the hyperkit plugin:
./bin/infrakit-instance-hyperkit
Next, you can commit a new configuration. There is a sample infrakit config file in hyperkit.json
. It assumes that you have a default moby build in the top-level directory. The Moby
property needs to be of the form <dir>/<prefix>
and assumes that the kernel and initrd images are called <prefix>-bzImage
and <prefix>-initrd.img
respectively (this is the convention used by the moby
tool).
infrakit group commit hyperkit.json
This will create a single hyperkit instance with its state stored in
~/.infrakit/hyperkit-vms
. There is a tty
file which you can
connect to with screen
to access the VM.
If you kill the hyperkit process a new instance will be restarted. If
you change the VM parameter in JSON file and commit the new config, a
new VM will be created. f you change the Size
parameter, multiple
VMs will get started.