Commit Graph

450 Commits

Author SHA1 Message Date
Avi Deitcher
643414f6f4 Add services.linuxkit warning to motd for sshd and getty
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2018-06-06 14:32:12 +03:00
Ian Campbell
525ff1c1a8 Bump packages to new alpine w/ containerd v1.1.1-rc.0
Signed-off-by: Ian Campbell <ijc@docker.com>
2018-06-01 14:09:05 +01:00
Rolf Neugebauer
1de059188b pkgs: Update packages to latest alpine base
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@gmail.com>
2018-05-12 13:18:03 +01:00
Ian Campbell
d563d78ac1 Bump packages to new alpine w/ containerd v1.1.0
Signed-off-by: Ian Campbell <ijc@docker.com>
2018-04-25 09:58:31 +01:00
Robin Winkelewski
ffe9ac2319 move pkg config from Dockerfile to build.yml
Signed-off-by: Robin Winkelewski <w9ncontact@gmail.com>
2018-04-24 00:59:09 +02:00
Ian Campbell
2aea82683e containerd: disable cri plugin by default
It complains/fails if CNI is not available.

Also drop two obsolete keys.

Signed-off-by: Ian Campbell <ijc@docker.com>
2018-04-18 13:20:51 +01:00
Ian Campbell
e8e28c27e9 Bump packages to new alpine w/ containerd v1.1.0-rc.2
Since we are building containerd v1.1.0 with go 1.10 (as it requires) to the
same for init and runc too for consistency. In the case of init it is actually
required since we use the containerd client library there.

The subreaper interfaces have been removed from containerd and replaced with a
similar interface in runc/libcontainer, update init to use that now.

