Commit Graph

3520 Commits

Author SHA1 Message Date
Justin Cormack
25a1e12cf3 Support multiple disks in qemu
This changes the CLI specification for disks, as it needs to be able to
be repeated.

```
linuxkit run qemu -disk name,size=1G,format=qcow2 ...
```

Options may be omitted.

Currently other local backends may not support multiple disks, but this
can be added in future. Code for cloud backends has not changed as the
disk support is specific to the platform.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-06-01 13:40:20 +01:00
Riyaz Faizullabhoy
b822bff6ad Merge pull request #1938 from riyazdf/cleanup-js-tags
docs: move signing doc to top level and remove applejs tags
2017-05-30 12:11:10 -07:00
Riyaz Faizullabhoy
7ede6b5abe Merge pull request #1936 from justincormack/ns-nginx
Remove unnecessary namespace I missed
2017-05-30 12:00:51 -07:00
Riyaz Faizullabhoy
c983441dae Merge pull request #1935 from thebsdbox/pushUsageFix
Fix correct usage function
2017-05-30 12:00:33 -07:00
Riyaz Faizullabhoy
cb453afa26 trust: move doc to top level and remove applejs tags
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2017-05-30 11:03:57 -07:00
Rolf Neugebauer
9e39a8f642 Merge pull request #1937 from rneugeba/mstage
Convert remaining packages to multi-stage, git tree hash, and Alpine base
2017-05-30 17:52:18 +01:00
Rolf Neugebauer
cbecd19c51 cli: Update qemu runner to use the new qemu image
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-30 17:15:13 +01:00
Rolf Neugebauer
fa9151cc00 tools: Build qemu package from the Alpine base
Also use the git tree hash as the hash.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-30 17:15:13 +01:00
Rolf Neugebauer
63d5031035 tools: Add OVMF BIOS firmware to the Alpine base
This ovmf package is part of the community repository. We don't
want to "pollute" the Alpine base with it. Luckily it's juts a single
file which we can install and then copy to the base image.

The package is needed for qemu EFI boot.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-30 17:15:13 +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
Rolf Neugebauer
0d718fed40 tools: Use the Alpine base to build the go-compile image
Also, convert to use a git tree hash.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-30 17:15:13 +01:00
Rolf Neugebauer
7173529253 tests: Update YAML files with new poweroff package
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-30 17:15:13 +01:00
Rolf Neugebauer
95b13501f2 tests: Use the Alpine base image for the poweroff package
Also convert it to use the git tree hash

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-30 17:15:13 +01:00
Rolf Neugebauer
551d3dcf3a tests: Update ltp test YAML file
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-30 17:15:13 +01:00
Rolf Neugebauer
4423d1943a tests: Use multi-stage builds for LTP
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-30 17:15:13 +01:00
Rolf Neugebauer
3d745c378b tests: Update unfinished docker-bench test
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-30 17:15:13 +01:00
Rolf Neugebauer
d9c2c366e4 tests: Convert docker-bench to use multi-stage builds
Also update to docker 17.05.0-ce and only install
the docker CLI, not the rest.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-30 17:15:13 +01:00
Justin Cormack
a902e90a23 Remove unnecessary namespace I missed
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-30 16:30:50 +01:00
Justin Cormack
5bb90f166a Merge pull request #1934 from justincormack/default-ns-change
Default ns change
2017-05-30 16:20:38 +01:00
Rolf Neugebauer
8cbf7cb064 Merge pull request #1883 from ijc25/qemu-ga
Add a simple qemu guest agent package
2017-05-30 16:15:55 +01:00
thebsdbox
9e7214a1f8 Fix correct usage function
This fixes the push function as it currently gives the help for `run`
not `push`.

Signed-off-by: Dan Finneran <daniel.finneran@gmail.com>
2017-05-30 15:56:01 +01:00
Justin Cormack
d614ea37d1 Update Moby
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-30 15:41:30 +01:00
Justin Cormack
d92e19f020 Update the yaml files with new builds
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-30 15:40:51 +01:00
Justin Cormack
d9aada88dc Update for new default namespaces
See https://github.com/moby/tool/pull/56

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-30 15:06:30 +01:00
Justin Cormack
1a2dff7fc8 Merge pull request #1932 from justincormack/init-sinit
Use the sinit conventions for init
2017-05-30 14:49:19 +01:00
Justin Cormack
599f2d6f5b Update yaml files with new init
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-30 14:15:16 +01:00
Justin Cormack
08e211df44 Use the sinit conventions for init
This should make it easier to switch out `init` for other versions,
although the `getty` config still needs to be removed.

- use `/bin/rc.init` for start
- use `rc.shutdown` for stop
- make `rc.init` run other code.
- merge `containers` and `containerd` startup code

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-30 14:14:34 +01:00
Ian Campbell
497b07e57b Add a simple qemu guest agent package
We don't actually build it here, we just use the alpine package, which is
already included in the linuxkit/alpine base.

Can be instantiated with a service stanza such as:
  - name: qemu-ga
    image: "linuxkit/qemu-ga:e5fbcf55926f6e1a96b3e49a392e547e8be1022c"
    binds:
      - /dev/vport0p1:/dev/vport0p1

The only functionality I've tested is to report IP addresses to the host (e.g.
via `virsh domifaddr`).

The image is configured to use `/dev/vport0p1` by default. If your VM image is
using a different port number then you can either incorporate the rename into
the bind ("/dev/vport1p1:/dev/vport0p1") or override the command with:
    command: ["/usr/bin/qemu-ga", "-p", "/dev/vport1p1"]

