Commit Graph

382 Commits

Author SHA1 Message Date
Justin Cormack
415d0d3c32 Update to allow the new locations for Docker for Mac socket paths
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2018-05-10 13:32:38 +01:00
Rolf Neugebauer
0b5ea3fcc3 cmd: Add support for kernel+squashfs to the qemu runner
Unlike the hyperkit runner, the qemu runner already had better
support for auto-detecting the boot method so the changes
are less invasive (and backward compatible).

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-04-16 18:39:32 +01:00
Rolf Neugebauer
0e3c88d47c cmd: Add support for squashfs root filesystem to hyperkit runnner
Previous commits added support for building 'kernel+squashfs'.
This commit adds support for booting this build format on hyperkit.

The changes are a little bigger because some restructuring of the
code was required to support a third (after kernel+initrd and EFI
ISO) boot method.

To keep the code simpler this commit also removes some auto-detection
code for ISO booting. Users now have to specify '-iso -uefi' on the
command line to boot an EFI ISO. Previously, only '-uefi' was
required.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-04-16 18:39:31 +01:00
Rolf Neugebauer
c26a83011d vendor: Update hyperkit go bindings
This contains a small fix to the disk binadings and allows
booting with a kernel alone (no initrd).

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-04-16 18:39:31 +01:00
Rolf Neugebauer
ccb0007947 cmd: Register local mkimage- images with the vendored moby tool
This allows us to update tags for these locally without having
to re-vendor.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-04-16 18:39:31 +01:00
Rolf Neugebauer
69679d1db7 vendor: Update moby/tool vendoring
This includes two improvements:
- being able to specify the packages used for building images
- support for building squashfs images.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-04-16 18:39:31 +01:00
Ian Campbell
3be156da13 pkg: build: do not infer a release if not pushing
If you happen to be exactly on a tag then:

    $ linuxkit pkg build --dev pkg/init
    Building "ijc/init:dev"
    Cannot release "v0.3" if not pushing

Do not try and infer a release if not pushing so this is possible again.

The subsequent check for `bo.release != "" && !bo.push` remains since the
caller could have used `WithRelease` but not `WithPush`. Our CLI never does
this, but a hypothetical other user of the library might.

Signed-off-by: Ian Campbell <ijc@docker.com>
2018-04-06 14:13:08 +01:00
Rolf Neugebauer
db663d30a6 Update YAMLs to released packages
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-04-05 15:23:20 +01:00
Rolf Neugebauer
c4f613e047 cmd: Update the moby tool vendoring
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-04-05 14:00:10 +01:00
Rolf Neugebauer
4a0813ec2e cmd: Update linuxkit/qemu to the latest
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-04-05 10:59:12 +01:00
Justin Cormack
7be989363b Update moby tool vendoring
This only includes https://github.com/moby/tool/pull/210 which
makes bind mounts into containers rshared not rprivate by default,
which makes debug easier as you can see them from the host.