Signed-off-by: Ian Campbell <ijc@docker.com>
2018-04-18 11:27:03 +01:00
Ian Campbell
3301af529c Avoid writing to tty devices which don't actually exist.
$ git diff linuxkit.yml
    diff --git a/linuxkit.yml b/linuxkit.yml
    index e2ec829db..21b84e4ad 100644
    --- a/linuxkit.yml
    +++ b/linuxkit.yml
    @@ -1,6 +1,6 @@
     kernel:
       image: linuxkit/kernel:4.14.32
    -  cmdline: "console=tty0 console=ttyS0 console=ttyAMA0"
    +  cmdline: "console=ttyS0 console=foobar"
     init:
       - linuxkit/init:v0.3
       - linuxkit/runc:v0.3
    $ linuxkit  build linuxkit.yml
    [...]
    $ linuxkit run linuxkit
    [...]
    getty: cmdline has console=foobar but /dev/foobar is not a character device; not starting getty for foobar

    linuxkit-2ae2c420a11c login: root (automatic login)

    Welcome to LinuxKit!

    NOTE: This system is namespaced.
    The namespace you are currently in may not be the root.
    (ns: getty) linuxkit-2ae2c420a11c:~# ls -l /proc/1/root/dev/foobar
    -rw-r--r--    1 root     root           311 Apr  9 13:19 /proc/1/root/dev/foobar
    (ns: getty) linuxkit-2ae2c420a11c:~# cat /proc/1/root/dev/foobar

    Welcome to LinuxKit

                            ##         .
                      ## ## ##        ==
                   ## ## ## ## ##    ===
               /"""""""""""""""""\___/ ===
              {                       /  ===-
               \______ O           __/
                 \    \         __/
                  \____\_______/

Also added quotes around $tty for good measure.

Signed-off-by: Ian Campbell <ijc@docker.com>
2018-04-09 14:26:49 +01:00
Rolf Neugebauer
2d00440351 pkg: Update to latest alpine base
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-04-05 14:05:39 +01:00
Ian Campbell
62d8e43fe4 Bump runc to version from containerd v1.0.3
Signed-off-by: Ian Campbell <ijc@docker.com>
2018-04-03 11:11:32 +01:00
Ian Campbell
98aed68d98 Bump packages to new alpine w/ containerd v1.0.3
Signed-off-by: Ian Campbell <ijc@docker.com>
2018-04-03 11:11:32 +01:00
Rolf Neugebauer
998eaa7dad pkg: Fix cgo CFLAGS for rngd
Go commit https://github.com/golang/go/issues/23672 introduced a
whitelist ofr flags passed into gcc to prevent arbitrary code
execution (CVE-2018-6574). The x86 rngd code uses two CFLAGS
not on the whitelist. Add them to 'CGO_CFLAGS_ALLOW'.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@gmail.com>
2018-03-24 09:23:15 +00:00
Rolf Neugebauer
7459bd1546 pkg: Disable cadvisor for s390x
I get a build error:

patching file build/build.sh
>> building assets
>> building binaries
>> building cadvisor
vendor/github.com/klauspost/crc32/crc32.go:157:10: undefined: updateCastagnoli
vendor/github.com/klauspost/crc32/crc32.go:159:10: undefined: updateIEEE
vendor/github.com/klauspost/crc32/crc32.go:182:48: undefined: updateIEEE
make: *** [Makefile:40: build] Error 2

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@gmail.com>
2018-03-23 21:00:37 +00:00
Rolf Neugebauer
68fb6d0951 pkg: Update kernel used for the firmware package
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@gmail.com>
2018-03-23 20:54:42 +00:00
Rolf Neugebauer
eb9e6cda93 pkg: Update to latest alpine base
This should enable s390x support for all package

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@gmail.com>
2018-03-23 20:20:13 +00:00
Pratik Mallya
8333ea0b5e Update README to include privileged flag
Without the privileged flag, the tcsd daemon does not have
access to the mounted host device files, especially the tpm
device file.

Signed-off-by: Pratik Mallya <pratik.mallya@gmail.com>
2018-03-06 01:32:04 -06:00
Avi Deitcher
cc57288b64 Add logging to /var/log for onboot containers
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2018-03-02 15:29:23 +02:00
Ian Campbell
1b07ca4d8c Bump runc to version from containerd v1.0.2
Signed-off-by: Ian Campbell <ijc@docker.com>
2018-02-14 13:10:42 +00:00
Ian Campbell
b72df17cb3 Bump packages to new alpine w/ containerd v1.0.2
Signed-off-by: Ian Campbell <ijc@docker.com>
2018-02-14 13:10:42 +00:00
Ian Campbell
3157ff9976 Bump packages to new alpine w/ containerd v1.0.2-rc.1
Signed-off-by: Ian Campbell <ijc@docker.com>
2018-02-07 09:50:19 +00:00
Ian Campbell
46b0ab3d9b Bump runc to version from containerd v1.0.2-rc.0
Signed-off-by: Ian Campbell <ijc@docker.com>
2018-01-31 09:43:25 +00:00
Ian Campbell
726f967f2d Bump packages to new alpine w/ containerd v1.0.2-rc.0
Signed-off-by: Ian Campbell <ijc@docker.com>
2018-01-31 09:41:49 +00:00
Rolf Neugebauer
1fadf13ec4 pkg: Allow specifying addition options to 'linuxkit' invocations
This is useful for 'make OPTIONS="-release=v0.1" push'

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-01-25 13:50:28 +00:00
Rolf Neugebauer
7cf2c5abf7 pkg: Update all packages to the latest linuxkit/alpine
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-01-25 13:42:33 +00:00
Rolf Neugebauer
9b208c3772 pkg/ip: Update package with latest WireGuard tools
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-01-24 11:44:17 +00:00
Justin Cormack
d4b23a76de Increase size of ARP cache
We already had this increased above the defaults, but even larger values
seem to be recommended.

See https://blog.openai.com/scaling-kubernetes-to-2500-nodes/

"It’s common to tune this setting in HPC clusters, and is particularly
relevant in Kubernetes clusters since every pod has its own IP address
which consumes space in the ARP cache."

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2018-01-19 11:02:17 +00:00
Justin Cormack
4b9ffadb2e Add support for runtime containerd namespace configuration
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2018-01-18 12:40:56 +00:00
Ian Campbell
a811110ad8 Bump packages to new alpine w/ containerd v1.0.1
Signed-off-by: Ian Campbell <ijc@docker.com>
2018-01-18 10:59:41 +00:00
Rolf Neugebauer
aa2791a6dd pkg/firmware-all: Add package containing all Linux Firmware blobs
This package is primarily for users of custom or foreign
kernels which may have drivers enabled for which the
'firmware' package does not contain the firmware blobs.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-01-16 19:08:19 +00:00
Rolf Neugebauer
1d9c4361c0 pkg/firmware: Add a package with firmware required by enabled device drivers
This new 'firmware' package contains the firmware blobs required
by the device drivers in a LinuxKit kernel. The list of required
blobs is determined by calling 'modinfo' on each module.

We also unconditionally include the AMD CPU microcode and the
licence files.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-01-16 19:08:18 +00:00
Avi Deitcher
c0ff9cf6f0 Merge pull request #2864 from deitch/fix-metadata-label
Add /run to binds and use newer yml label format
2018-01-16 11:36:49 +02:00
Avi Deitcher
0d4b2742e2 Add /run to binds and use newer yml label format
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2018-01-15 19:51:35 +02:00
Ian Campbell
779be8cff1 mount: Add missing argument to Printf
go_vet (via https://goreportcard.com/report/github.com/linuxkit/linuxkit)
reported:

    error: missing argument for Printf("%v"): format reads arg 2, have only 1 args (vet)
    error: wrong number of args for format in Printf call: 2 needed but 3 args (vet)

Signed-off-by: Ian Campbell <ijc@docker.com>
2018-01-15 17:24:36 +00:00
Ian Campbell
826ee28c8d metadata: print Entry objects with %+v not %s
go_vet (via https://goreportcard.com/report/github.com/linuxkit/linuxkit)
reported:

    error: arg current for printf verb %s of wrong type: main.Entry (vet)

For each of these.

Signed-off-by: Ian Campbell <ijc@docker.com>
2018-01-15 17:24:36 +00:00
Ian Campbell
a4230b74aa init: print integer with %d not %s
go_vet (via https://goreportcard.com/report/github.com/linuxkit/linuxkit)
reported:

    error: arg resource for printf verb %s of wrong type: int (vet)

Signed-off-by: Ian Campbell <ijc@docker.com>
2018-01-15 17:24:36 +00:00
Avi Deitcher
2af908d1b7 Move metadata to /run instead of /var
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2018-01-15 14:23:03 +02:00
Ian Campbell
e0b871560a Bump to runc 7f24b40cc5423 as used by containerd v1.0.1-rc.0
Signed-off-by: Ian Campbell <ijc@docker.com>
2018-01-12 10:51:34 +00:00
Ian Campbell
913e6420ba Bump packages to new alpine w/ containerd v1.0.1-rc.0
Signed-off-by: Ian Campbell <ijc@docker.com>
2018-01-12 10:51:01 +00:00
Ian Campbell
965c678f9c Merge pull request #2845 from ijc/example-hostmount-writeable-overlay
Add an example of setting up a writeable overlay of a host path
2018-01-11 16:03:15 +00:00
Rolf Neugebauer
e3284d50e0 Merge pull request #2847 from w9n/nvme
format: fix for nvme
2018-01-11 14:21:03 +00:00
Ian Campbell
794ea7ed72 Make runtime.mounts[].destination relative to container rootfs
This is similar to ae64ab6b82 from #2849 which
did the same for runtime.mkdir.

This makes it possible to specify both host (absolute) or container (relative)
paths.

Signed-off-by: Ian Campbell <ijc@docker.com>
2018-01-11 12:58:09 +00:00
Robin Winkelewski
bd20f419bf format: fix for nvme
Signed-off-by: Robin Winkelewski <w9ncontact@gmail.com>
2018-01-11 11:43:53 +01:00
Justin Cormack
ae64ab6b82 Make relative paths in runtime mkdir be relative to container rootfs
Currently all paths were treated as absolute paths.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2018-01-10 14:58:49 +00:00
Justin Cormack
a4a332f39a Use logrus not log for logging consistently
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2018-01-10 14:28:50 +00:00
Stephen J Day
fbbab9eafd pkg/init/cmd/service: plumb containerd namespace
This PR correctly plumbs a single context to propagate the containerd
namespace to the necessary commands. Services launched with containerd
after this change will now be in a default namespace of
`services.linuxkit`.

A top-level flag is added to the service command,
`--containerd-namespace` which can be used to change, if needed.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2018-01-05 14:45:19 -08:00
Tobias Klauser
642c6f23ac Use pure Go unix.Reboot function in rc.init
Use unix.Reboot from golang.org/x/sys/unix for poweroff and reboot
instead of relying on external commands.

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2018-01-04 13:16:28 +01:00
isaac.rodman
6ac2ab8924 pkg/sysctl fixes: support commented KV lines, no post-crit KV set skips, support adding sysctl .conf files
- Previously, KV lines which were commented would attempt to be set. Now any commented KV lines will also be ignored.
- Comments can start with a hash or semicolon
- Splitting KV on both period and forward slash
- Some kernels may not have certain features enabled (such as IPv6) in the default etc/sysctl.d/*.conf, and thus pkg/sysctl would only set the KV until the first failure, and then silently skip the rest of the KVs. Now any failure is logged as a WARN, and those lines can now be commented per the above change, as they will be identified.

Signed-off-by: Isaac Rodman <isaac@eyz.us>
2018-01-02 07:33:13 -07:00
Rolf Neugebauer
720fb219ce pkg/sysctl: Prevent ebpf privilege escalation
On 4.9.x and 4.14.x kernels ebpf verifier bugs allow ebpf
programs to access (read/write) random memory. Setting
kernel.unprivileged_bpf_disabled=1 mitigates this somewhat
until it is fixed upstream.

See:
- https://lwn.net/Articles/742170
- https://lwn.net/Articles/742169

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-12-25 15:32:57 +01:00
Ian Campbell
abf0a5d098 auditd: Use package from alpine 3.7
This was added to alpine since our package was created. Now we have upgraded we
can just use the binary.

The package contains an auditd.conf but we have a tweak local copy which writes
to stdio (which goes to /var/log/auditd.*.log already). The package doesn't
have an audit.rules so keep that here too.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-12-15 11:07:55 +00:00
Ian Campbell
de242facca auditd: move config into build.yml
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-12-15 10:16:37 +00:00