The mdev tool appears to not create the symlinks which udev would provide
`/dev/virtio-ports/org.qemu.guest_agent.0` hence the need to hardcode the
potentially unstable `/dev/vportNp1`, `N` seems to depend on the number and
order of virtio devices in use. I don't know if it is possible to get mdev to
create these links. For reference the udev rule is:

    SUBSYSTEM=="virtio-ports", KERNEL=="vport*", ATTR{name}=="?*", SYMLINK+="virtio-ports/$attr{name}"

See https://wiki.libvirt.org/page/Qemu_guest_agent for more info on the guest
agent.

A suitable stanza is added to `projects/swarmd/swarmd.yml` since that is where
I am using it.

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2017-05-30 13:59:35 +01:00
Rolf Neugebauer
063d82c687 Merge pull request #1930 from rneugeba/kup
kernel: Update to 4.11.3/4.9.30/4.4.70
2017-05-30 12:49:21 +01:00
Rolf Neugebauer
8d0182e17c kernel: Update to 4.11.3/4.9.30/4.4.70, remove 4.10.x
4.10.x has been EOLed. Remove it from the build and tests.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-30 12:32:09 +01:00
Justin Cormack
6f26ad65cc Merge pull request #1928 from rneugeba/go
Remove remaining uses of tools/go-compile from packages
2017-05-29 19:46:12 +01:00
Rolf Neugebauer
360e9870d6 Merge pull request #1926 from MagnusS/no-networking
hyperkit: Add --networking option
2017-05-29 19:23:52 +01:00
Magnus Skjegstad
eadb3066f3 hyperkit: Add --networking option
Adds a new --networking option to simplify selection of networking modes
for `linuxkit run hyperkit`. The new modes are "docker-for-mac",
"vpnkit" and "none".

By default docker-for-mac will be used for networking. HyperKit will
then connect to the default VPNKit socket location used by Docker for
Mac.

In vpnkit-mode a new VPNKit instance is started and the socket
"vpnkit_eth.sock" is created in the state directory. This mode also
enables port forwarding via 9p and vsock. The vpnkit mode optionally
accepts a path to an existing VPNKit socket. This allows two or more VMs
to be connected to the same virtual network - but only the VM that
created the the socket can use port forwarding.

Mode "none" disables networking.

Signed-off-by: Magnus Skjegstad <magnus@skjegstad.com>
2017-05-29 19:49:13 +02:00
Rolf Neugebauer
79f5c59813 tests: Use Alpine base to compile virtsock test program
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-29 17:30:57 +01:00
Rolf Neugebauer
8cff978fab Update YAML files with updated binfmt package
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-29 17:30:57 +01:00
Rolf Neugebauer
ebc7bd181a pkg: Update the binfmt packages to use the Alpine base compiling
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-29 17:30:57 +01:00
Rolf Neugebauer
b70410a478 Update YAML files to updated metadata package
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-29 17:30:57 +01:00
Rolf Neugebauer
6d59041daa pkg: Update the metadata package to multi-stage build and alpine base
- Use the alpine base to compile the go program
- Use a multi-stage build

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-29 17:30:57 +01:00
Justin Cormack
e83aee2604 Merge pull request #1927 from thebsdbox/qemu_mistake
Fixes disk size output typo
2017-05-29 16:19:42 +01:00
thebsdbox
bbde9f5baa Fixes disk size output typo
The error was incorrect when unable to parse the disk size.

Signed-off-by: Dan Finneran <daniel.finneran@gmail.com>
2017-05-29 14:15:56 +01:00
Rolf Neugebauer
9086dd0435 Merge pull request #1925 from rneugeba/tests
Tweak package tests and add more
2017-05-29 14:08:09 +01:00
Magnus Skjegstad
6c3dfea808 vendor: Update hyperkit to latest version
Signed-off-by: Magnus Skjegstad <magnus@skjegstad.com>
2017-05-29 12:51:48 +02:00
Rolf Neugebauer
96e45aeee5 tests: Add a test for the ca-certificates package
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-29 11:42:08 +01:00
Rolf Neugebauer
f434615f91 tests: Add a test for the dhcpcd package
This test check that the link is up, that we got a IP address
and the output of the dhcpcd daemon.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-29 11:42:07 +01:00
Rolf Neugebauer
885e6a7f0a tests: Add a test for the binfmt package
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-29 11:42:07 +01:00
Rolf Neugebauer
9efac10874 tests: Remove systctl test package
It is not longer needed.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-29 11:42:07 +01:00
Rolf Neugebauer
15a05d6260 tests: Simplify sysctl test
Don't rely on systctl test package. Instead, add the check shell
script to the image and execute it with a standard Alpine image.

While at it, make the test more verbose.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-29 11:42:06 +01:00
Rolf Neugebauer
4aa4129acf tests: Reorder package tests
Use the index in the alphabet (a=1...) to group the tests
a little bit. The actual order does not matter.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-29 11:42:06 +01:00
Rolf Neugebauer
5a705a999b tools: Add strace to the Alpine base
While not used anywhere, adding it to the based makes it easy
to add temporarily add it to init (or elsewhere) for debugging.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-29 11:42:06 +01:00
Justin Cormack
7b9356c320 Merge pull request #1922 from rneugeba/strace
tools: Add strace to the Alpine base
2017-05-28 10:58:36 +01:00