428 Commits

Author SHA1 Message Date
Rolf Neugebauer
7c5f797935 pkg: Update getty/ip/sshd package to pick up new wireguard
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-11-03 15:11:06 +00:00
Olaf Flebbe
6ec8e895a7 Support static ppc64le executables in qemu
The /sbin/ldconfig.real command in ubuntu for ppc64le cannot be executed
in docker images since the binfmt-misc configuration does not match the
executable file format. This patch is a port of
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=794737 to linuxkit

Signed-off-by: Olaf Flebbe <of@oflebbe.de>
2017-10-28 21:09:38 +02:00
Isaac Rodman
0ff1f84918 pkg/ip: added iptables, ebtables, ipvsadm, and bridge-utils
Signed-off-by: Isaac Rodman <isaac@eyz.us>
2017-10-24 16:45:38 -07:00
Ian Campbell
6c7b1c0251 Bump all packages to newest alpine.
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-24 10:11:24 +01:00
Nick Jones
5663112822 Fix typo which broke metadata retrieval
Signed-off-by: Nick Jones <nick@dischord.org>
2017-10-18 22:47:03 +01:00
Ian Campbell
9facf7b585 ip: Update to newest alpine.
Rebuild to pickup newer go also picked up newer wireguard-tools,
0.0.20171005-r0 → 0.0.20171011-r0.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-12 16:51:37 +01:00
Ian Campbell
29fc12607f Update various other go base pkgs to newer alpine (go1.9)
These are those which set $GOPATH but don't use go-compile.sh.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-12 16:50:47 +01:00
Ian Campbell
a9b03c3f95 Update all users of go-compile.sh to new alpine (go1.9)
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-12 16:47:35 +01:00
Ian Campbell
aba82533a0 Update go system components to new alpine (go1.9)
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-12 16:45:01 +01:00
Ian Campbell
2875ef0e82 runc: Update to version used by containerd v1.0.0-beta.2
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-12 13:01:06 +01:00
Ian Campbell
aeed5f6b40 init,containerd: bump to new alpine with v1.0.0-beta.2.
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-12 12:57:08 +01:00
Ian Campbell
a237b51511 Bump alpine base across the board.
By running:

    ./scripts/update-component-sha.sh --image linuxkit/alpine ad35b6ddbc70faa07e59a9d7dee7707c08122e8d

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-10 09:55:45 +01:00
Ian Campbell
13d11f49ba Rename "tag*" Makefile targets to "build*"
This better matches the `linuxkit pkg build` nomenclature.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-09 16:48:48 +01:00
Ian Campbell
9bb87c0091 Remove unused pkg/package.mk
All uses now converted to `linuxkit pkg`

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-09 16:40:33 +01:00
Ian Campbell
fc3e659f0e Convert all of pkg/* to linuxkit pkg build
This was done with the following "script":

    git rm pkg/{auditd,binfmt,init}/Makefile
    sed -e 's/IMAGE=/image: /g' -i pkg/*/Makefile
    sed -e 's/NETWORK=1/network: true/g' -i pkg/*/Makefile
    sed -e 's/ARCHES=x86_64/arches:\n  - amd64/g' -i pkg/*/Makefile
    sed -e '/DEPS:\?=/d' -i pkg/*/Makefile
    sed -e '/ARCHES=SKIP/d' -i pkg/node_exporter/Makefile
    sed -e 's/include \.\.\/package.mk//g' -i pkg/*/Makefile
    sed -e '/^$/d' -i pkg/*/Makefile
    git mv pkg/node_exporter/Makefile pkg/node_exporter/build.yml-skip
    for i in pkg/*/Makefile ; do git mv $i ${i%Makefile}build.yml ; done

and manual update of pkg/Makefile.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-09 16:20:26 +01:00
Ian Campbell
ca70b7b6af Update pkg/Makefile and test/pkg/Makefile based on tools/Makefile
Using explicit targets is cleaner and easier to follow.

Also add `forcepush` to pkg and test/pkg and make `push` explicit.

The `dirs` phony was non-existent in all three cases. Likewise `$(DIR)` wasn't
used in that way in pkg or test/pkg and is nolonger used in that way in tools.

Finally, `clean` was bogus in all cases (tools cleaned a thing which never
exists and pkg and test/pkg were a syntax error).

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-09 16:20:08 +01:00
Justin Cormack
d0882b9674 Merge pull request #2571 from ijc/linuxkit-pkg
Implement package build, push and show-tag in linuxkit tool
2017-10-09 13:59:02 +01:00
Nick Jones
6deabe8a2f [OpenStack] Metadata service support
This commit adds support for retrieving instance metadata on OpenStack
public clouds.

