Commit Graph

168 Commits

Author SHA1 Message Date
Justin Cormack
ac90b50437 Add a "local" make target that does not use Docker
This assumes you are in the right directory, have Go set up etc.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-06-09 15:24:21 +01:00
Rolf Neugebauer
3e5797a911 build: Make sure the tools compile on Linux/macOS/Windows
This patch adds cross compilation steps for Linux, macOS and,
Windows to the CI targets to ensure that the all commands cross
compile nicely.

Although the CI runs on Linux we still explicitly compile for
Linux in case developers use the CI targets locally on a
non-Linux host.

While at it, also fix the GOARCH override to enable cross compilation
of ARM64 on Linux. The build support seems to work, but the
compilation fails (hence it is not added to the test).

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-06-08 13:57:42 +01:00
Justin Cormack
9b82914f7d Run make tag on pkg directory to check packages build
This at least checks for buildability of packages, even if we
are not yet pushing them.

See https://github.com/linuxkit/linuxkit/issues/1991 for what it mitigates.
Will not pass until this is fixed.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-06-07 16:37:36 -06:00
Justin Cormack
fc52966150 Merge pull request #1983 from justincormack/mobyup
Update Moby tool
2017-06-07 20:56:26 +01:00
Justin Cormack
c8a3fd0e7a Update Moby tool
- rename img→raw and gcp-img→gcp
- support creating `docker` outputs, see https://github.com/moby/tool/tree/master/examples
- less memory usage via streaming outputs
- allow specification of multiple yaml files in a single command line, improves modularity
- notary fixes and local cache, so does not pull as much
- you now have to specify the full filename of the yaml file, you cannot omit the suffix

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-06-07 20:11:37 +01:00
Rolf Neugebauer
20d6fcf7eb build: Make GOOS and GOARCH over-writeable
The GOOS and GOARCH are currently set based on the host 'make'
is executed on. On macOS this sets up cross compilation with
a Linux container.

Making them over-writeable allows users to test different
cross compilations, e.g., trying to build Linux binaries on macOS.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-06-07 18:13:57 +01:00
Justin Cormack
e782a469d5 Update moby tool and qemu fixes
- no longer uses several of the `mkimage-*` tools in favour of dogfooding
with `linuxkit` and using the `mkimage` package.
- fix the qemu docker container fallbacks to work better when multiple
paths are used for disks and the image.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-06-05 16:34:26 +01:00
Justin Cormack
6238f41592 Update Moby tool
- various bug fixes and improvements

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-06-02 10:30:49 +01:00
Rolf Neugebauer
677edf8e15 Update uses of go-compile to latest
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-30 17:15:13 +01:00
Justin Cormack
d614ea37d1 Update Moby
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-30 15:41:30 +01:00
Riyaz Faizullabhoy
5fd53a697e Bump moby tool to include tempdir tuf dir and tag fixes
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2017-05-27 10:52:31 -07:00
Tycho Andersen
332d3ef71b rebuild bin/{moby,rtf} as necessary
Closes #1880

Signed-off-by: Tycho Andersen <tycho@docker.com>
2017-05-26 09:57:27 -06:00
Justin Cormack
00737bd859 Remove outputs from the yaml files
The latest version of the `moby` tool now requires that the output formats
be specified in the CLI not in the yaml file.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-26 13:55:06 +01:00
Justin Cormack
f5cd9a41ed Update moby tool
This now supports setting `source:` in the `files` section to read the contents of
a file rather than specifying it inline.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-22 11:31:05 +01:00
Justin Cormack
fc69bcf288 Partially fix Windows build with go-compile
Fix go-compile to not use buildmode pie for Windows.

See #1863

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-20 10:57:48 +01:00
Justin Cormack
07a8ceb9c9 Update moby tool to support config in labels
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-19 22:05:15 +01:00
Rolf Neugebauer
5231e06dec cmd: Add a -state option to hyperkit runner (and enable vsock)
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>
2017-05-15 12:09:48 +01:00
Dave Tucker
ce2bdea399 Add a test suite
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>
2017-05-12 20:12:59 +01:00
Justin Cormack
fe4b6aaf5d Add image builder for compressed disk image
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>
2017-05-12 14:43:55 +01:00
Justin Cormack
4746e67b9e Update Moby tool
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-12 13:08:59 +01:00
Justin Cormack
6dced3a196 Update moby tool to fix symlinks handling
Symlinks were being handled incorrectly in initrd output.