Signed-off-by: Justin Cormack <justin@specialbusservice.com>
2018-04-04 19:00:48 +01:00
Rolf Neugebauer
d7d072b2a9 cmd: Update manifest_push_script.go
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-04-03 16:08:00 +01:00
Rolf Neugebauer
0840aff18e cmd: Update moby/tool to latest
This picks up the updated mkimage tools

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@gmail.com>
2018-03-23 20:15:32 +00:00
Justin Ko
df660d35c7 Subcommand serve should parse flags.
Signed-off-by: Justin Ko <justin.ko@oracle.com>
2018-03-07 14:59:14 -08:00
Justin Cormack
ee6d320706 Update moby tool
Also update its notary vendor as that was part of update.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2018-03-07 09:17:41 +00:00
Avi Deitcher
5d30b45cbc Merge pull request #2942 from deitch/onboot-stream-logs
Add logging to /var/log for onboot containers
2018-03-02 16:47:54 +02:00
Avi Deitcher
6f524eb616 Update hashes for linuxkit/init
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2018-03-02 15:51:09 +02:00
Justin Cormack
adebf0377c Merge pull request #2933 from pcfdev-forks/master
Configure guest with 9P mount and vsock port when using existing VPNKit instance
2018-03-01 11:22:41 +00:00
Rolf Neugebauer
6d4905ba2a cmd: Update generated code.
The source script changed

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-02-28 16:41:23 +00:00
Justin Cormack
cc137cfbf3 Merge pull request #2932 from garthy/support_http_proxy
Support http proxy environment variables in linuxkit build
2018-02-27 19:21:04 +00:00
Emily Casey
4dde00b05c Configure guest with 9P mount and vsock port when using existing VPNKit instance
Signed-off-by: Emily Casey <ecasey@pivotal.io>
2018-02-27 09:21:28 -05:00
Rolf Neugebauer
0d8fab9ac9 Merge pull request #2927 from alicefr/support_s390
Add s390x support for Linuxkit binary and tools
2018-02-27 13:47:10 +00:00
Garth Bushell
10ec3c5803 Support http proxy environment variables in docker build
Signed-off-by: Garth Bushell <garth.bushell@oracle.com>
2018-02-27 13:28:11 +00:00
Alice Frosi
d6b44f7881 Add s390x support for Linuxkit binary
This PR adds the basic support for s390 architecture on linuxkit
command.

Signed-off-by: Alice Frosi <alice@linux.vnet.ibm.com>
2018-02-27 12:23:47 +00:00
Olaf Bergner
f37a59bd1a Add cli option '--bridgeadapter' to 'linuxkit vbox run'
Starting a virtualbox vm in bridged networking mode requires the host's
network interface to attach to the bridge being specified. This commit
adds command line option '--bridgeadapter iface' to 'linuxkit vbox run',
where 'iface' is the host's network interface to use in bridged mode.

Fixes: #2929

Signed-off-by: Olaf Bergner <olaf.bergner@gmx.de>
2018-02-26 21:20:38 +01:00
Scott Coulton
a7ec17b08f Added a fail if the user sets detached to true when qemu is running locally 2018-02-19 11:53:13 +11:00
Scott Coulton
224ade8fea This commit adds the functionality to run the qemu container detached 2018-02-15 15:09:10 +11:00
Rolf Neugebauer
46b20a2d0c Merge pull request #2899 from rn/qemu
Allow choice of qemu binary and acceleration
2018-02-05 10:20:26 +00:00
Rolf Neugebauer
5d0e677397 cmd/qemu: Enable additional accelerators
Upstream qemu supports accelerators other than kvm. Allow the user
to choose. On Linux we still default to 'lvm' if available. On
macOS we try the new 'hvf' accelerator, if available.

Disable acceleration if the host arch does not match requested
qemu arch.

Also change the LINUXKIT_QEMU_KVM env var to LINUXKIT_QEMU_ACCEL
and use the functions in utils.go for env var overrides.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-02-02 18:05:39 +00:00
Roman Shaposhnik
528e3e6850 Make it possible to key the package tags off of top level tree hash
Closes #2887

Signed-off-by: Roman Shaposhnik <rvs@zededa.com>
2018-02-02 04:05:16 -08:00
Rolf Neugebauer
c5b3d088b0 cmd: Add option to override the qemu binary to use
It still defaults to whatever is in your PATH but it's
useful to override when experimenting with different
qemu builds.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-02-01 17:39:40 +00:00
Justin Cormack
e98cc7a328 Do not print git commit if empty
fix #2891

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2018-01-26 14:32:46 +00:00
Rolf Neugebauer
4e8d7cd67d cmd: Update moby/tool vendoring
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-01-25 19:40:28 +00:00
Rolf Neugebauer
bd6264458a cmd: Update linuxkit/qemu to the latest version
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-01-25 13:33:11 +00:00
Rolf Neugebauer
e743c1b027 Merge pull request #2882 from rn/hyperv
cmd/hyperv: Use Default Switch if present
2018-01-24 19:20:53 +00:00
Rolf Neugebauer
83a7e29730 cmd/hyperv: Use Default Switch if present
The Windows 10 Fall Creators Update added a new 'Default
Switch' (which is a NAT switch). Use it if present and the
user has not specified a switch.

