Commit Graph

197 Commits

Author SHA1 Message Date
Magnus Skjegstad
6c83b98a40 pkg: add vpnkit-expose-port
This package contains vpnkit binaries needed inside the dockerd
container that can be either copied into the container with a multistage
build or used as an init-container and bind-mounted to the right
locations.

vpnkit-expose-port is a userland proxy that interacts with vpnkit and
the vpnkit-forwarder service to open ports on the host.

vpnkit-iptables-wrapper wraps iptables to launch
vpnkit-expose-port automatically when ports are opened to a swarm
service.

Signed-off-by: Magnus Skjegstad <magnus@skjegstad.com>
2017-06-30 19:26:02 +02:00
Dave Tucker
5a225b9dc5 Makefile: Fix bug where network was not disabled
This commit moves the include statement to the bottom of the file to
ensure that all variables are set before conditionals are evaluated.

I also changed the ifndef NETWORK to ifdef NETWORK as the former was
incorrect. We want `NET_OPTS="--network=none"` in cases where NETWORK is
not defined.

Fixes: #2134

Signed-off-by: Dave Tucker <dt@docker.com>
2017-06-30 11:55:08 +01:00
Rolf Neugebauer
736713dc8f Merge pull request #2120 from dave-tucker/getty
Make it more obvious that getty/sshd are namespaced
2017-06-29 23:30:17 +01:00
Justin Cormack
fed24c4110 Update to Docker 17.06.0-ce
Note that the location of the static binaries changed.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-06-29 15:27:34 +01:00
Dave Tucker
5fb025824f getty: Make namespacing more obvious
Warn the user in the MOTD
Add "(ns: getty)" or "(ns: sshd)" to the PS1
Use `agetty` and `-a root` to ensure we get a login shell when insecure

Signed-off-by: Dave Tucker <dt@docker.com>
2017-06-29 14:58:44 +01:00
Tycho Andersen
740b97cc90 auditd: update image hash
Riyaz has actually pushed this hash, so let's use it.

Signed-off-by: Tycho Andersen <tycho@docker.com>
2017-06-28 16:44:54 -06:00
Tycho Andersen
b95e28f466 auditd: add missing build.sh file
Whoops :)

Signed-off-by: Tycho Andersen <tycho@docker.com>
2017-06-28 16:25:46 -06:00
Tycho Andersen
44cbd38650 add an auditd container
Two things to note here: we unfortunately can't just exec audit, because
something needs to load the rules in beforehand.

Second, it also dies if it can't re-nice itself, so we have to give it
CAP_SYS_NICE as well as the audit caps.

I didn't add this to the default linuxkit.yml because the linuxkit/audit
repo doesn't exist yet, but we should probably (?) do that. Additionally,
we should provide the kernel parameter audit=1, otherwise according to
auditd's man pages, we can't audit some early tasks.

Closes #52

Signed-off-by: Tycho Andersen <tycho@docker.com>
2017-06-28 09:15:51 -06:00
Riyaz Faizullabhoy
ec7f1df1b4 Merge pull request #2112 from djs55/trim-after-delete2
RFC: add "trim after image delete" to the Docker for Mac blueprint
2017-06-27 14:12:00 -07:00
Rolf Neugebauer
093dae22d5 Update YAML files
- Use the new style kernel tags with the full kernel version
- Update packages with new alpine base and new/simplified Makefiles.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-06-27 19:56:08 +01:00
Rolf Neugebauer
2fb65e8f1e doc: Remove explicit hashes from documentation in ./pkg
People typically update hashes in YAML files with
'git grep ... | sed ...' this will change the README.md files
in the ./pkg directory and thus change the git tree hash.

Remove the use of explicit hashes from those files to avoid
the obvious chicken and egg problem.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-06-27 18:01:48 +01:00
David Scott
38787b1ddd Add pkg/trim-after-delete
This adds a helper which monitors the Docker event stream and, when it
receives an image delete event, queues a call to `fstrim /var/lib/docker`
to trigger a space reclamation. Previously we would rely on a cron job
running every 15 minutes.