Signed-off-by: Nick Jones <nick@dischord.org>
2017-10-08 17:08:00 +01:00
Ian Campbell
ba60937754 Implement package build, push and show-tag in linuxkit tool
This implements the proposal in #2564 and converts a handful of representative
or especially interesting (from a build PoV) packages to use it.

For now those pkg/* affected get a stub-`Makefile`, once all packages are
converted then `pkg/Makefile` can be adjusted and those stubs can be removed.

For now only `pkg/package.mk`'s functionality is implemented. In particular:

- `push-manifest.sh` remains a separate script, to enable calling it on systems
  with just the LinuxKit tools installed arrange to install it under a less
  generic name.
- `kernel` and `tools/alpine` do not use `pkg/package.mk` and those cases are
  not yet fully considered/covered.

I have updated the documentation assuming that the existing uses of
`pkg/package.mk` will be removed quite soon in a follow up PR rather than
trying to document the situation which results after just this commit.

Due to `cmd/linuxkit` now gaining a library the build needs adjusting slightly to
allow both `make bin/linuxkit` and `go build` to work.

`go vet` has forced me to write some rather asinine comments for things that
are rather obvious from the name.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-06 12:59:25 +01:00
Ian Campbell
f8b80b6f00 pkg: correct tagging forced release
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-06 12:56:33 +01:00
Rolf Neugebauer
d8283fc769 pkg: Update alpine base for getty/ip/sshd
These packages include the wireguard tools which need to be
updated due to the wireguard kernel bump in:
43db718f14 ("wireguard: version bump").

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-10-06 11:16:10 +01:00
Isaac Rodman
3de78f2109 format: blkid content check, format argument, and verbose argument
- Added new argument -force to the format utility. This will force formatting of the specified single device if it exists and is a block device
- By default, the format package will no longer format the specified single device if content exists on that device
- Added new blkid-based check for content, in addition to the existing check for partitions on autoformat candidate devices.
- Cleanup of old unused code.
- Refactoring of block device verification.
- Added test/cases/040_packages/006_format_mount/005_by_device_force
- Added document of new arguments to /docs/external-disk.md. Also sorted the arguments in the doc alphabetically and added them as bullets so they do not run together on the page.

Signed-off-by: Isaac Rodman <isaac@eyz.us>
2017-10-02 11:53:17 -07:00
Ian Campbell
2582614135 pkg/mount: also create /dev/disk/by-uuid links
Some software (such as cri-containerd and kubelet) rely on the presence of
these links, which are usually created by udev.

Inspired by 74b145b5c7/sourceroot/functions.sh (L93...L124)
but rewritten in go.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-09-27 16:39:58 +01:00
Rolf Neugebauer
5c37a154da Merge pull request #2536 from rn/lcow-kern
Update kernel and LCOW
2017-09-25 15:27:15 +01:00
Rolf Neugebauer
02f0049172 pkg/init-lcow: Update OpenGCS to latest version
While at it, might as well update alpine base

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-09-25 13:44:40 +01:00
Ian Campbell
09c89a923b Bump init and containerd package to v1.0.0-beta.1
golint on pkg/init now complains:

    golint...
    ./init.go:199:2: redundant if ...; err != nil check, just return error instead.

Resulting in a change which doesn't seem like an improvement to me.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-09-25 13:39:21 +01:00
Justin Cormack
b52fcb71a1 Add swap to the Docker for Mac blueprint
We always had 1G swap to work better with small memory setups, but this
was omitted in the update to LinuxKit.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-09-21 14:50:27 -07:00
Rolf Neugebauer
cc200d296a Merge pull request #2527 from eyz/linuxkit-dhcpcd-CAP_SYS_ADMIN
added capability to pkg/dhcpcd for sethostname
2017-09-21 20:53:16 +01:00
Isaac Rodman
0add33e288 added capability to pkg/dhcpcd for sethostname
Signed-off-by: Isaac Rodman <isaac@eyz.us>
2017-09-20 15:11:43 -07:00
Justin Cormack
498086dbb9 Update containerd to use pre-built version
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-09-20 14:24:10 -07:00
Rolf Neugebauer
d9ffc57532 pkg: Update the getty, ip, and sshd package to latest alpine base
These packages use the wireguard tools which have been updated
with the previous commit.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-09-20 11:46:48 +01:00
Justin Cormack
042cd763fe Add vendoring for rc.init
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-09-18 11:46:00 -07:00
Justin Cormack
bcfb760a1d Convert rc.init and rc.shutdown to Go
This removes more shell scripts to improve maintainability.

This now also works correctly in userspace, so it can be used for
running LinuxKit images in Docker and other such use cases.

It is a literal conversion of the shell scripts with a few small
tweaks.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-09-18 11:45:59 -07:00
Isaac Rodman
38452aa742 added poweroff.sh for pkg/open-vm-tools to allow shutdown from hypervisor
Signed-off-by: Isaac Rodman <isaac@eyz.us>
2017-09-16 10:39:23 -07:00
Rolf Neugebauer
6845f602dc Merge pull request #2506 from eyz/master
new pkg/modprobe from linuxkit/alpine base onto scratch
2017-09-16 17:21:15 +01:00
Rolf Neugebauer
d38ea16f4a Merge pull request #2513 from rn/lcow-kernel
Update 4.12.13 kernel patches and use it for LCOW
2017-09-15 21:41:44 +01:00
Isaac Rodman
0cce316caa pkg/modprobe from linuxkit/alpine base, using established multistage build onto scratch pattern
Signed-off-by: Isaac Rodman <isaac@eyz.us>
2017-09-15 12:38:40 -07:00
Justin Cormack
9d55b197c0 Merge pull request #2483 from zx2c4/custom-wg-script
wireguard: use custom wg-quick
2017-09-15 09:51:54 -07:00
Rolf Neugebauer
adb92ca672 pkg/init-lcow: Update to the latest version
This includes fixes to the intermittent on pull as well as
other fixes.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-09-15 14:47:12 +01:00
Jason A. Donenfeld
8f3847e985 wireguard: use custom wg-quick
This removes things we do not need and expects the interface to
already be created.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2017-09-15 01:01:55 +02:00
David Scott
9c35dbaac2 service: log stdout and stderr to separate files
Previously we would pass the path `/var/log/service.log` for both
stdout and stderr to containerd. containerd would construct a dict
with the paths as keys[1] and, due to the duplicate key, would only
open one of the files and start one `io.Copy` instance. Writes to
the other stream would be buffered by the pipe connected to
containerd-shim and would eventually block.

If we modified containerd to open the file twice and start 2
`io.Copy` instances, we would end up with the two streams interleaved
together. It seems cleaner to keep the streams separate; therefore
this patch logs stdout to `/var/log/service.out.log` and stderr to
`/var/log/service.err.log`.

[1]
49437711c3/linux/shim/io.go (L51)

Signed-off-by: David Scott <dave.scott@docker.com>
2017-09-14 11:15:04 +01:00
Rolf Neugebauer
36c84004a2 pkg/init-lcow: Update to latest version of OpenGCS
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-09-12 16:59:07 +01:00
Ian Campbell
6cbc3ed518 Bump init+containerd to new alpine base with containerd beta.0
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-09-07 18:31:57 +01:00
Rolf Neugebauer
3ebec6f3e8 pkg/init-lcow: Update to latest OpenGCS version
While at it also update to latest alpine base

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-09-06 08:54:14 +01:00
Rolf Neugebauer
2cb0612011 pkg/lcow: Update OpenGCS to latest
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-08-30 19:41:02 +01:00
Ian Campbell
b0b08e18a2 Bump init and containerd packages to v1.0.0-alpha6
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-08-29 01:02:20 +01:00
Justin Cormack
5773dfd844 Cleanup cleanup code
Only remove main mount at rootfs, as we do not really know
about the state of the rest.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-08-23 16:40:03 +01:00
Justin Cormack
49cf74f4f6 Switch to having the moby tool specify how to do mounts
This removes all the code that had knowledge of how to do read only
and read write container mounts, and just uses the runtime config.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-08-23 16:40:03 +01:00
Justin Cormack
c677b391fc Add support for mount in runtime config
This could be used in LinuxKit now, as there are some examples, eg
https://github.com/linuxkit/linuxkit/blob/master/blueprints/docker-for-mac/base.yml#L33
which are creating containers to do a mount.

The main reason though is to in future change the ad hoc code that generates
overlay mounts for writeable containers with a runtime config which does
the same thing; this code needs to create both tmpfs and overlay mounts.

See https://github.com/moby/tool/pull/145

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-08-23 16:40:03 +01:00
Justin Cormack
2129d1de21 Merge pull request #2450 from justincormack/improve-wireguard-example
Improve wireguard example
2017-08-22 17:44:01 +01:00