Fix #1792

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-09 13:54:38 +01:00
Justin Cormack
4261ce0a81 Update moby tool
Adds support for tar output, various fixes.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-08 20:18:59 +01:00
Justin Cormack
fb3dab399d Code in the initrd generator to split a single tarball
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>
2017-05-08 16:15:50 +01:00
Dave Tucker
e4d84cf304 tests: add makefile for tests
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>
2017-05-05 11:01:09 +01:00
Justin Cormack
6deddf749c Merge pull request #1770 from justincormack/cleanup
Fix make clean to remove new -kernel files
2017-05-04 16:34:44 +01:00
Justin Cormack
0c53e88be5 Fix make clean to remove new -kernel files
Missed this in the changeover

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-04 16:03:20 +01:00
Dave Tucker
8610716be1 Makefile: gather all build artifacts in one location
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>
2017-05-04 12:08:31 +01:00
Dave Tucker
cda03f7e0d Makefile: Use the name provided to upload in run
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>
2017-05-02 12:38:27 +01:00
Justin Cormack
6155e8c8bc Change to use kernel not bzImage everywhere
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>
2017-04-28 16:24:15 +01:00
Justin Cormack
10ad066031 Pin moby tool commit
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-04-28 15:13:14 +01:00
Justin Cormack
791e11f07a Pull images on CI
Always do `moby build --pull` on CI.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-04-28 14:41:23 +01:00
Justin Cormack
98dfe7ad55 Merge pull request #1721 from riyazdf/more-signing-targets
Signing targets for binfmt, rngd, compilers, toybox, tini
2017-04-27 18:53:49 +01:00
Riyaz Faizullabhoy
2c4c55859f Add separate sign-tag target, keep tool building offline
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2017-04-27 10:34:40 -07:00
Lorenzo Fontana
910205036a Specified platform for hyperkit and qemu
Signed-off-by: Lorenzo Fontana <lo@linux.com>
2017-04-27 00:18:02 +02:00
Riyaz Faizullabhoy
38ad84bfbd pull base images with content trust for binfmt, rngd, tini, toybox-media
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2017-04-26 14:28:30 -07:00
Riyaz Faizullabhoy
78a0d018c1 enable DCT in buildchain for compiler images
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2017-04-26 12:09:33 -07:00
Justin Cormack
252e32aac5 Remove the moby tool from this repo
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>
2017-04-25 14:53:32 +01:00
Rolf Neugebauer
f0ee1ee707 src: Remove the infrakit plugin
It has been merged/moved to https://github.com/docker/infrakit

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-04-25 13:17:04 +01:00
Justin Cormack
6f80f664ce Split cli into moby and linuxkit
moby just does the simple `build` cases, while `linuxkit` does
`push` and `run`.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-04-24 20:03:22 +01:00
Justin Cormack
2709ee88bc Split build and push, and remove push code from run
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>
2017-04-24 17:12:05 +01:00
Dave Tucker
745dcb66b9 makefile: Remove script -q so errors appear in CI
Signed-off-by: Dave Tucker <dt@docker.com>
2017-04-24 15:17:01 +01:00
Dave Tucker
11fcf087ca makefile: Use moby run qemu
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>
2017-04-24 15:17:01 +01:00
Dave Tucker
11742d0148 makefile: Add target for LTP tests
This adds a target that runs the LTP tests
This target will be run on master and tag builds in CI

Signed-off-by: Dave Tucker <dt@docker.com>
2017-04-19 16:02:48 +01:00
solidnerd
00b7e145e6 Rename package github.com/docker/moby
This commit will rename the package to the correct new place.

Signed-off-by: solidnerd <niclas@mietz.io>
2017-04-18 20:18:26 +02:00
Rolf Neugebauer
3448a804f1 tests: Move kernel check test over to use linuxkit org
Also some other moby renames.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-04-14 15:08:51 -05:00
Gianluca Arbezzano
e36b76885e Added install support on make
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>
2017-04-14 09:34:51 +02:00
Riyaz Faizullabhoy
31a8480878 Add ineffassign to go-compile, use tmp files to ensure proper failure
handling

Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2017-04-12 14:42:19 -07:00
Rolf Neugebauer
a06e6bbb37 build: Switch using go-compile from linuxkit hub org
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-04-12 21:28:17 +01:00
Dave Tucker
00edddac9a Add vndr to go-compile and add vendoring docs
This makes it easier to safely udpate the vendor directory

Signed-off-by: Dave Tucker <dt@docker.com>
2017-04-11 13:35:51 +01:00
Robb Kistler
99e1643c82 Change hyperkit-test to test-hyperkit
Other test targets are all `test-*`, should be consistent

Signed-off-by: Robb Kistler <robb.kistler@docker.com>
2017-04-07 19:04:36 -07:00