Signed-off-by: David Scott <dave.scott@docker.com>
2017-06-27 17:55:42 +01:00
Rolf Neugebauer
56d94318d9 pkg: Use curl instead of ADD to fetch rng-tools
There seems to be a change in docker 17.06-rc5 on how remote
URLs and tar archives work with ADD. Use curl instead.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-06-27 17:43:58 +01:00
Rolf Neugebauer
cab27698f4 pkg: Update all packages to the new alpine base
In a subsequent commit, all YAML files will be updated with
new package hashes since all packages needed rebuild due to
build system changes in commit adae27b8d1 ("Simplify
Makefiles for Packages"). So, we might as well bring all
packages up to the latest alpine base package.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-06-27 17:43:57 +01:00
Rolf Neugebauer
da24542d78 pkg: Improve package build
- Only build if the hash has changed. Previosuly
  we'd unconditionally build and not push of the tag existed.
- Add '.m' to the hash if the repository is dirty.
  This allows developers to build locally without committing
  but makes it clear that the hash is from a modified repository.
- Don't push to hub if the repository is dirty
- If the current commit has a tag, also push this to hub.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-06-27 17:43:57 +01:00
Riyaz Faizullabhoy
ac80cd2574 Merge pull request #2101 from furious-luke/master
Add a metadata provider for Vultr
2017-06-26 14:59:21 -07:00
Ian Campbell
bbbbf3cb5d sshd: sync bind mounts with getty container
This adds all the binds from pkg/getty/Dockerfile to pkg/sshd/Dockerfile and
retains the existing /root/.ssh and /etc/resolv.conf binds.

With this `dist` and `ctr` function in a ssh session.

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2017-06-26 11:52:41 +01:00
Ian Campbell
2864f467b9 getty,sshd: Include ca-certificates.
Otherwise:

    dist pull docker.io/library/redis:alpine
    dist: failed to do request: Head https://registry-1.docker.io/v2/library/redis/manifests/alpine: x509: failed to load system roots and no roots provided

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2017-06-26 11:52:41 +01:00
Ian Campbell
34fbe42615 getty,sshd: Mount host /tmp into containers.
ctr (which runs in the getty or ssh container) relies on sharing files in /tmp
with containerd (which runs in the host mount namespace). Specifically it
currently uses paths under /tmp/containerd for the stdio FIFOs of containers, resulting in:

    # ctr run -t docker.io/library/redis:alpine test
    ctr: rpc error: code = Unknown desc = runtime create failed: runc create failed: container with id exists: test

Currently it is not possible to specify a non-existent source directory for a
bind mount, so we cannot easily bind just /tmp/containerd. Sharing all of /tmp
doesn't sound like a terrible idea anyway.

Defering updating the sha in *.yml until after some further changes to these packages.

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2017-06-26 11:52:41 +01:00
Ian Campbell
ea79748830 pkg/containerd: Add /etc/localtime set to UTC
containerd/ctr includes this in the default set of bind mounts for a container.

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2017-06-26 11:52:30 +01:00
Luke Hodkinson
3dc23b96ac Add a metadata provider for Vultr
Vultr uses a very similar approach to AWS, including using the
same IP address for serving metadata. In fact, it seems
as though if AWS appears first in the list of providers, that
provider mistakenly believes to be running on AWS (hence the
insertion of `NewVultr` in between GCP and AWS. I don't believe
AWS servers will accidentally try to use the Vultr provider,
as it seems that the `/v1/` endpoint doesn't exist on AWS.

Signed-off-by: Luke Hodkinson <furious.luke@gmail.com>
2017-06-24 07:43:07 +10:00
Rolf Neugebauer
d65bb86c37 Merge pull request #2080 from dave-tucker/pkg-mk
Simplify Makefiles for Packages
2017-06-22 13:35:43 +01:00
Dave Tucker
adae27b8d1 Simplify Makefiles for Packages
These now inherit from a top-level package.mk
Options like use of the network can be enabled on a per package basis
This removes a lot of duplicate code and make the maintenace of these
Makefiles much easier

Signed-off-by: Dave Tucker <dt@docker.com>
2017-06-22 12:40:03 +01:00
Sebastiaan van Stijn
4e1c91fc6e Update ASCII whale
The logo changed, and no longer has waves,
so removing them from the ASCII whale as well

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2017-06-20 23:22:23 -07:00
Akihiro Suda
4699f80ef7 test: add test-containerd
Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-06-19 11:04:58 -07:00
Ian Campbell
9d2da9cabc Update to containerd c215531a8f63a98a69134e804fea4ee6d354bb90
This includes https://github.com/containerd/containerd/pull/994 and hence
requires updating the various instances of `/etc/containerd/config.toml`.

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2017-06-16 13:42:24 +01:00
Ian Campbell
d51784adc0 Allow /etc/init.d/010-containerd to exit when complete
Don't think there is a need for it to remain and it drops an unnecessary
process.

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2017-06-16 11:49:52 +01:00
Ian Campbell
5833d1b6bc init: replace ctr with a custom client using the containerd client library
Currently it supports only `service start <SERVICE>`, but it could grow e.g.
`stop`, `exec` etc in the future (although you can still use `ctr` for those).

In order to be able to use go-compile.sh the containerd build needs to move
from /root/go to /go as the GOPATH.

The vendoring situation is not ideal, but since this tool wants to be an exact
match for the containerd it seems tollerable to reuse its vendoring.

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2017-06-16 11:48:53 +01:00
Ian Campbell
f7b2a739ee pkg/getty: Stop bind mounting /tmp/ctr
This doesn't exist with newer ctr or in systems where service containers are
not started using the ctr tool. All it contains today are the stdio FIFOs,
which are not in general useful to access after container creation.

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2017-06-16 11:21:40 +01:00
Justin Cormack
684b77d62b Merge pull request #2048 from MagnusS/vpnkit-docker-ce
pkg/docker-ce: add vpnkit-expose-port
2017-06-15 15:18:54 -07:00
Magnus Skjegstad
e3a25bbf5b pkg/docker-ce: add vpnkit-expose-port
vpnkit-expose-port is the dockerd userland proxy used to expose
forwarding ports with vpnkit. This adds the binary to the image in
/usr/bin/vpnkit-expose-port, but does not enable it by default.

Signed-off-by: Magnus Skjegstad <magnus@skjegstad.com>
2017-06-15 19:48:30 +01:00
Rolf Neugebauer
d48715cd8c Merge pull request #2037 from tych0/usermode-helper
add a static usermode helper
2017-06-15 11:26:41 -07:00
Tycho Andersen
a4e0a594b1 add a static usermode helper
The binary is used in tandem with CONFIG_STATIC_USERMODEHELPER=y in 4.11+,
see the big comment in the binary for the current whitelist of binaries.

Signed-off-by: Tycho Andersen <tycho@docker.com>
2017-06-15 10:39:52 -07:00
Riyaz Faizullabhoy
6dedac2fe9 Update getty image for setsid changes
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2017-06-15 09:16:12 -07:00
Justin Cormack
7cf06bb284 Merge pull request #2038 from rn/cold-plug
Support cold-plugging devices
2017-06-15 18:07:17 +02:00
Avi Deitcher
42bf54de28 copy setsid to setsidu so it does not get overwritten by busybox when used in init, and ensure inittab is clean
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2017-06-14 13:22:18 +03:00
Rolf Neugebauer
4e4efcd985 pkg: Add support for cold-plugged devices to init
mdev only supports hot-plug, ie devices which are added
after the kernel booted. For cold-plugged devices, ie devices
present when the kernel boots, we need to modprobe the drivers
differently. The additions to rc.init does just that.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-06-13 15:57:24 -07:00
Riyaz Faizullabhoy
35977c53d6 Merge pull request #2022 from justincormack/sys-in-getty
mount /sys in getty container and add and fix kernel tests
2017-06-12 09:29:44 -07:00
Magnus Skjegstad
24ec30e74c vpnkit-forwarder: add /pkg/vpnkit-forwarder
Adds /pkg/vpnkit-forwarder which downloads and builds vpnkit-forwarder
and vpnkit-expose-port from moby/vpnkit. Also includes an example for
forwarding `sshd` and updates the documentation for `hyperkit` to
include a `vpnkit` section.

`vpnkit` still requires a 9P mount for coordination, so the `socat`
forwarding is simpler to set up at the moment.

Signed-off-by: Magnus Skjegstad <magnus@skjegstad.com>
2017-06-12 14:46:48 +01:00
Justin Cormack
19b3beff9f Mount system /sys into getty container
Without this the mounts underneath here were not visible.

fix #2019

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-06-12 10:44:14 +02:00
Ken Cochrane
7dafc3be01 Added more AWS metadata to /var/config
Signed-off-by: Ken Cochrane <kencochrane@gmail.com>
2017-06-10 10:54:43 -04:00
Riyaz Faizullabhoy
8726adaa78 s/moby/linuxkit for run
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2017-06-08 17:10:14 -07:00
Riyaz Faizullabhoy
9c8e82734d fix disk size arg
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2017-06-08 17:09:52 -07:00
Avi Deitcher
f2cece3c61 Fix perms on /etc/init.d/000-issue
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2017-06-08 18:49:29 +03:00
Justin Cormack
e0dc6302a8 Merge pull request #1978 from deitch/gettyless-init
Remove all getty from init
2017-06-08 15:33:21 +01:00
Justin Cormack
513f661458 Clean up getty Makefile to match others
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-06-08 11:02:48 +01:00
Riyaz Faizullabhoy
33d66d380e Merge pull request #1994 from tych0/fix-pkg-builds
fix package builds in some cases
2017-06-07 17:49:32 -07: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
Tycho Andersen
cf9397786c fix up second rngd containerd->alpine typo
Signed-off-by: Tycho Andersen <tycho@docker.com>
2017-06-07 16:36:38 -06:00
Tycho Andersen
a208413ac0 fix package builds in some cases
0eb21735ae accidentally broke some package
builds by switching linuxkit/alpine to linuxkit/containerd. Let's revert
the ones that shouldn't be there.

Closes #1991

Signed-off-by: Tycho Andersen <tycho@docker.com>
2017-06-07 16:19:40 -06:00