The state directory is used to store:
- the disk image, if not specified via '-disk'
- the ISO for metadata, if '-data' is used
- the Unix domain socket for virtio sockets
- the PID of the hyperkit process
- a JSON file with the hyperkit configuration
This patch also enables the virtio socket device for the VM.
While at it, also fix .gitignore to ignore kernel images again.
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
This adds a test suite to be executed using `linuxkit/rtf`.
This is installed in the top-level Makefile
The tests are written in shell script and cover the following cases:
- Kernel Config is OK!
- Kernel Modules can be built and loaded
- QEMU can build and run kernel+initrd, iso-bios and iso-uefi
- That we can build for all other supported output formats
- That all of the examples in `./examples` can be built
- The LTP tests can be run (if `-l slow` is provided)
The virtsock and docker-bench tests were migrated but no test has been
written as yet as AFAICT they are still a WIP
Signed-off-by: Dave Tucker <dt@docker.com>
This is a fairly generic bootable disk with syslinux. Should
work if you `dd` it onto a USB stick, and should also work for AWS.
You need to uncompress it of course! Default size is 1G.
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
In the WIP code in `moby` we now have a standard base tarball format,
that includes the kernel and cmdline as files in `/boot` so that the
entire output of the yaml file can default to a single tarball. Then
this can be split back up by LinuxKit into initrd, kernel and cmdline
as needed. This will probably become the only output of the `moby build`
stage, with a `moby package` stage dealing with output formats.
We may remove the output format specification from the yaml file as well,
and just have it in the command.
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
this removes all test targets from the top level makefile with the
exception of `make test` that now calls `$(MAKE) -C test`.
all tests now use `moby run` by instead of the older `./scripts`.
this removes the need for dedicated qemu/hyperkit test targets.
Signed-off-by: Dave Tucker <dt@docker.com>
This makes it easier for CI to grab artifacts from the ephemeral build
VMs and provides a stable location so they can be used in subsequent
tests. For example, running the LTP tests.
Signed-off-by: Dave Tucker <dt@docker.com>
This fixes an issue introduced in the split of push and run.
Before this commit, an image could be pushed to a custom location from
the presence of the `CLOUDSDK_IMAGE_NAME` variable. The subsquent run
would fail as the name `test-ltp` or `test` had been hard coded in the
Make target. We now use a target-specific variable which is only set if
there is not an existing variable in the environment
Signed-off-by: Dave Tucker <dt@docker.com>
Previously we hardcoded `bzImage` which is not used for all
use cases or architectures.
fix#1630
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
Updated go-compile to be able to compile remotely. Note I
did not update the oter users of go-compile as it does not affect
them.
Update `go get` instructions to fetch new one, or `make && make install`
will still work.
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
This currently only changes the `gcp` target, but is the new
model - the `build` command will only do things locally, then
you need to `push` to an image store such as GCP or other ones
in order to `run` for platforms that cannot boot directly from
a local image.
Fix#1618
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
This deprectes scripts/qemu.sh as moby run qemu can now safely be run in
CI, where we currently used the qemu container
Signed-off-by: Dave Tucker <dt@docker.com>
Fixed#1544
I added `make install` support. By default it does:
```
cp -r ./bin/* /usr/local/bin
```
There is a env var `$PREFIX` in make. By default it's `/usr/local`
Signed-off-by: Gianluca Arbezzano <gianarb92@gmail.com>
This is needed for CI to be able to run `moby run $platform` with a
known good version of moby. For example, the one generated when building
the `master`.
This protects CI from any nefarious changes to the `moby` tool and
allows `moby run` to be used safely to test PRs.
Signed-off-by: Dave Tucker <dt@docker.com>
Its trivial to just do `bin/moby build moby` etc.
Just leaving test targets, which should really move
out of root later.
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
Pass version and git commit hash from the Makefile
into main.go. Add a 'version' subcommand to print
the information.
While at it also tweak the help output to only print the
command name and not the entire path.
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
docker-compose and other utilities use the .yml extension.
For consistency rename all .yaml to .yml
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
- 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>
- cut down the hyperkit script but leave as reference for now
- an error left over after shutdown that needs removing at some point
fix#1375
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
Removing the left over indirect creates that use the Docker socket
and run in containers not directly.
See #1347
Signed-off-by: Justin Cormack <justin.cormack@docker.com>