Also, handle External switches with spaces in them.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-01-24 16:52:17 +00:00
Rolf Neugebauer
87667051f2 cmd: Adjust run_hyperkit to interface changes
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-01-24 16:06:09 +00:00
Rolf Neugebauer
47f139eb08 cmd: Update vendored hyperkit go bindings
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-01-24 16:06:09 +00:00
Justin Cormack
99fd71dc7f Update moby vendoring
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2018-01-18 12:40:56 +00:00
Rolf Neugebauer
0470dc89a8 cmd/gcp: Add -nest-virt option to push and run
If the flag is set on push, then the image will have the license
set to enabled the currently experimental netsted virtualisation
feature. The flag currently also needs to be set on run to make
sure the right CPU model (at least Haswell) is selected.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-01-17 14:07:27 +00:00
Rolf Neugebauer
358a020b1a cmd: Update vendored google cloud API
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-01-17 11:30:44 +00:00
Rolf Neugebauer
63ec7f58c0 vendor: Update moby tool to latest
This includes support for CPU microcode handling

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-01-16 10:27:58 +00:00
Ian Campbell
6483a2e6dc linuxkit: print response status, not the response object when validating a URL
go_vet (via https://goreportcard.com/report/github.com/linuxkit/linuxkit)
reported:

    error: arg resp for printf verb %s of wrong type: *net/http.Response (vet)

Signed-off-by: Ian Campbell <ijc@docker.com>
2018-01-15 17:24:36 +00:00
Avi Deitcher
6c015141f5 Split linuxkit run -data options into string and file
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2018-01-15 16:57:03 +02:00
Ian Campbell
57cf8df3b2 Revendor moby tool to f816553d2f
Pulls in:

f816553 Merge pull request #195 from ijc/prepend-rootfs-mounts
0a6d69d Prepend the rootfs mounts to the user specified runtime.mounts.

Signed-off-by: Ian Campbell <ijc@docker.com>
2018-01-11 12:22:34 +00:00
Rolf Neugebauer
cd1a472678 Merge pull request #2852 from rn/pktpxe
Improve packet.net support
2018-01-11 12:12:47 +00:00
thebsdbox
8b9eddf6f6 Added capability to find a host if -hostname isn't specified
Will return the list of all hosts that are part of a vCenter DataCenter
and choose one at random to use.

Signed-off-by: Dan Finneran <daniel.finneran@gmail.com>
2018-01-10 19:44:18 +00:00
Rolf Neugebauer
1cef947ee1 cmd/serve: Add a new 'linuxkit serve' command
This simply starts a web server serving the specified directory.
It's useful for PXE booting.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-01-10 17:48:47 +00:00
Rolf Neugebauer
16ae50b593 cmd/packet: Add linuxkit push packet support
This currently just copies the kernel/initrd to a destination
and writes the iPXE script there as well. The scheme is flexible
enough to support scp or other means for pushing in the future.

The kernel/initrd are conditionally decompressed (default for arm64).

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-01-10 17:45:35 +00:00
Rolf Neugebauer
2431dd9950 cmd/packet: Use IPXEScriptURL instead of passing script via Userdata
Using the userdat to pass the iPXE script precludes us from passing
actual userdata to the instance. Instead pass a URL to the iPXE script.
The script is expected to be a <base-url>/<name>-packet.ipxe.

When starting a server also serve the iPXE script from memory (not
the file system). The http server needed extending to differentiate
between the serving files and the iPXE script and ServeMux is used
to differentiate based on path.

A subsequent commit will provide an option to write the iPXE script
to disk.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-01-10 17:45:34 +00:00