1333 Commits
v0.7 ... v1.6.4

Author SHA1 Message Date
Avi Deitcher
50120bce2d ensure that new index does not break on missing lock file (#4134)
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-06-27 11:01:43 +03:00
Avi Deitcher
254aefc953 check for dirty tree without update-index, which is not parallel-safe (#4133)
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-06-26 19:53:13 +03:00
Avi Deitcher
4df360d62d Centralize safe cache writes (#4132)
* centralize all writing of the index.json to one place

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* create filelock utility

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* leverage file locks for cache index.json

Signed-off-by: Avi Deitcher <avi@deitcher.net>

---------

Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-06-26 19:02:49 +03:00
christoph-zededa
3f54a80824 git: synchronize update-index with a mutex (#4130)
if `pkglib.NewFromConfig` is used in parallel, it calls
```
git -C /some/directory update-index -q --refresh
```
in parallel.

But `git` does not like this and exits with 128.

This can be easily tried with:
```
git -C /some/dir update-index -q --refresh & \
git -C /some/dir update-index -q --refresh
```

Signed-off-by: Christoph Ostarek <christoph@zededa.com>
2025-06-25 21:59:47 +03:00
Avi Deitcher
d45d3e8c6e more builder race condition; do restart if could not remove, and only go via container ID (#4129)
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-06-25 21:21:51 +03:00
Avi Deitcher
5a13eda661 Bump buildkit (#4128)
* bump buildkit to v0.23.1

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* bump buldkit library and deps to v0.23.1

Signed-off-by: Avi Deitcher <avi@deitcher.net>

---------

Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-06-25 14:07:15 +03:00
Avi Deitcher
18a76198dd pkg build: handle race condition where builder is started at same time (#4127)
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-06-25 10:09:46 +03:00
Carsten Munk
b42e1a8bab feat: add riscv64 as supported arch (#4124)
this makes kernel+squashfs flow work for risc64

Signed-off-by: Carsten Munk <carsten@zippie.com>
2025-06-23 12:21:59 +03:00
Avi Deitcher
89a95f958e when updating an index, remove sboms or other manifests that reference unknown digests (#4117)
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-05-02 13:56:37 +03:00
Avi Deitcher
7a129b6e8d bump golangci-lint to v2.0.2 and update all lint issues (#4116)
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-04-09 17:53:20 +03:00
Chris Irrgang
ec70c1246f add efi_gop module to grub (#4113)
* add efi_gop module to grub

fixes #4075

Signed-off-by: Chris Irrgang <chris.irrgang@gmx.de>

* bump grub-dev package hash

Signed-off-by: Chris Irrgang <chris.irrgang@gmx.de>

* bump grub package hash

Signed-off-by: Chris Irrgang <chris.irrgang@gmx.de>

* bump mkimage hashes

Signed-off-by: Chris Irrgang <chris.irrgang@gmx.de>

---------

Signed-off-by: Chris Irrgang <chris.irrgang@gmx.de>
2025-03-11 21:13:19 +02:00
Avi Deitcher
14c29db5c2 Containerd v2.0.3 (#4112)
* containerd to semver v2.0.3

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* containerd v2.0.3 plus commits to fix blkdiscard

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* update containerd-dev dependencies

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* updated pkg/init and pkg/containerd deps

Signed-off-by: Avi Deitcher <avi@deitcher.net>

---------

Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-03-06 17:12:07 +02:00
Avi Deitcher
198db9089f containerd 20 (#4100)
* bump containerd-dev to 2.0.2

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* update pkg/init libs to containerd-20

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* bump linuxkit CLI containerd deps to 20

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* update test/pkg/containerd to work with containerd v2.x tests

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* update containerd-dev deps

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* update pkg/init and pkg/containerd dependencies

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* update test/pkg/containerd deps

Signed-off-by: Avi Deitcher <avi@deitcher.net>

---------

Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-02-24 18:40:56 +02:00
Avi Deitcher
1d96f04934 Buildkit builder 0.20.0 (#4110)
* bump buildkit version to 0.20.0

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* update library dependency of buildkit to v0.20.0

Signed-off-by: Avi Deitcher <avi@deitcher.net>

---------

Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-02-23 17:51:21 +02:00
Avi Deitcher
5dbd8082fb bump golangci-lint-action (#4109)
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-02-23 16:40:29 +02:00
Avi Deitcher
2053d17564 Enable riscv64 default (#4108)
* include riscv64 in target architectures

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* add riscv64 to explicit packages

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* cadvisor update to v0.51.0 and support for riscv64

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* update tools based on latest

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* updated example dependencies of tools

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* bump all test cases and example alpine:3.19 to alpine:3.21

Signed-off-by: Avi Deitcher <avi@deitcher.net>

---------

Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-02-23 13:37:06 +02:00
Avi Deitcher
18e7eea86f riscv64 kernel (#4106)
* add riscv64 kernels to kernel/Makefile and kernel/Dockerfile.*, riscv64 kernel config, bump alpine version for kernel builds

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* update bcc to v0.32.0 to include needed fixes

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* bump kernel builder alpine base to version including llvm19

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* in kernel-bcc, automatically determine python path

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* in kernel-perf, suppress newer gcc errors

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* riscv path in kernel build was incorrect

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* remove bcc compilation from kernel

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* update usages of kernel/6.6.13 to kernel/6.6.71

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* next run of updating kernel config

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* update test dependencies on kernel hash version

Signed-off-by: Avi Deitcher <avi@deitcher.net>

---------

Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-02-21 11:10:35 +02:00
Avi Deitcher
efb139697e always tee test linuxkit run to tty, so if it gets stuck, we see why (#4107)
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-02-19 19:41:06 +02:00
Avi Deitcher
76b519705b Add alpine bcc tools (#4105)
* Update linuxkit/alpine

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* tools/alpine: Update to latest

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* tools: Update to the latest linuxkit/alpine

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* Update use of tools to latest

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* tests: Update packages to the latest linuxkit/alpine

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* Update use of test packages to latest

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* pkgs: Update packages to the latest linuxkit/alpine

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* Update package tags

Signed-off-by: Avi Deitcher <avi@deitcher.net>

---------

Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-02-17 11:12:49 +02:00
Chris Irrgang
7ac34a6aec pkg/extend fix panic for empty partition tables (#4101)
Signed-off-by: Chris Irrgang <chris.irrgang@gmx.de>
2025-01-30 15:55:14 +02:00
Chris Irrgang
66ca00915a Try resizing all found devices (#4099)
* Try resizing all found devices

fixes #4098

Signed-off-by: Chris Irrgang <chris.irrgang@gmx.de>

* Update package tags of pkg/extend

Signed-off-by: Chris Irrgang <chris.irrgang@gmx.de>

---------

Signed-off-by: Chris Irrgang <chris.irrgang@gmx.de>
2025-01-27 11:24:45 +02:00
Chris Irrgang
fd6839d0fe Fix raw efi build image size calculation (#4097)
fixes #4095

Signed-off-by: Chris Irrgang <chris.irrgang@gmx.de>
2025-01-27 10:26:18 +02:00
Avi Deitcher
9398785bec Merge pull request #4094 from deitch/alpine-llvm-update
Update llvm in alpine and downstream
2025-01-15 21:36:39 +02:00
Avi Deitcher
fd778c4d95 Update use of test packages to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-15 17:31:39 +02:00
Avi Deitcher
caf39bbfff Update use of tools to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-15 17:31:19 +02:00
Avi Deitcher
53cb098008 add riscv64 to mkimage-qcow2-efi
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-15 17:25:31 +02:00
Avi Deitcher
da2988c634 Update use of test packages to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-15 15:58:15 +02:00
Avi Deitcher
4aa891d564 Update use of tools to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-15 15:58:01 +02:00
Avi Deitcher
5c2e62d2b9 Update package tags
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-15 14:59:47 +02:00
Avi Deitcher
ed42bcdd5e pkgs: Update packages to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-15 14:59:27 +02:00
Avi Deitcher
f1117657eb Update use of test packages to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-15 14:59:18 +02:00
Avi Deitcher
9b5742fe4b tests: Update packages to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-15 14:59:10 +02:00
Avi Deitcher
d83a55fce3 Update use of tools to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-15 14:59:08 +02:00
Avi Deitcher
084e2a08bc tools: Update to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-15 14:58:59 +02:00
Avi Deitcher
bdda3d0ad3 tools/alpine: Update to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-15 14:56:21 +02:00
Avi Deitcher
c4d88d66db Update linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-15 14:41:33 +02:00
Avi Deitcher
5e3e7cc077 Merge pull request #4093 from deitch/unify-alpine-packages
add missing riscv64 packages
2025-01-12 11:06:35 +02:00
Avi Deitcher
95fcdc3fe0 node_exporter to v1.8.2
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-12 09:51:01 +02:00
Avi Deitcher
0b677673b5 Update package tags
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-10 10:56:54 +02:00
Avi Deitcher
3e2df7ec19 pkgs: Update packages to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-10 10:56:32 +02:00
Avi Deitcher
0edde24ef6 Update use of test packages to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-10 10:56:23 +02:00
Avi Deitcher
e625d0cdbc tests: Update packages to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-10 10:56:15 +02:00
Avi Deitcher
68caa0b911 Update use of tools to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-10 10:56:13 +02:00
Avi Deitcher
a7baaaa4cc tools: Update to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-10 10:56:03 +02:00
Avi Deitcher
c7c3ab8c2a tools/alpine: Update to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-10 10:55:17 +02:00
Avi Deitcher
7270857bdf Update linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-10 10:40:27 +02:00
Avi Deitcher
b929f3b46a Merge pull request #4091 from deitch/remove-grub-dev
Add grub from alpine replacing our custom built grub, and build grub for riscv64
2025-01-09 11:56:09 +02:00
Avi Deitcher
df4d0c0d47 update built-in images in linuxkit cmd
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-09 11:08:02 +02:00
Avi Deitcher
0579188c33 Update package tags
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-08 20:54:27 +02:00
Avi Deitcher
810e3c1fa8 pkgs: Update packages to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-08 20:54:08 +02:00
Avi Deitcher
6cbd483b5c Update use of test packages to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-08 20:54:01 +02:00
Avi Deitcher
6f46c2060b tests: Update packages to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-08 20:53:52 +02:00
Avi Deitcher
da5fefe094 Update use of tools to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-08 20:53:50 +02:00
Avi Deitcher
48f5de7595 tools: Update to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-08 20:53:40 +02:00
Avi Deitcher
89ed0f5089 remove grub-dev in favour of grub package
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-08 20:51:36 +02:00
Avi Deitcher
35ab64822d update alpine install docs with riscv64 and no grub-dev
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-08 19:37:04 +02:00
Avi Deitcher
1c11777daf tools/alpine: Update to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-08 19:34:54 +02:00
Avi Deitcher
94d490235c Update linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-08 19:25:21 +02:00
Avi Deitcher
cfdeb545b1 Merge pull request #4090 from deitch/alpine-321-with-riscv64
Alpine 321 with riscv64
2025-01-07 22:13:37 +02:00
Avi Deitcher
d1b42ca0a8 update example for tss
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-07 21:44:21 +02:00
Avi Deitcher
0db6e01134 bump alpine in some test cases
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-07 18:50:59 +02:00
Avi Deitcher
4e384a86a4 fix tss compilation with patches
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-07 18:50:59 +02:00
Avi Deitcher
4165491275 Update package tags
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-07 18:50:58 +02:00
Avi Deitcher
67d6dad48a pkgs: Update packages to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-07 18:50:07 +02:00
Avi Deitcher
db23fd9056 Update use of test packages to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-07 18:49:29 +02:00
Avi Deitcher
41ddfa054f tests: Update packages to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-07 18:48:48 +02:00
Avi Deitcher
fb54321715 Update use of tools to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-07 18:47:25 +02:00
Avi Deitcher
bd30821cbf tools: Update to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-07 18:44:48 +02:00
Avi Deitcher
b7cc91e875 include riscv64 in push-manifest script
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-07 18:43:34 +02:00
Avi Deitcher
709a945207 tools/alpine: Update to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-07 18:43:32 +02:00
Avi Deitcher
59c3f62102 Update linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2025-01-07 13:22:39 +02:00
Avi Deitcher
dc8c6d5985 Merge pull request #4089 from deitch/tag-in-build-yml
support --tag in build.yml for packages
2024-12-23 18:00:06 +02:00
Avi Deitcher
4f765b5da0 support --tag in build.yml for packages
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-12-23 17:28:49 +02:00
Avi Deitcher
ad95c6fc2e Merge pull request #4085 from deitch/volume-image
additional volume support in building
2024-10-01 15:57:17 +03:00
Avi Deitcher
76f4802ccf additional volume support in building
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-10-01 15:27:55 +03:00
Avi Deitcher
e4d41061b6 Merge pull request #4084 from deitch/cache-platform-instead-of-arch
internal restructure to use explicit platform instead of implicit arch in cache
2024-10-01 15:14:21 +03:00
Avi Deitcher
81f0c3eff2 internal restructure to use explicit platform instead of implicit arch in cache
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-10-01 14:30:03 +03:00
Avi Deitcher
5e3f7dd9a5 Merge pull request #4083 from deitch/restructure-logging
restructure logging
2024-10-01 14:00:06 +03:00
Avi Deitcher
67e9e22a36 restructure logging
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-10-01 12:50:43 +03:00
Avi Deitcher
8556f024ef Merge pull request #4082 from kolyshkin/moby-cap
vendor: switch to moby/sys/capability
2024-10-01 11:07:29 +03:00
Kir Kolyshkin
da3be29998 vendor: switch to moby/sys/capability
github.com/moby/sys/capability is a fork of the (no longer maintained)
github.com/syndtr/gocapability package.

For changes since the fork took place, see
https://github.com/moby/sys/blob/main/capability/CHANGELOG.md

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2024-09-30 18:10:16 -07:00
Avi Deitcher
d7a6bc8899 Merge pull request #4077 from deitch/docker-bump
bump docker deps to v27.2.0
2024-09-08 13:00:19 +03:00
Avi Deitcher
2159aacb09 bump docker deps to v27.2.0
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-09-08 12:22:57 +03:00
Avi Deitcher
fa3207c86e Merge pull request #4072 from christoph-zededa/docker_cache_consider_architecture
moby: check architecture for docker image
2024-08-29 22:15:19 +03:00
Avi Deitcher
1d6d5fa612 Merge pull request #4074 from deitch/efi-kernel
remove linuxefi grub EFI handover to normal linux loading
2024-08-29 21:13:48 +03:00
Avi Deitcher
ba25e59640 remove linuxefi grub EFI handover to normal linux loading
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-08-29 17:30:57 +03:00
Avi Deitcher
6979859e76 Merge pull request #4073 from deitch/init-debug-no-control
use only stdout/stderr or file for runc output
2024-08-28 15:28:33 +03:00
Avi Deitcher
5848a2856f use only stdout/stderr or file for runc output
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-08-28 14:45:26 +03:00
Christoph Ostarek
cb8f36adf3 moby: check architecture for docker image
under certain cases the container image is already in the local docker
registry, but with the wrong architecture; in this case just pretend
it is not there and let the caller decide if they want to build it

Signed-off-by: Christoph Ostarek <christoph@zededa.com>
2024-08-27 15:49:21 +02:00
Avi Deitcher
5f09346e1e Merge pull request #4070 from deitch/verbose-runc
more verbose runc messages
2024-08-22 20:55:44 +03:00
Avi Deitcher
15c808c4ee more verbose runc messages
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-08-22 20:23:44 +03:00
Avi Deitcher
745da8f4c0 Merge pull request #4069 from deitch/fix-ro-volumes
when building read-only volumes, still use overlayfs
2024-08-22 19:20:35 +03:00
Avi Deitcher
b36cad081b when building read-only volumes, still use overlayfs
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-08-22 18:49:08 +03:00
Avi Deitcher
370bf51cdf Merge pull request #4067 from deitch/runc-debug-options
support cmdline-driven debugging mode for runc
2024-08-22 15:53:46 +03:00
Avi Deitcher
2af30c5503 support cmdline-driven debugging mode for runc
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-08-22 15:14:35 +03:00
Avi Deitcher
270fd1c5aa Merge pull request #4066 from deitch/ssh-support
support for pkg build ssh
2024-07-28 13:32:42 +03:00
Avi Deitcher
51727db254 support for pkg build ssh
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-07-28 11:39:55 +03:00
Avi Deitcher
34304b1e63 Merge pull request #4065 from deitch/volumes
Volumes
2024-07-21 20:33:02 +03:00
Avi Deitcher
38a0cb6376 test cases for volumes
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-07-21 20:02:40 +03:00
Avi Deitcher
a5085fc9ea pkg/init support for volumes
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-07-21 17:48:39 +03:00
Avi Deitcher
b953d1781c add support for volumes
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-07-21 17:48:38 +03:00
Avi Deitcher
fa08581fd5 Merge pull request #4064 from deitch/containerd-config-2
containerd config.toml v2
2024-07-19 09:54:34 +03:00
Avi Deitcher
d665a978a1 containerd config.toml v2
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-07-18 22:01:15 +03:00
Avi Deitcher
d68494ba4b Merge pull request #4063 from deitch/bump-containerd-1.7.20
containerd to 1.7.20
2024-07-18 21:40:39 +03:00
Avi Deitcher
55e13c914e containerd to 1.7.20
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-07-18 20:51:31 +03:00
Avi Deitcher
c3c6dc7735 Merge pull request #4062 from deitch/debug-containerd
include example for debugging containerd
2024-07-17 14:30:46 +03:00
Avi Deitcher
5d9f3e0aa0 include example for debugging containerd
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-07-17 14:29:29 +03:00
Avi Deitcher
690a4eecb5 Merge pull request #4061 from deitch/multi-pkg-deps
Multi pkg deps
2024-07-16 18:33:59 +03:00
Avi Deitcher
cd65ec385b Merge pull request #4060 from deitch/linuxkit-deps
bump docker deps in linuxkit binary
2024-07-16 12:58:01 +03:00
Avi Deitcher
f13aee1041 update rngd/extend/init usage in yml
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-07-16 12:29:10 +03:00
Avi Deitcher
315a1dbf20 pkg/extend bump x/sys version
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-07-16 12:24:48 +03:00
Avi Deitcher
7ac157e61b pkg/host-timesync-daemon bump x/sys version
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-07-16 12:23:24 +03:00
Avi Deitcher
53f848a229 pkg/rngd bump x/sys version
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-07-16 12:23:23 +03:00
Avi Deitcher
4ad55951e1 bump docker deps in linuxkit binary
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-07-16 12:15:22 +03:00
Avi Deitcher
5d940f4770 Merge pull request #4059 from deitch/more-init-alerts
bump pkg/init containerd, runc and image-spec to fix CVEs
2024-07-16 12:07:32 +03:00
Avi Deitcher
1fe9d0ea76 bump pkg/init containerd, runc and image-spec to fix CVEs
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-07-16 10:55:01 +03:00
Avi Deitcher
7b114bfa36 Merge pull request #4058 from deitch/init-security-alerts
update package versions and go version for pkg/init
2024-07-16 09:50:54 +02:00
Avi Deitcher
6bbda93914 update package versions and go version for pkg/init
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-07-16 10:11:23 +03:00
Avi Deitcher
e6ffc8a8f3 Merge pull request #4057 from deitch/build-targets-all-not-macos
make targets separated by OS
2024-07-11 19:03:20 +02:00
Avi Deitcher
e6ac960951 make targets separated by OS
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-07-11 18:09:48 +02:00
Avi Deitcher
933445f071 Merge pull request #4056 from deitch/handle-cross-compilation-macos
separate release builds of macOS CGO from others
2024-07-11 17:24:05 +02:00
Avi Deitcher
7acc8262f2 separate release builds of macOS CGO from others
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-07-11 16:55:51 +02:00
Avi Deitcher
bfac135e4e Merge pull request #4055 from deitch/include-semver-in-version
properly save linuxkit version
2024-07-11 15:41:20 +02:00
Avi Deitcher
8bb9174b28 properly save linuxkit version
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-07-11 15:16:26 +02:00
Avi Deitcher
8d76ae282f Merge pull request #4054 from christoph-zededa/fix_build_command_args
cmd: allow more than one config yaml for build
2024-07-10 19:00:52 +03:00
Christoph Ostarek
04dc9042cf cmd: allow more than one config yaml for build
according to the documentation the following command is valid:
`linuxkit build equinixmetal.yml equinixmetal.arm64.yml`
(docs/platform-equinixmetal.md)

So, make it valid.

Signed-off-by: Christoph Ostarek <christoph@zededa.com>
2024-07-10 17:24:53 +02:00
Avi Deitcher
c90f2ee8f2 Merge pull request #4052 from deitch/packet-to-metal
Packet to metal
2024-07-07 16:39:18 +03:00
Avi Deitcher
ad4c97c430 switch linuxkit from deprecated packngo to equinixmetal go-sdk
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-07-05 17:57:48 +03:00
Avi Deitcher
8f6ea3c85e switch Packet references to Equinix Metal
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-07-05 17:22:25 +03:00
Avi Deitcher
3f80ca694f Merge pull request #4049 from danrzs/master
ensured dumpFollow of logread includes 'follow' behaviour
2024-07-03 19:57:34 +03:00
Daniel Smith
cda7577e3c ensured dumpFollow of logread includes 'follow' behaviour
Signed-off-by: Daniel Smith <daniel@razorsecure.com>
2024-07-03 13:55:46 +01:00
Avi Deitcher
be7dfdd42c Merge pull request #4046 from jalaziz/4045
Improve support for third-party registry images
2024-06-24 11:08:04 -07:00
Jameel Al-Aziz
21e9f0fa1c add tests
Signed-off-by: Jameel Al-Aziz <jameel@bastion.io>
2024-06-22 01:58:37 -04:00
Jameel Al-Aziz
5e42d050a7 Improve support for third-party registry images
Update `ReferenceExpand` to support image references from remote
registries. This fixes local image lookup and pulling with newer
versions of Docker.

fixes #4045

Signed-off-by: Jameel Al-Aziz <jameel@bastion.io>
2024-06-18 21:57:51 -07:00
Avi Deitcher
4f89f4f67e Merge pull request #4043 from deitch/buildkit-bump 2024-06-11 18:29:11 +03:00
Avi Deitcher
977afa7510 remove no longer necessary rand.Seed
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-06-11 17:42:55 +03:00
Avi Deitcher
7c46ac8c5d bump buildkit to latest v0.13.2 with deps
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-06-11 15:55:42 +03:00
Avi Deitcher
f48e442a46 Merge pull request #4044 from deitch/go-1.22
bump actions/setup-go to v5 and go-version to 1.22.3
2024-06-11 15:55:13 +03:00
Avi Deitcher
4c3d189a1a bump actions/setup-go to v5 and go-version to 1.22.3
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-06-11 15:20:58 +03:00
Avi Deitcher
9e06024567 Merge pull request #4040 from deitch/export-formats
add cache export format OCI
2024-05-16 15:48:20 +03:00
Avi Deitcher
f5dcefc7c2 add cache export format OCI
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-05-16 14:38:19 +03:00
Avi Deitcher
6d37353ca1 Merge pull request #4039 from deitch/split-moby
move moby components that do not have runtime dependencies to own directory
2024-05-07 20:27:35 +03:00
Avi Deitcher
379617ca0d move moby components that do not have runtime dependencies to own directory
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-05-07 19:51:25 +03:00
Avi Deitcher
b49e32af98 Merge pull request #4036 from deitch/fix-action-script-v7 2024-04-28 16:30:14 +03:00
Avi Deitcher
5299f948e3 use proper path for github-script properties
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-04-28 15:56:53 +03:00
Avi Deitcher
e171750da6 Merge pull request #4035 from deitch/action-script-v7 2024-04-28 15:25:33 +03:00
Avi Deitcher
c32c74bc1d github script v7
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-04-28 14:43:52 +03:00
Avi Deitcher
d3257af256 Merge pull request #4034 from deitch/token-for-actions 2024-04-28 13:58:27 +03:00
Avi Deitcher
2578ae23c6 explicitly use GITHUB_TOKEN for actions script
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-04-28 12:58:10 +03:00
Avi Deitcher
38e62bb61d Merge pull request #4033 from jacobweinstock/cgroupsv2-as-default
Make cgroups v2 the default in the init pkg
2024-04-28 11:45:00 +03:00
Jacob Weinstock
2fe19f7561 Update dependencies
Signed-off-by: Jacob Weinstock <jakobweinstock@gmail.com>
2024-04-27 15:40:30 -06:00
Jacob Weinstock
803747f01a Make cgroups v2 the default:
cgroups v2 has been out since 2015. Not having
to set a kernel parameter helps improve the user
experience by not requiring it when it is required
by services in a build. Making this the default was
discussed back in 2021.

Signed-off-by: Jacob Weinstock <jakobweinstock@gmail.com>
2024-04-27 15:40:00 -06:00
Avi Deitcher
8afecd5204 Merge pull request #4031 from deitch/update-actions
bump actions to v4 to avoid deprecation
2024-04-25 12:19:07 +03:00
Avi Deitcher
e6b0ae05eb Merge pull request #4030 from deitch/canonicalize-pull
use canonical ref when looking in cache
2024-04-25 11:50:19 +03:00
Avi Deitcher
04792e0d44 bump actions to v4 to avoid deprecation
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-04-25 11:44:38 +03:00
Avi Deitcher
c836e54d22 use canonical ref when looking in cache
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-04-24 15:00:39 +03:00
Avi Deitcher
bc5d08d6a3 Merge pull request #4028 from largemouth/master
chore: fix function name in comment
2024-04-24 13:27:34 +03:00
largemouth
4ce13640cd chore: fix function name in comment
Signed-off-by: largemouth <largemouth@aliyun.com>
2024-04-22 19:45:14 +08:00
Avi Deitcher
cea4c0d419 Merge pull request #4027 from deitch/not-same-file
prevent using same file for input tar and output tar
2024-04-21 13:55:30 +03:00
Avi Deitcher
dc12b9be69 prevent using same file for input tar and output tar
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-04-21 13:19:57 +03:00
Avi Deitcher
dd1ae909d6 Merge pull request #4026 from deitch/increment-tar-output
add support for input-tar
2024-04-19 17:08:03 +03:00
Avi Deitcher
632b4065d4 add support for input-tar
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-04-19 16:30:06 +03:00
Avi Deitcher
a610332100 Merge pull request #4025 from deitch/tag-sources-in-tar
include image reference as source in every tar file header
2024-04-18 16:34:05 +03:00
Avi Deitcher
1fe8cba107 include image reference as source in every tar file header
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-04-18 16:03:34 +03:00
Avi Deitcher
47d02ecd61 Merge pull request #4024 from deitch/fix-kernel-tools-build
fix kernel tools build.yml files to reflect correct dockerfiles
2024-04-17 11:41:18 +03:00
Avi Deitcher
4d212000ec fix kernel tools build.yml files to reflect correct dockerfiles
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-04-16 19:30:28 +03:00
Avi Deitcher
9e18c9247c Merge pull request #4023 from deitch/commit-tag-arg
add tag to args passed for package builds
2024-04-16 15:14:25 +03:00
Avi Deitcher
6af6291afe add tag to args passed for package builds
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-04-16 13:52:49 +03:00
Avi Deitcher
de79880fff Merge pull request #3960 from Fabsolute/fix-disk-parameter-for-virtualization 2024-04-12 16:50:03 +02:00
Fabsolute
f2240fbeea FIX disk parameter usage
Signed-off-by: Fabsolute <ahmetturk93@gmail.com>
2024-04-12 16:07:30 +02:00
Avi Deitcher
b7bb183d49 Merge pull request #4020 from christoph-zededa/fix_doc_build_iso-efi
README.md: fix format parameter
2024-03-20 09:10:12 +01:00
Christoph Ostarek
6a7cea9dbd README.md: fix format parameter
linuxkit build expects '--format' or '-f' and not
'-format'

Signed-off-by: Christoph Ostarek <christoph@zededa.com>
2024-03-19 18:01:22 +01:00
Avi Deitcher
3ff5dac063 Merge pull request #4018 from christoph-zededa/fix_pulling_from_localhost_registry
util: allow pulling from local registry
2024-03-17 00:57:54 -07:00
Christoph Ostarek
4496612c70 util: allow pulling from local registry
before a command like
linuxkit cache pull 127.0.0.1:5000/pkgalpine

would result in trying to pull the following image:
docker.io/127.0.0.1:5000/pkgalpine

and this is wrong

Signed-off-by: Christoph Ostarek <christoph@zededa.com>
2024-03-15 18:36:31 +01:00
Avi Deitcher
1b1007a9da Merge pull request #4017 from deitch/pkg-release-cmds
missing pipe in package_release workflow
2024-03-11 08:57:55 -07:00
Avi Deitcher
c3b151ea42 missing pipe in package_release workflow
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-03-11 17:21:22 +02:00
Avi Deitcher
7952421e2b Merge pull request #4016 from deitch/next-fix-releases
fix pkg-release flow for building linuxkit
2024-03-11 08:18:50 -07:00
Avi Deitcher
88ff3ac7a7 fix pkg-release flow for building linuxkit
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-03-11 16:47:12 +02:00
Avi Deitcher
719ae0082a Merge pull request #4015 from deitch/pkg-tag-workflow
ensure package release flow is picked up
2024-03-11 07:41:41 -07:00
Avi Deitcher
15730ea617 ensure package release flow is picked up
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-03-11 14:19:07 +02:00
Avi Deitcher
55963aa26f Merge pull request #4014 from deitch/fix-release-pkgs
fix pkg release action workflow
2024-03-11 03:30:17 -07:00
Avi Deitcher
14f5433943 fix pkg release action workflow
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-03-11 11:34:34 +02:00
Avi Deitcher
10bbf86397 Merge pull request #4013 from deitch/pkg-release
add support for pkg release tags
2024-03-11 01:55:24 -07:00
Avi Deitcher
4df07ddb6e add support for pkg release tags
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-03-11 10:07:43 +02:00
Avi Deitcher
b8b00e8c82 Merge pull request #4012 from deitch/remote-tag-with-copy
remote-tag enable copying across repositories and registries
2024-03-06 03:55:22 -08:00
Avi Deitcher
51696d2905 remote-tag enable copying across repositories and registries
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-03-06 13:23:19 +02:00
Avi Deitcher
0d89422386 Merge pull request #4011 from deitch/kernel-push-builder
Kernel push builder
2024-03-06 01:58:21 -08:00
Avi Deitcher
3087e9055a fix builder image tagging using new remote-tag option of linuxkit
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-03-06 11:28:38 +02:00
Avi Deitcher
17ed8938e0 kernel builder handle push properly
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-03-06 10:45:21 +02:00
Avi Deitcher
67afa5d380 Merge pull request #4010 from deitch/remote-tag-rename
add pkg remote-tag option to tag descriptors remotely without pulling…
2024-03-06 00:44:59 -08:00
Avi Deitcher
58b7ae5b66 add pkg remote-tag option to tag descriptors remotely without pulling and pushing
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-03-06 10:14:28 +02:00
Avi Deitcher
70ae026b5d Merge pull request #4009 from deitch/cache-push-nopush-option
cache push only overrides remote if explicit
2024-03-05 10:37:56 -08:00
Avi Deitcher
71096c4301 cache push only overrides remote if explicit
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-03-05 20:05:01 +02:00
Avi Deitcher
60da9b92e4 Merge pull request #4008 from deitch/kernel-publish-ci
make kernel read/build and check part of CI
2024-03-05 08:27:34 -08:00
Avi Deitcher
2389221c4a make kernel read/build and check part of CI
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-03-05 17:49:28 +02:00
Avi Deitcher
17f5ecaefd Merge pull request #4007 from deitch/fix-update-component-too-broad-match
Fix update component too broad match
2024-03-05 00:16:15 -08:00
Avi Deitcher
533d582bad update 6.6.x test hash versions
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-03-04 21:33:23 +02:00
Avi Deitcher
3d0cd9d5da properly handle sed for update-component-sha.sh
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-03-04 21:32:19 +02:00
Avi Deitcher
470a9287e6 Merge pull request #4006 from deitch/kernel-hash-updates
hash for kernel changed, updating in test cases
2024-03-04 10:29:52 -08:00
Avi Deitcher
0abb1ac179 hash for kernel changed, updating in test cases
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-03-04 19:51:57 +02:00
Avi Deitcher
413f3f3e67 Merge pull request #4005 from deitch/kernel-makefile-regex
ensure kernel replacement matches middle of line too
2024-03-04 06:24:06 -08:00
Avi Deitcher
81f8a91d70 ensure kernel replacement matches middle of line too
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-03-04 15:54:08 +02:00
Avi Deitcher
83efa26b65 Merge pull request #4004 from deitch/missing-kernel-hashes
add missing hashes for kernel version-specific test cases
2024-03-04 05:12:28 -08:00
Avi Deitcher
3f10329ec2 add missing hashes for kernel version-specific test cases
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-03-04 14:25:46 +02:00
Avi Deitcher
600e12f184 Merge pull request #4003 from deitch/fix-kernel-makefile-replace
in kernel makefile tag update, ensure we only replace non-hashed semver
2024-03-04 03:40:00 -08:00
Avi Deitcher
916390860d in kernel makefile tag update, ensure we only replace non-hashed semver
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-03-04 12:45:28 +02:00
Avi Deitcher
b94b3af341 Merge pull request #4002 from deitch/kernel-tag-in-tests
Kernel tag in tests
2024-03-04 02:29:56 -08:00
Avi Deitcher
e381f9cac2 kernel generic test cases updated
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-03-04 11:53:11 +02:00
Avi Deitcher
e297d98f81 kernel series-specific test cases reference with hash
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-03-04 11:08:21 +02:00
Avi Deitcher
2f81ee674d Merge pull request #4001 from deitch/kernel-makefile-all-yamls-update
update kernel Makefile for targets for yamls
2024-03-04 01:04:29 -08:00
Avi Deitcher
d47a9284b4 update kernel Makefile for targets for yamls
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-03-03 17:06:45 +02:00
Avi Deitcher
62d04af55b Merge pull request #4000 from deitch/kernel-ci
kernel makefile target to replace tags using update-component-sha.sh
2024-03-03 06:59:23 -08:00
Avi Deitcher
b25b82c106 kernel makefile target to replace tags using update-component-sha.sh
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-03-03 16:19:34 +02:00
Avi Deitcher
47bd13a5a5 Merge pull request #3999 from deitch/move-kernel-version-to-directory
move kernel series status into series dir
2024-03-03 03:43:09 -08:00
Avi Deitcher
3e7df6c869 move kernel series status into series dir
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-03-03 12:49:17 +02:00
Avi Deitcher
de6978908f Merge pull request #3998 from deitch/missing-builder-label-on-kernel
in kernel build, have ARG in correct place to be usable
2024-03-03 01:50:38 -08:00
Avi Deitcher
a40251bf14 in kernel build, have ARG in correct place to be usable
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-03-03 11:17:57 +02:00
Avi Deitcher
10e6d57505 Merge pull request #3993 from deitch/kernel-build-with-linuxkit
switch kernel builds to linuxkit pkg build for simplicity
2024-03-02 12:07:40 -08:00
Avi Deitcher
000b6f4bb1 switch kernel builds to linuxkit pkg build for simplicity
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-03-02 21:22:05 +02:00
Avi Deitcher
7e45f8ef2e Merge pull request #3997 from deitch/build-args-files-trim
when reading build-args from file, always trim whitespace for key and…
2024-03-02 11:21:22 -08:00
Avi Deitcher
a5d5bb87c2 when reading build-args from file, always trim whitespace for key and value
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-03-01 16:03:54 +02:00
Avi Deitcher
58c36c9eb0 Merge pull request #3995 from deitch/cache-push-options
push arch-specific tags optional
2024-03-01 04:50:10 -08:00
Avi Deitcher
51a4c3b3eb push arch-specific tags optional
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-03-01 13:41:59 +02:00
Avi Deitcher
c72f700910 Merge pull request #3994 from deitch/pkg-build-progress
option to control progress in pkg build
2024-02-29 05:53:12 -08:00
Avi Deitcher
354c1c31e1 option to control progress in pkg build
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-02-29 15:21:28 +02:00
Avi Deitcher
898039595d Merge pull request #3992 from deitch/cache-tag
option to push local image to somewhere else
2024-02-28 10:49:57 -08:00
Avi Deitcher
1766f61aed option to push local image to somewhere else
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-02-28 16:28:07 +02:00
Avi Deitcher
41cd91e0e3 Merge pull request #3991 from deitch/cache-pull-push
add support for pushing and pulling images
2024-02-28 04:06:00 -08:00
Avi Deitcher
54d9db8650 add support for pushing and pulling images
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-02-28 13:08:47 +02:00
Avi Deitcher
8b9b3f673b Merge pull request #3989 from deitch/kernel-build-dirs
restructure kernel builds into directories
2024-02-27 07:01:21 -08:00
Avi Deitcher
cd12a8613d restructure kernel builds into directories
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-02-27 15:14:06 +02:00
Avi Deitcher
51102106b3 Merge pull request #3966 from mestery/mestery/issue3965
Enable VRF in kernel configurations
2024-02-26 07:09:46 -08:00
Kyle Mestery
bdc15ae9f6 Enable VRF in kernel configurations
Signed-off-by: Kyle Mestery <mestery@mestery.com>
2024-02-26 07:59:21 -06:00
Avi Deitcher
86d11e2879 Merge pull request #3988 from deitch/yaml-template
template in yaml file
2024-02-25 02:03:15 -08:00
Avi Deitcher
1f57ac5280 fix yaml in test case with duplicate key
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-02-25 11:28:54 +02:00
Avi Deitcher
06a05badf6 template in yaml file
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-02-23 15:43:45 +02:00
Avi Deitcher
36f379abe5 Merge pull request #3987 from deitch/build-arg-file
add support for build-arg files
2024-02-22 07:24:35 -08:00
Avi Deitcher
56543ed0a2 add support for build-arg files
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-02-22 16:41:49 +02:00
Avi Deitcher
72be49c81c Merge pull request #3986 from deitch/dockerfile-in-build-yml
Dockerfile in build yml and CLI; tag templates
2024-02-21 12:21:17 -08:00
Avi Deitcher
83a8c5cae2 add support for tag templates
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-02-21 21:45:39 +02:00
Avi Deitcher
0c31697e10 add support for specifying dockerfile in build process
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-02-21 21:15:08 +02:00
Avi Deitcher
2cff5681b5 Merge pull request #3985 from deitch/cache-load
enable import of images from tar files
2024-02-20 04:44:16 -08:00
Avi Deitcher
f04e28d291 enable import of images from tar files
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-02-20 13:59:14 +02:00
Avi Deitcher
4cdfd5ff9c Merge pull request #3983 from beriberikix/usbip
Rebased and re-implemented USBIP configs
2024-02-18 06:31:32 -08:00
Jonathan Beri
b12a7d584f Rebased and re-implemented USBIP configs
Signed-off-by: Jonathan Beri <jberi@golioth.io>

Revert to master

Signed-off-by: Jonathan Beri <jberi@golioth.io>

Modify USBIP modules by hand

Signed-off-by: Jonathan Beri <jberi@golioth.io>
2024-02-18 05:39:52 -08:00
Avi Deitcher
0895d146d4 Merge pull request #3984 from deitch/fix-dev-nul
use proper null in script and not mispelled nul
2024-02-18 05:03:56 -08:00
Avi Deitcher
bd582fa474 use proper null in script and not mispelled nul
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-02-18 11:40:33 +02:00
Avi Deitcher
657b33805e Merge pull request #3982 from christoph-zededa/bump_runc_cve-2024-21626
runc: bump to newest version
2024-02-05 03:44:32 -08:00
Christoph Ostarek
819d83b716 runc: bump to newest version
./scripts/update-component-sha.sh --pkg ./pkg/runc

Signed-off-by: Christoph Ostarek <christoph@zededa.com>
2024-02-05 11:45:39 +01:00
Christoph Ostarek
c2b9970241 runc: bump to newest version
This version includes a fix for CVE-2024-21626 which
allowed an attacker in bad circumstances to
"escape containerized environments".

See also https://access.redhat.com/security/cve/cve-2024-21626

Signed-off-by: Christoph Ostarek <christoph@zededa.com>
2024-02-05 11:44:41 +01:00
Avi Deitcher
23c1b5797b Merge pull request #3981 from deitch/kernel-cross-build
kernels Makefile support custom builders and archs
2024-02-01 06:38:53 -08:00
Avi Deitcher
4e070077c9 kernels Makefile support custom builders and archs
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-02-01 15:39:16 +02:00
Avi Deitcher
bafbf0ac0f Merge pull request #3980 from deitch/kernel-document
updated kernel documents
2024-01-31 01:36:09 -08:00
Avi Deitcher
c388177596 updated kernel documents
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-31 10:54:47 +02:00
Avi Deitcher
6c29f580ae Merge pull request #3971 from deitch/update-alpine-base
bump alpine base for kernel, regenerate configs
2024-01-30 04:10:00 -08:00
Avi Deitcher
fa4af07faf update deps of check-kernel-config
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-30 10:25:08 +02:00
Avi Deitcher
e5fbf8a972 update kernel perf
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-30 10:15:28 +02:00
Avi Deitcher
b405b39c48 bump xfs to use kernel 6.6 and latest format
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-30 10:15:28 +02:00
Avi Deitcher
480ff67ddc update bcc version
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-30 10:15:28 +02:00
Avi Deitcher
4b3eb1ff38 kernel 6.6.x config
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-30 10:15:27 +02:00
Avi Deitcher
316886c946 add 6.6.13 to tests
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-29 15:28:01 +02:00
Avi Deitcher
752a35b1aa restructure kernel/Makefile
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-29 15:28:00 +02:00
Avi Deitcher
421b48d43a bump alpine base for kernel, regenerate configs
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-28 22:27:59 +02:00
Avi Deitcher
605f09ef78 Merge pull request #3978 from deitch/zstd-static
include zstd-static library
2024-01-28 12:26:21 -08:00
Avi Deitcher
3a6398e351 Update package tags
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-28 20:53:32 +02:00
Avi Deitcher
d018c425f6 pkgs: Update packages to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-28 20:51:39 +02:00
Avi Deitcher
909e5c97ff Update use of test packages to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-28 20:51:24 +02:00
Avi Deitcher
eff77819a4 tests: Update packages to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-28 20:51:16 +02:00
Avi Deitcher
927997930b Update use of tools to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-28 20:51:14 +02:00
Avi Deitcher
7977310c52 tools: Update to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-28 20:51:04 +02:00
Avi Deitcher
8bd896a955 tools/alpine: Update to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-28 20:50:01 +02:00
Avi Deitcher
7276939ad2 Update linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-28 20:47:44 +02:00
Avi Deitcher
3607a34892 Merge pull request #3977 from deitch/python3-dev
Python3 dev
2024-01-28 09:08:19 -08:00
Avi Deitcher
0d15d8d9bb Update package tags
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-28 15:32:09 +02:00
Avi Deitcher
d907c675d2 pkgs: Update packages to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-28 15:31:01 +02:00
Avi Deitcher
b2a3badd5f Update use of test packages to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-28 15:30:49 +02:00
Avi Deitcher
f8f690f6f3 tests: Update packages to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-28 15:30:36 +02:00
Avi Deitcher
449ec61222 Update use of tools to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-28 15:30:31 +02:00
Avi Deitcher
d9027d543d tools: Update to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-28 15:30:18 +02:00
Avi Deitcher
1676b1a538 tools/alpine: Update to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-28 15:29:14 +02:00
Avi Deitcher
59bae229c2 Update linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-28 15:26:51 +02:00
Avi Deitcher
e4ba559605 Merge pull request #3976 from deitch/llvm17-gtest-again
Llvm17 gtest again
2024-01-28 02:44:35 -08:00
Avi Deitcher
45d7ab8fed Update package tags
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-28 10:57:05 +02:00
Avi Deitcher
b71ac70742 pkgs: Update packages to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-28 10:55:04 +02:00
Avi Deitcher
8a23691591 Update use of test packages to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-28 10:54:43 +02:00
Avi Deitcher
1bd9e9b5a2 tests: Update packages to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-28 10:54:20 +02:00
Avi Deitcher
9cf5d809e8 Update use of tools to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-28 10:54:09 +02:00
Avi Deitcher
a538a1efcf tools: Update to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-28 10:53:56 +02:00
Avi Deitcher
09c85aa0ad tools/alpine: Update to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-28 10:53:19 +02:00
Avi Deitcher
6c4eac84c2 Update linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-28 10:50:35 +02:00
Avi Deitcher
66509eb115 Merge pull request #3975 from deitch/py3-pip
Py3 pip
2024-01-28 00:35:59 -08:00
Avi Deitcher
5954e9308a revert xfs changes because it is kernel sensitive
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-28 09:54:43 +02:00
Avi Deitcher
6b5be65a33 Update package tags
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-27 22:28:11 +02:00
Avi Deitcher
cbe149e97a pkgs: Update packages to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-27 22:27:54 +02:00
Avi Deitcher
68308dc20b Update use of test packages to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-27 22:27:29 +02:00
Avi Deitcher
41311cbe2b tests: Update packages to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-27 22:27:20 +02:00
Avi Deitcher
79e91dedf8 Update use of tools to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-27 22:27:14 +02:00
Avi Deitcher
6db6bc84aa tools: Update to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-27 22:26:58 +02:00
Avi Deitcher
86382030f5 tools/alpine: Update to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-27 22:25:54 +02:00
Avi Deitcher
55fe1761e3 Update linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-27 22:23:03 +02:00
Avi Deitcher
44403f6f56 Merge pull request #3974 from deitch/llvm7-gtest-pkg
Add llvm17-gtest pkg
2024-01-27 11:41:11 -08:00
Avi Deitcher
7fa10ce83a Update package tags
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-27 21:09:58 +02:00
Avi Deitcher
73d160e356 pkgs: Update packages to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-27 21:09:45 +02:00
Avi Deitcher
791b4630ef Update use of test packages to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-27 21:09:43 +02:00
Avi Deitcher
c6be190454 tests: Update packages to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-27 21:09:30 +02:00
Avi Deitcher
7defa568a2 Update use of tools to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-27 21:09:30 +02:00
Avi Deitcher
bc1a7d60df tools: Update to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-27 21:09:30 +02:00
Avi Deitcher
64ce82b692 tools/alpine: Update to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-27 21:09:30 +02:00
Avi Deitcher
7271619a8b Merge pull request #3973 from deitch/alpine-319
Alpine 319
2024-01-26 03:23:21 -08:00
Avi Deitcher
ab0473d953 revert xfs changes because of kernel version sensitivity
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-26 12:49:06 +02:00
Avi Deitcher
7a0ae251c0 update alpine base comments
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-26 12:44:34 +02:00
Avi Deitcher
1b3e13c880 Update package tags
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-25 23:24:06 +02:00
Avi Deitcher
96df8f8fda pkgs: Update packages to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-25 23:23:34 +02:00
Avi Deitcher
13926f6593 Update use of test packages to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-25 23:23:04 +02:00
Avi Deitcher
846e4c9c4e tests: Update packages to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-25 23:22:53 +02:00
Avi Deitcher
d6f9f6129e Update use of tools to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-25 23:22:41 +02:00
Avi Deitcher
22cc9343b4 tools: Update to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-25 23:20:43 +02:00
Avi Deitcher
35dbd157bb tools/alpine: Update to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-25 23:19:18 +02:00
Avi Deitcher
3d20dfe386 Update linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-25 23:15:38 +02:00
Avi Deitcher
ed7dacb72b Merge pull request #3972 from deitch/dockerfile-bcc-extra-package
Dockerfile bcc extra package
2024-01-25 07:04:43 -08:00
Avi Deitcher
a1baf077f2 remove extra package which only is available in later alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-25 16:27:43 +02:00
Avi Deitcher
b0d8897189 Merge pull request #3969 from yzewei/master
Add support for loongarch64

Signed-off-by: Avi Deitcher <avi@deitcher.net>
2024-01-24 19:11:30 +02:00
Avi Deitcher
1957c8d126 Merge pull request #3969 from yzewei/master
Add support for loongarch64
2024-01-09 00:55:02 -08:00
yzewei
27c08f25ad Add loongarch64 support to binfmt_misc
Signed-off-by: yzewei <yangzewei@loongson.cn>
2024-01-09 09:04:36 +08:00
Avi Deitcher
59245e88e8 Merge pull request #3968 from christoph-zededa/fix_logread_socket_closed_too_early
logread: do not close socket too early
2023-12-18 06:33:32 -08:00
Christoph Ostarek
cc374a5ea8 logread: do not close socket too early
only close socket once reading is finished

Signed-off-by: Christoph Ostarek <christoph@zededa.com>
2023-12-18 14:12:40 +01:00
Avi Deitcher
3a0405298a Merge pull request #3967 from deitch/build-after-pull-if-missing
when pulling image to cache, if it is missing target arch, indicate an error
2023-12-16 23:37:25 -08:00
Avi Deitcher
821dddcffc when pulling image to cache, if it is missing target arch, indicate an error
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-12-15 14:49:07 +02:00
Avi Deitcher
e115ce8dca Merge pull request #3963 from deitch/fix-image-pull-with-attestations
Fix image pull with attestations
2023-12-04 00:34:17 -08:00
Avi Deitcher
6e54a7bd6e properly write index when pulling image, including all manifests
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-12-03 15:44:53 +02:00
Avi Deitcher
e1d3a09976 when filling cache, ensure we include attestations
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-12-03 13:57:52 +02:00
Avi Deitcher
87bbbd184b Merge pull request #3964 from deitch/list-package-cache-during-tests
report package cache contents at each stage of CI
2023-12-03 03:57:14 -08:00
Avi Deitcher
782a38dcae report package cache contents at each stage
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-12-03 13:25:46 +02:00
Avi Deitcher
d1a0596bee Merge pull request #3959 from deitch/manifest-with-sboms
fix merging indexes in pkg manifest command
2023-11-22 04:23:40 -08:00
Avi Deitcher
4e75efc8aa fix merging indexes in pkg manifest command
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-11-22 12:48:34 +02:00
Avi Deitcher
4c14831d6b Merge pull request #3958 from deitch/bump-pkgs-again
noop to force pkg rebuild
2023-11-20 06:53:04 -08:00
Avi Deitcher
a2c6ed4205 noop to force pkg rebuild
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-11-20 12:05:52 +02:00
Avi Deitcher
54bd9073c2 Merge pull request #3957 from deitch/push-with-sboms
push sboms as well
2023-11-20 01:59:22 -08:00
Avi Deitcher
6d62579c08 push sboms as well
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-11-19 15:42:02 +02:00
Avi Deitcher
483e76c7f4 Merge pull request #3956 from deitch/bump-pkgs-to-generate-sbom
changed some packages to force new package versions, rebuild with sbom
2023-11-19 00:20:44 -08:00
Avi Deitcher
f227b73a39 changed some packages to force new package versions, rebuild with sbom
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-11-16 10:28:22 +02:00
Avi Deitcher
b26c169797 Merge pull request #3920 from vouch-opensource/fix/service-restarts-with-memlogd
Allow service restarts when using memlogd
2023-11-14 06:23:58 -08:00
Avi Deitcher
bbd9b85fc1 Merge pull request #3954 from deitch/sbom-inheritor
sbom support
2023-11-14 06:16:56 -08:00
Avi Deitcher
33cd7b749a sbom support
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-11-14 14:14:45 +02:00
Avi Deitcher
9742bfa5f7 Merge pull request #3953 from deitch/handle-cgroupsv2-last-cmdline-entry
Handle cgroupsv2 last cmdline entry
2023-10-26 20:26:14 +03:00
Avi Deitcher
d052901b35 update dependencies on init
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-10-25 18:34:32 +03:00
Avi Deitcher
0e2f17a05a correctly handle fields in cmdline for cgroupsv2
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-10-25 18:33:28 +03:00
Avi Deitcher
5d78de48f7 Merge pull request #3951 from deitch/proper-efi-arch
pass target arch to final image builder as TARGETARCH; use TARGETARCH…
2023-10-08 10:08:38 +03:00
Avi Deitcher
7ab99eac1f pass target arch to final image builder as TARGETARCH; use TARGETARCH when generating raw and iso, fallback to build arch; use updated images that read TARGETARCH; ensure grub has EFI for all archs
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-10-06 12:22:09 +03:00
Avi Deitcher
6c3f3e8eb1 Merge pull request #3950 from deitch/context-for-rebuilt
ensure passing context when creating builder runner
2023-10-06 12:20:04 +03:00
Avi Deitcher
cb86e280b6 ensure passing context when creating builder runner
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-10-05 12:17:30 +03:00
Avi Deitcher
c72f6b49e2 Merge pull request #3948 from testwill/pkg-import
chore: import packages only once
2023-09-26 15:01:33 +03:00
guoguangwu
02f3bdcbe7 chore: import packages only once
Signed-off-by: guoguangwu <guoguangwu@magic-shield.com>
2023-09-26 18:47:25 +08:00
Rolf Neugebauer
959dce294c Merge pull request #3904 from qdeslandes/master
Disable CONFIG_BPFILTER for 5.4.x-x86_64 kernel configuration
2023-08-17 10:02:56 +01:00
Avi Deitcher
fec28d2493 Merge pull request #3942 from deitch/poweroff-as-package
move poweroff to full-fledged package
2023-07-26 12:02:47 +03:00
Avi Deitcher
5a9755a433 move poweroff to full-fledged package
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-07-24 20:06:14 +03:00
Avi Deitcher
03c97c3584 Merge pull request #3939 from deitch/logread-as-lib
expose logread function
2023-07-03 11:41:17 +03:00
Avi Deitcher
997c074db6 expose logread function
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-06-30 06:02:16 +03:00
Avi Deitcher
48e0eca4f5 Merge pull request #3938 from PIG208/doc
Fix broken links in the documentation.
2023-06-27 11:01:43 -07:00
Zixuan James Li
2d2df02a5a Fix broken links in the documentation.
Arguably the long term fix is to introduce a check for links in the
documentation with tools like markdown-link-check.

Signed-off-by: Zixuan James Li <p359101898@gmail.com>
2023-06-23 22:27:55 -04:00
Avi Deitcher
8e790a5417 Merge pull request #3937 from deitch/logread-exit-not-panic
logread should not panic on an EOF, instead exiting gracefully
2023-06-20 00:03:43 -07:00
Avi Deitcher
77b66b5572 Merge pull request #3936 from deitch/ctr-go-binaries
Ctr go binaries
2023-06-20 00:02:56 -07:00
Avi Deitcher
b7002c0eb2 logread should not panic on an EOF, instead exiting gracefully
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-06-19 17:50:35 +03:00
Avi Deitcher
4ee6387366 updated containerd-dev and downstream dependencies
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-06-19 14:17:43 +03:00
Avi Deitcher
7164b2c04d Merge pull request #3935 from deitch/ggcr-for-manifest
replace complex manifest-tool with straight go-containerregistry
2023-06-16 03:20:56 -07:00
Avi Deitcher
1b22e6f194 replace complex manifest-tool with straight go-containerregistry
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-06-16 10:13:24 +03:00
Avi Deitcher
9eef398d64 Merge pull request #3933 from deitch/main-version-binaries
Main version binaries
2023-06-15 00:31:24 -07:00
Avi Deitcher
3aeac872a0 update pkg/metadata with better logging
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-06-13 12:10:48 +03:00
Avi Deitcher
b633950059 replace ancient debian version in binfmt
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-06-12 15:58:04 +03:00
Avi Deitcher
0cb961e082 update examples, tests, projects, etc.
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-06-12 14:02:30 +03:00
Avi Deitcher
d4b5d5df79 include main.Version in binaries
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-06-12 14:02:30 +03:00
Avi Deitcher
655c7fb807 Merge pull request #3934 from deitch/fix-name-output-build-bug
handle conflict with name and output
2023-06-12 04:01:53 -07:00
Avi Deitcher
b1fa7d23c4 handle conflict with name and output
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-06-12 13:08:35 +03:00
Avi Deitcher
aab61a16de Merge pull request #3932 from deitch/build-args-with-versions
include source repo, revision and go package version as build-args
2023-06-12 01:26:08 -07:00
Avi Deitcher
de13ee521d include source repo, revision and go package version as build-args
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-06-08 18:24:25 +03:00
Avi Deitcher
aad12b570f Merge pull request #3931 from jprendes/update-capabilities
Update capabilities
2023-06-06 19:58:52 +03:00
Jorge Prendes
813f2a5bc1 Use gocapability/capability to get list of all capabilities
Signed-off-by: Jorge Prendes <jorge.prendes@gmail.com>
2023-06-06 10:44:48 +01:00
Jorge Prendes
f8b62fd0ac Vendor gocapability/capability in cmd/linuxkit
Signed-off-by: Jorge Prendes <jorge.prendes@gmail.com>
2023-06-06 10:44:26 +01:00
Avi Deitcher
740787a79e Merge pull request #3927 from deitch/multi-arch-guestfs 2023-05-22 23:45:02 -07:00
Avi Deitcher
a9f432ab34 update linuxkit command with newer vhd/dynamicvhd/vmdk/gcp images
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-05-22 10:23:35 +01:00
Avi Deitcher
23d44f6084 update downstream from guestfs
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-05-22 09:47:47 +01:00
Avi Deitcher
81f42a2b3b guestfs native arm64
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-05-22 09:34:44 +01:00
Frédéric Dalleau
c2df261e01 Add a target for building kernel with buildx (#3792)
* Use latest kernel in linuxkit

Signed-off-by: Frédéric Dalleau <frederic.dalleau@docker.com>

* Parallelize kernel source compression

This surpringly saves a lot of time:
M1: from 340 to 90 seconds
Intel: from 527 to 222 seconds (2 cores 4 threads)

Signed-off-by: Frédéric Dalleau <frederic.dalleau@docker.com>

* Add buildx target

buildx can use remote builders and automatically generate the multiarch manifest.
A properly configured builder is required :

First create docker context for the remote builders :
$ docker context create node-<arch> --docker "host=ssh://<user>@<host>"

Then create a buildx configuration using the remote builders:
$ docker buildx create --name kernel_builder --platform linux/amd64
$ docker buildx create --name kernel_builder --node node-arm64 --platform linux/arm64 --append
$ docker buildx use kernel_builder
$ docker buildx ls

Signed-off-by: Frédéric Dalleau <frederic.dalleau@docker.com>

* Add a PLATFORMS variable to declare platforms needed for buildx

Signed-off-by: Frédéric Dalleau <frederic.dalleau@docker.com>

* Make image name customizable

Signed-off-by: Frédéric Dalleau <frederic.dalleau@docker.com>

* Do not tag use the architecture suffix for images built with buildx

Signed-off-by: Frédéric Dalleau <frederic.dalleau@docker.com>

* Add make kconfigx to upgrade configs using buildx

To update configuration for 5.10 kernels use :
make -C kernel KERNEL_VERSIONS=5.10.104 kconfigx

Signed-off-by: Frédéric Dalleau <frederic.dalleau@docker.com>

---------

Signed-off-by: Frédéric Dalleau <frederic.dalleau@docker.com>
2023-04-28 11:49:08 +03:00
Stijn Opheide
247d919a81 remove file at fifo logging location if it exists
Signed-off-by: Stijn Opheide <stijn@opheide.be>
2023-04-18 14:28:01 +02:00
David Gageot
eb81457111 Avoid running git command 254 times (#3915)
Signed-off-by: David Gageot <david.gageot@docker.com>
2023-03-23 10:55:21 +02:00
Erik Nordmark
c79558cc5a Retain /lib/apk/db for SBOM tools (#3913)
This allows SBOM tools to look at /lib/apk/db/installed to determine
which package versions are included in the container. This should
probably be applied across all of the linuxkit containers.

Signed-off-by: eriknordmark <erik@zededa.com>
2023-03-14 18:27:09 -04:00
Birol Bilgin
d4a8e284f6 added vmware metadata provider (#3526)
cloud-init data from vmware guest info as it described in the link below
https://github.com/vmware/cloud-init-vmware-guestinfo

Signed-off-by: Birol Bilgin <birolbilgin@gmail.com>
Co-authored-by: Birol Bilgin <birol.bilgin@basefarm.com>
2023-03-04 19:50:46 +02:00
Rolf Neugebauer
7d9f1f03a8 Merge pull request #3891 from fredericdalleau/qemu-virtiofs
Add virtiofs command line option for qemu run
2023-02-28 21:32:44 +00:00
Frédéric Dalleau
e4b1a5b192 Add virtualization framework virtiofs command line option
Signed-off-by: Frédéric Dalleau <frederic.dalleau@docker.com>
2023-02-25 07:53:53 +01:00
Frédéric Dalleau
13426fe805 Add qemu virtiofs command line option
Enables support for C version of virtiofs
A qemu option allows to specify virtiofsd path.
config.StatePath is used for storing the virtiofs sockets
Note that virtiofsd requires to start as root

Signed-off-by: Frédéric Dalleau <frederic.dalleau@docker.com>
2023-02-25 07:52:59 +01:00
Avi Deitcher
f0f21bec52 update to latest manifest-tool, oras-v2, remove all replace in go.mod (#3912)
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-02-16 14:46:29 -08:00
Rolf Neugebauer
f4e9579e4b cmd: Remove s390x as a default arch (#3911)
* cmd: Remove s390x as a default arch

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>

* Update pkg/swap hash to latest

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>

---------

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2023-02-14 06:18:01 -08:00
Avi Deitcher
c51ce2551e use latest go-compile (#3906)
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-02-01 10:38:01 +02:00
Avi Deitcher
500fdb163b update go.mod deps (#3903)
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-01-29 11:42:36 +02:00
Quentin Deslandes
9b9d337037 Disable CONFIG_BPFILTER for 5.4.x-x86_64 kernel configuration
bpfilter is not meant to be used at all at this point. Only the module's
boilerplate is available on upstream kernels.

Signed-off-by: Quentin Deslandes <qde@naccy.de>
2023-01-27 11:55:50 +01:00
Itxaka
ea6268dd74 Bump go-diskfs to latest (#3902)
Also fix cdrom provider use of the new diskfs

Signed-off-by: Itxaka <itxaka@spectrocloud.com>

Signed-off-by: Itxaka <itxaka@spectrocloud.com>
Co-authored-by: Itxaka <itxaka@spectrocloud.com>
2023-01-23 16:19:32 +02:00
Avi Deitcher
7bba32e56c bump actions artifact upload/download and cache versions (#3901)
Signed-off-by: Avi Deitcher <avi@deitcher.net>

Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-01-22 14:08:25 +02:00
Avi Deitcher
6d95833759 ensure push when already found image locally (#3899)
Signed-off-by: Avi Deitcher <avi@deitcher.net>

Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-01-19 18:00:27 +02:00
David Gageot
f9f1ec7de4 Fix swap.sh (#3897)
The script used to compare “10M” with “10” as if
they were both integers.

Signed-off-by: David Gageot <david.gageot@docker.com>

Signed-off-by: David Gageot <david.gageot@docker.com>
2023-01-12 09:50:47 +00:00
Avi Deitcher
e668b25a82 Alpine 317 (#3888) 2023-01-05 07:26:50 +02:00
Avi Deitcher
ac8c24934c Test pkgs ci makefile (#3892)
* simplify test/pkg/Makefile

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* ensure pkg and test/pkg built before downstream workflows in CI

Signed-off-by: Avi Deitcher <avi@deitcher.net>

Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-01-04 11:52:48 +02:00
Avi Deitcher
a91c4a77b0 Logwrite sync with memlogd (#3890)
* sync logwrite with memlogd

Signed-off-by: Avi Deitcher <avi@deitcher.net>

* update linuxkit/logwrite and linuxkit/memlogd dependencies

Signed-off-by: Avi Deitcher <avi@deitcher.net>

Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-01-03 10:47:42 +02:00
Rolf Neugebauer
6062f91648 Merge pull request #3889 from deitch/troubleshooting
start troubleshooting doc
2022-12-30 22:45:57 +00:00
Avi Deitcher
0b6441ccbc start troubleshooting doc
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-12-30 10:41:34 +02:00
Avi Deitcher
b84548b039 fix alpine base update docs (#3886)
Signed-off-by: Avi Deitcher <avi@deitcher.net>

Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-12-29 16:47:29 +02:00
Rolf Neugebauer
6700de3a74 Merge pull request #3830 from jf/fix_docs_aws_example
Fix examples/platform-aws.yml: add dhcpcd service to keep instance reachable after lease
2022-12-29 14:44:50 +00:00
Rolf Neugebauer
eb9376ff12 Merge pull request #3887 from deitch/fix-show-tags
allow multiple packages for show-tag
2022-12-29 14:38:42 +00:00
Avi Deitcher
0673db4493 allow multiple packages for show-tag
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-12-29 11:45:30 +02:00
Avi Deitcher
154f943d01 switch from flags to cobra (#3884)
Signed-off-by: Avi Deitcher <avi@deitcher.net>

Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-12-29 10:31:57 +02:00
Petr Fedchenkov
8b04a8c92a Update buildkit to 0.11.0-rc2 (#3882)
Seems buildkit breaks API compatibility with previous OCI implementation
 in new RC release, let's update it

Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>

Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>
2022-12-15 12:53:38 +02:00
Petr Fedchenkov
893bee6b81 Fix return code of rungetty.sh (#3881)
* Fix return code of rungetty.sh

In case of INITGETTY defined we will return exit code 1 which is not
expected

Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>

* Update getty sha

Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>

* restore package cache in LinuxKit Build Tests

Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>

Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>
2022-12-15 12:12:19 +02:00
Petr Fedchenkov
c3b4a588c9 Fix handling of platform flag (#3880)
* Update of buildkit to the last version

Commit contains the version of buildkit from output of
`go list -m -json github.com/moby/buildkit@c0ac5e8b9b51603c5a93795fcf1373d6d44d3a85`:

go get -u github.com/moby/buildkit@v0.11.0-rc1.0.20221213132957-c0ac5e8b9b51
go mod tidy
go mod vendor

Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>

* Fix handling of platform flag

In case of 'FROM --platform' defined I can see 'ERROR: no match for
platform in manifest: not found'. The problem was fixed on buildkit side

Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>

Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>
2022-12-13 21:04:29 +02:00
Avi Deitcher
d1452385cc unify apk installed db for base layer (#3879) 2022-12-06 16:57:04 +01:00
Avi Deitcher
bbd62314ed if nothing to build, do not push (#3876)
Signed-off-by: Avi Deitcher <avi@deitcher.net>

Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-11-20 10:29:28 -05:00
Avi Deitcher
7c5b1f1b30 catch new untracked and unignored files (#3875) 2022-11-20 10:29:05 -05:00
Avi Deitcher
dee4c37648 Merge pull request #3878 from giggsoff/manifest-issues
Do not pass credentials into PushManifest
2022-11-17 15:56:02 +02:00
Petr Fedchenkov
0c8b3c8b22 Do not pass credentials into PushManifest
Seems we should not use own credential extraction logic as it should be
aligned with resolver internally to select correct information for the
host we want to push manifest. I.e. we may want to push manifest onto
ghcr.io, and in that case we will hit errors as we will extract
credentials for docker.io instead.

Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>
2022-11-17 15:23:59 +03:00
Avi Deitcher
a9c7a126cf Merge pull request #3877 from giggsoff/propagate-manifest-option
Propagate manifest option into push
2022-11-16 19:35:46 +02:00
Petr Fedchenkov
d58a3fc0a3 Propagate manifest option into push
We have distinct manifest option which is not used. Let's implement
different behavior.

Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>
2022-11-16 11:54:00 +03:00
Avi Deitcher
61caf54c54 Merge pull request #3874 from giggsoff/update-buildkit-speedup
Update buildkit version to speed up start time
2022-11-14 19:50:39 +02:00
Petr Fedchenkov
249bc953bb Update buildkit version to speed up start time
Let's update buildkit version to include startup speed fix
0bb8505e86

Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>
2022-11-14 19:45:15 +03:00
Avi Deitcher
aa24821236 Merge pull request #3871 from the-maldridge/nobind
pkg/sshd: Remove default bind of /root/.ssh
2022-11-10 10:14:17 +02:00
Michael Aldridge
06aaba5e05 pkg/sshd: Remove default bind of /root/.ssh
Signed-off-by: Michael Aldridge <aldridge.mac@gmail.com>
2022-11-09 18:50:44 -06:00
Avi Deitcher
4f23407838 Merge pull request #3870 from deitch/fix-registry-check-error-handler
when cannot get remote manifest in checking registry, that is just a …
2022-11-09 08:59:13 +02:00
Avi Deitcher
01c444ec89 Merge pull request #3866 from deitch/cache-clean-published
add options to clean only part of the cache
2022-11-09 08:53:41 +02:00
Avi Deitcher
bb9a80c80a when cannot get remote manifest in checking registry, that is just a sign that it does not exist there
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-11-08 22:51:12 +02:00
Avi Deitcher
2090b2c2b6 add options to clean only part of the cache
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-11-07 13:16:40 +02:00
Avi Deitcher
860163a9c7 Merge pull request #3863 from deitch/rationalize-build-pull
Rationalize build pull
2022-11-07 09:54:48 +02:00
Avi Deitcher
bfa4a33b0d Merge pull request #3865 from deitch/bump-vz
bump virtualization-framework library to v3.0.0
2022-11-07 09:54:08 +02:00
Avi Deitcher
121002bae4 Merge pull request #3862 from deitch/canonical-tag
option to show canonical tag
2022-11-07 09:53:50 +02:00
Avi Deitcher
11fe19138d bump virtualization-framework library to v3.0.0
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-11-02 20:20:59 +02:00
Avi Deitcher
a3995bb724 build should check and only pull if requested
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-11-01 22:00:50 +02:00
Avi Deitcher
f870c16ea6 option to show canonical tag
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-11-01 15:15:09 +02:00
Avi Deitcher
9ea2d6dcd9 rationalize pull build
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-11-01 12:51:44 +02:00
Avi Deitcher
b17c93a635 Merge pull request #3860 from deitch/shard-packages-tests
add sharding option
2022-11-01 12:50:48 +02:00
Avi Deitcher
cf7d83bb13 add sharding option
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-10-30 11:16:42 +02:00
Avi Deitcher
f8947c6ae6 Merge pull request #3859 from deitch/safety-check-platforms
catch error with descriptor missing platform
2022-10-30 11:15:58 +02:00
Avi Deitcher
302c0051ec Merge pull request #3857 from deitch/fix-network-control
fix network build modes
2022-10-30 11:15:42 +02:00
Rolf Neugebauer
5200e52816 Merge pull request #3858 from deitch/makefile-rtf-tests
move rtf commands from GHA into make test; remove unused artifacts
2022-10-25 00:10:37 +01:00
Avi Deitcher
33180047f5 catch error with descriptor missing platform
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-10-24 21:44:50 +03:00
Avi Deitcher
7c2b9b3b3a move rtf commands from GHA into make test; remove unused artifacts
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-10-24 12:50:28 +03:00
Avi Deitcher
2dfc1dcf3e fix network build modes
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-10-24 11:45:45 +03:00
Rolf Neugebauer
25c8e68f98 Merge pull request #3855 from dgageot/retore-pad4
Fix initrd image padding
2022-10-22 11:40:25 +01:00
Rolf Neugebauer
7ff1e91875 Merge pull request #3856 from deitch/update-buildkit
update latest buildkit library to support advanced dockerfile scanning, other libs, go 1.19
2022-10-22 11:38:04 +01:00
Avi Deitcher
eafdb0db0c update latest buildkit library to support advanced dockerfile scanning. Also go 1.19 and other libs
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-10-20 13:47:42 +03:00
David Gageot
c61ddd0482 Remove pad4 writer because it's buggy and doesn't seem required
According to https://docs.kernel.org/driver-api/early-userspace/buffer-format.html

Signed-off-by: David Gageot <david.gageot@docker.com>
2022-10-18 19:03:49 +02:00
Avi Deitcher
61a07e26cf Merge pull request #3853 from dgageot/faster-export
Faster image export
2022-10-12 14:34:51 +03:00
David Gageot
4867802ba1 Faster image export
Creating the container without a network takes
50 to 80ms less.

Signed-off-by: David Gageot <david.gageot@docker.com>
2022-10-12 11:35:49 +02:00
Avi Deitcher
f75b5cb18a Merge pull request #3849 from deitch/lint-vet
add go vet and go lint
2022-10-11 19:03:32 +03:00
Avi Deitcher
4e4d2d1f15 fix all lint errors
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-10-11 10:16:04 +03:00
Avi Deitcher
6217565c89 add go vet and go lint
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-10-11 10:16:03 +03:00
Avi Deitcher
45e299ce91 Merge pull request #3848 from dgageot/remove-more-dead-code-pkg
Remove dead or redundant code (packages)
2022-10-10 20:55:02 +03:00
Avi Deitcher
93896eb201 Merge pull request #3843 from dgageot/remove-more-dead-code
Remove dead or redundant code (src/cmd/linuxkit)
2022-10-10 20:52:47 +03:00
Avi Deitcher
3df26af9ed Merge pull request #3846 from dgageot/nil-empty-slides-pkg
Prefer nil empty slices (packages)
2022-10-10 20:52:21 +03:00
David Gageot
39807bb0bd Remove dead or redundant code
Signed-off-by: David Gageot <david.gageot@docker.com>
2022-10-09 15:33:42 +02:00
David Gageot
810c3e788f Prefer nil empty slices
Signed-off-by: David Gageot <david.gageot@docker.com>
2022-10-09 15:02:23 +02:00
David Gageot
ac62571f00 Remove dead or redundant code
Signed-off-by: David Gageot <david.gageot@docker.com>
2022-10-09 15:00:36 +02:00
Avi Deitcher
ebb5ded10b Merge pull request #3840 from dgageot/release-notes-workflow
Auto generate Release Notes
2022-10-09 15:55:31 +03:00
Avi Deitcher
fe560c9440 Merge pull request #3838 from dgageot/fix-workflow-name
Fix workflow's name
2022-10-09 15:54:13 +03:00
Avi Deitcher
a3f3f5630b Merge pull request #3842 from dgageot/remove-ioutil
Remove 99% of deprecated ioutil usage (src/cmd/linuxkit)
2022-10-09 15:53:57 +03:00
Avi Deitcher
221cbf2d11 Merge pull request #3844 from dgageot/nil-empty-slides
Prefer nil empty slices (src/cmd/linuxkit)
2022-10-09 15:52:43 +03:00
Avi Deitcher
b1dda052db Merge pull request #3847 from dgageot/remove-ioutil-pkg
Remove 99% of deprecated ioutil usage (packages)
2022-10-09 15:52:27 +03:00
David Gageot
d4e132021a Remove 99% of deprecated ioutil usage
Signed-off-by: David Gageot <david.gageot@docker.com>
2022-10-09 13:10:38 +02:00
David Gageot
17b92c7f5a Prefer nil empty slices
Signed-off-by: David Gageot <david.gageot@docker.com>
2022-10-09 13:02:23 +02:00
David Gageot
7687de2d20 Remove 99% of deprecated ioutil usage
Signed-off-by: David Gageot <david.gageot@docker.com>
2022-10-09 10:27:49 +02:00
Avi Deitcher
8ef4fa3483 Merge pull request #3845 from dgageot/fix-comments
Fix comments
2022-10-09 10:26:17 +03:00
David Gageot
998ad7eea1 Fix comments
Signed-off-by: David Gageot <david.gageot@docker.com>
2022-10-08 22:41:20 +02:00
David Gageot
f2d70722c4 Generate Release Notes
Signed-off-by: David Gageot <david.gageot@docker.com>
2022-10-08 22:07:17 +02:00
David Gageot
4bc274154a Fix workflow's name
Signed-off-by: David Gageot <david.gageot@docker.com>
2022-10-08 21:01:29 +02:00
Avi Deitcher
1d0f49e785 Merge pull request #3837 from dgageot/remove-dead-code
Remove dead code
2022-10-08 21:17:43 +03:00
Avi Deitcher
e25cc72531 Merge pull request #3835 from dgageot/release-workflow
Add an automated release workflow
2022-10-08 21:13:53 +03:00
David Gageot
d7ec2209b1 Remove dead code
Signed-off-by: David Gageot <david.gageot@docker.com>
2022-10-07 18:46:38 +02:00
Avi Deitcher
07adfa2bb8 Merge pull request #3831 from dgageot/support-docker-over-ssh
Support remote docker over ssh
2022-10-07 14:43:35 +03:00
Avi Deitcher
93c3fdcfb7 Merge pull request #3834 from dgageot/test-darwin-arm64
Add a GHA target for darwin/arm64
2022-10-07 14:01:40 +03:00
David Gageot
c75bada86b Add release workflow
Signed-off-by: David Gageot <david.gageot@docker.com>
2022-10-07 13:00:46 +02:00
David Gageot
95d4b34b83 Add a GHA target for darwin/arm64
Signed-off-by: David Gageot <david.gageot@docker.com>
2022-10-07 10:29:17 +02:00
Avi Deitcher
0f6ed01f2b Merge pull request #3832 from dgageot/faster-gzip
Use faster gzip library
2022-10-06 16:25:38 +03:00
David Gageot
eda59aa5ab Feedback
Signed-off-by: David Gageot <david.gageot@docker.com>
2022-10-06 14:00:00 +02:00
David Gageot
c977b1b306 Use faster gzip library
Signed-off-by: David Gageot <david.gageot@docker.com>
2022-10-06 13:08:56 +02:00
Rolf Neugebauer
0a223ec205 Merge pull request #3829 from jf/update_platform-aws_docs
docs/platform-aws.md: add crucial note about ENA for `linuxkit push aws`
2022-10-06 09:35:25 +01:00
David Gageot
780c28dba7 Memoize docker client to avoid consuming a new ssh connection each time
Signed-off-by: David Gageot <david.gageot@docker.com>
2022-10-03 15:22:21 +02:00
David Gageot
ea863184ce Support connecting to docker over ssh
Signed-off-by: David Gageot <david.gageot@docker.com>
2022-10-03 14:25:09 +02:00
David Gageot
4df610741d Don't use deprecated api
Signed-off-by: David Gageot <david.gageot@docker.com>
2022-10-03 14:10:15 +02:00
Jeffrey 'jf' Lim
3950e55e00 Fix examples/platform-aws.yml: add dhcpcd service to keep instance reachable after lease
Signed-off-by: Jeffrey 'jf' Lim <jf@users.noreply.github.com>
2022-10-02 17:09:16 +08:00
Jeffrey 'jf' Lim
5f1ae239bb docs/platform-aws.md: add crucial note about ENA for linuxkit push aws
Signed-off-by: Jeffrey 'jf' Lim <jf@users.noreply.github.com>
2022-09-28 21:40:13 +08:00
Rolf Neugebauer
d589bd18f1 Merge pull request #3828 from deitch/set-cache-via-env-var
allow setting cache dir via env var
2022-09-24 14:05:32 +01:00
Avi Deitcher
cec33f0c84 allow setting cache dir via env var
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-09-23 13:27:14 +03:00
Avi Deitcher
e532e73108 Merge pull request #3825 from giggsoff/fix-dep
Fix github.com/docker/go-units import
2022-09-13 16:51:24 +03:00
Petr Fedchenkov
227b02a8bd Fix github.com/docker/go-units import
Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>
2022-09-13 14:52:32 +03:00
Avi Deitcher
5f3856c94c Merge pull request #3823 from giggsoff/clean_builder_cache
Builder disk usage and clean
2022-09-13 14:47:09 +03:00
Petr Fedchenkov
45a5c97931 Builder disk usage and clean
We use dedicated docker container as builder and we are able to clean
data inside only by re-creating of it. Let's add disk usage and clean
commands for builder.

Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>
2022-09-13 13:33:46 +03:00
Avi Deitcher
3008215556 Merge pull request #3824 from giggsoff/fix-push
Fix bug: when request to build multiple arches, if one already found, it skips the others
2022-09-13 13:21:48 +03:00
Petr Fedchenkov
57148029cd Fix consistently building of multiple arch
We cannot build for another arch after building for one arch because of
setting skipBuild to true if one arch found. In other words "linuxkit
pkg build --platforms linux/riscv64,linux/amd64 ..." after "linuxkit pkg
 build --platforms linux/amd64 ..." will not build for linux/riscv64
 which is not expected.

In general when we check for available images and able to found part of
platforms we do not want to rebuild all of them. So this PR includes
platformsToBuild slice which we fill with platforms we want to build for
.

Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>
2022-09-13 11:58:23 +03:00
Avi Deitcher
86cc42bf79 Merge pull request #3822 from giggsoff/allow_build_without_cgo
Allow build for darwin without CGO
2022-09-12 14:49:01 +03:00
Petr Fedchenkov
a46e6af650 Allow build for darwin without CGO
It is not easy to use cross-platform build with CGO enabled so lets
allow build without cgo for darwin and use virtualization framework only
 if we built with CGO.

Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>
2022-09-12 11:41:37 +03:00
Avi Deitcher
ceaeac88b6 Merge pull request #3818 from deitch/optional-tag
add option to override tag name when exporting
2022-09-12 09:48:52 +03:00
Avi Deitcher
7c4e89b652 Merge pull request #3821 from giggsoff/do-not-calculate-broken-symlinks
Skip files in contentHash()
2022-09-08 20:58:13 +03:00
Petr Fedchenkov
49f8faffe0 Skip files in contentHash()
If we cannot open file for some reason it is better to skip it instead
of exit. Also we should skip symlinks and directories.

Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>
2022-09-08 17:34:21 +03:00
Avi Deitcher
9b636cbf25 Merge pull request #3820 from giggsoff/fix-riscv64-arch
Add all valid arches to ImageLoad
2022-09-08 14:16:03 +03:00
Petr Fedchenkov
3699177d1a Add all valid arches to ImageLoad
We should expand the list of supported arches to be able to build them if we want. Without this we will stuck on sending tarball during build for riscv64.

Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>
2022-09-08 12:14:49 +03:00
Avi Deitcher
fc060cac15 Merge pull request #3819 from giggsoff/dirty-fix
Append dirty tag with content hash
2022-09-07 12:49:48 +03:00
Petr Fedchenkov
8217737525 Append dirty tag with content hash
To be able to identify successive file changes without commit, we should
 use their hash in tag alongside with dirty flag
 (<ls-tree>-dirty-<content hash>).

Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>
2022-09-07 11:29:43 +03:00
Avi Deitcher
3a2ecfc6d5 add option to override tag name when exporting
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-09-06 14:18:49 +03:00
Avi Deitcher
5f37332f4a Merge pull request #3816 from deitch/cache-export-filesystem
add ability to export filesystem
2022-09-05 11:08:28 +03:00
Avi Deitcher
7e65df33be add ability to export filesystem
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-08-29 18:23:43 +03:00
Avi Deitcher
1303ae4e73 Merge pull request #3810 from giggsoff/do-not-pull-another-arch
Do not pull another arch and index cleanup
2022-08-25 15:27:12 +03:00
Petr Fedchenkov
fe46d9bf05 Do not pull another arch
We pull all arches for the image which is suboptimal in terms of storage
 consumption. Let's pull only required platforms.

Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>
2022-08-25 12:29:35 +03:00
Avi Deitcher
6d65e39e0a Merge pull request #3815 from giggsoff/enable-tpm-uefi-aws
Enable uefi mode and tpm support for aws
2022-08-23 11:37:15 -04:00
Petr Fedchenkov
82681c0333 uefi and tpm flags for aws push
Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>
2022-08-23 10:58:24 +03:00
Petr Fedchenkov
364f66a5b8 Update aws vendoring and mod tidy
Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>
2022-08-23 10:23:45 +03:00
Avi Deitcher
1cf22ed0ac Merge pull request #3812 from deitch/safer-cache-write
verbosity for pkg build and error catching
2022-08-22 11:32:55 -04:00
Avi Deitcher
bc5084df99 verbosity for pkg build and error catching
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-08-14 11:06:02 -07:00
Avi Deitcher
56a05f628f Merge pull request #3808 from deitch/push-manifest-only
add ability to just update manifest
2022-08-07 01:26:18 -08:00
Avi Deitcher
acdfb911ac bump manifest-tool to support OCI index media-type and consume it
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-07-29 00:18:13 +03:00
Avi Deitcher
b28621b95a add ability to just update manifest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-07-28 10:46:45 +03:00
Avi Deitcher
239d4d9502 Merge pull request #3764 from deitch/virtualization-framework
add support for virtualization framework
2022-07-28 10:46:13 +03:00
Avi Deitcher
9c149a61b5 Merge pull request #3809 from giggsoff/fix-start-of-builder
Restart of the builder container
2022-07-27 20:23:52 +03:00
Petr Fedchenkov
2fd7ff7ff0 Restart of the builder container
We check only for existence of builder container and do not start it in
case of not running state. We should start it for example after reboot
of node to be able to build something.

Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>
2022-07-27 19:01:47 +03:00
David Scott
4bb25bda97 Fix Makefile
Before:
```
djs55@m1 linuxkit % make
make -C ./src/cmd/linuxkit
tar cf - -C . . | docker run --rm --net=none --log-driver=none -i -e GOOS= -e GOARCH= linuxkit/go-compile:7b1f5a37d2a93cd4a9aa2a87db264d8145944006 --package github.com/linuxkit/linuxkit/src/cmd/linuxkit --ldflags "-X github.com/linuxkit/linuxkit/src/cmd/linuxkit/version.GitCommit=a201652e0dabfc7f62b14ac1a43b5572a8ecae9a -X github.com/linuxkit/linuxkit/src/cmd/linuxkit/version.Version="v0.8+"" -o linuxkit > tmp_linuxkit_bin.tar
gofmt...
govet...
golint...
ineffassign...
go build...

djs55@m1 linuxkit % file bin/linuxkit
bin/linuxkit: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), static-pie linked, Go BuildID=alxJ_URcsHKe5NnzKTgb/kT7Da_wy0_5L3jkAxzZ7/jVuNyKW2yhIE_wT0QFHL/g86-fS2la_qumeAPHD40, stripped

djs55@m1 linuxkit % ./bin/linuxkit
zsh: exec format error: ./bin/linuxkit
```

After:
```
djs55@m1 linuxkit % make
make -C ./src/cmd/linuxkit
CGO_ENABLED=1 go build -o /Users/djs55/github.com/djs55/linuxkit/bin/linuxkit  --ldflags "-X github.com/linuxkit/linuxkit/src/cmd/linuxkit/version.GitCommit=df47d22bce0a1767e6e0c967d9b516cc656d7db4 -X github.com/linuxkit/linuxkit/src/cmd/linuxkit/version.Version="v0.8+""
codesign --entitlements linuxkit.entitlements --force -s - /Users/djs55/github.com/djs55/linuxkit/bin/linuxkit
/Users/djs55/github.com/djs55/linuxkit/bin/linuxkit: replacing existing signature

djs55@m1 linuxkit % file ./bin/linuxkit
./bin/linuxkit: Mach-O 64-bit executable arm64

djs55@m1 linuxkit % ./bin/linuxkit
Please specify a command.

USAGE: linuxkit [options] COMMAND
```

Signed-off-by: David Scott <dave@recoil.org>
2022-07-25 08:01:32 +01:00
David Scott
e97dda48c5 Merge pull request #3807 from dgageot/memlogd-json
Write log entries as json
2022-07-25 07:48:11 +01:00
Avi Deitcher
de1d8cdeda add support for virtualization framework
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-07-22 16:55:47 +03:00
David Scott
2bf3726a81 Merge pull request #3778 from NeilGerring/fix-bad-rebase
Fix a merge conflict in openstack.yml example
2022-07-22 06:06:57 -07:00
David Gageot
acbef4424a Make the linter happy
Signed-off-by: David Gageot <david.gageot@docker.com>
2022-07-22 15:02:19 +02:00
David Gageot
0b136bf80d Write log entries as json
Signed-off-by: David Gageot <david.gageot@docker.com>
2022-07-22 14:41:23 +02:00
Avi Deitcher
ea61ff95ce Merge pull request #3806 from giggsoff/update-buildkit
Update buildkit to have platform fix
2022-07-22 07:36:07 -04:00
Petr Fedchenkov
3540a1bc34 Update buildkit to have platform fix
We noticed that we use host arch when we want to use previously build
image in oci-layout. Let's use fix on buildkit side and improve test.

Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>
2022-07-22 12:25:39 +03:00
Avi Deitcher
3f25e09ab5 Merge pull request #3805 from giggsoff/fixes-for-chained
Ability to parse args from Dockerfile
2022-07-20 16:11:47 -04:00
Petr Fedchenkov
5763c4f4bc Ability to parse args from Dockerfile
We should check if we have args in "FROM" and replace them:

ARG IMAGE=linuxkit/img
FROM ${IMAGE} as src

will be parsed as

FROM linuxkit/img as src

Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>
2022-07-20 17:07:43 +03:00
Avi Deitcher
403e8f9353 Merge pull request #3797 from deitch/use-images-from-cache
add support for building from cached images
2022-07-20 09:19:47 -04:00
Avi Deitcher
4e7f87e1ea Merge pull request #3804 from giggsoff/allow-docker-multiarch
Allow store to docker multiarch builds
2022-07-18 19:08:26 +03:00
David Scott
8070434cad Merge pull request #3542 from thaJeztah/configurable_socket
pkg/trim-after-delete: make docker socket path configurable
2022-07-17 03:26:52 -07:00
David Scott
a3327ef377 Merge pull request #3794 from giggsoff/net-admin-sysctl
Add CAP_NET_ADMIN capability to sysctl
2022-07-17 03:25:19 -07:00
Petr Fedchenkov
39f1649995 Allow store to docker multiarch builds
We do not allow to load into docker images that are targets another
platform differ from current arch. Assume this is because of no support
of manifest. But we can keep all images in place by adding arch suffix
and using tag without arch suffix to point onto current system arch. It
will help to use images from docker for another arch.

Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>
2022-07-15 16:51:18 +03:00
Avi Deitcher
a90ff542cd add support for building from cached images
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-07-14 12:53:34 +03:00
Avi Deitcher
44dfac2725 Merge pull request #3801 from waldner/master
New output format: iso-efi-initrd
2022-07-12 12:03:11 +03:00
Davide Brini
860934d5d9 New output format: iso-efi-initrd
This option was previously not available and required postprocessing of a `tar-kernel-initrd` output.

Comparison with `iso-efi`:

`iso-efi` only loads the kernel at boot, and the root filesystem is mounted from the actual boot media (eg, a CD-ROM - physical or emulated). This can often cause trouble (it has for us) for multiple reasons:
- the linuxkit kernel might not have the correct drivers built-in for the hardware (see #3154)
- especially with virtual or emulated CD-ROMs, performance can be abysmal: we saw the case where the server IPMI allowed using a ISO stored in AWS S3 over HTTP...you can imagine what happens when you start doing random I/O on the root fs in that case.
- The ISO image has the root device name baked in (ie, `/dev/sr0`) which fails if for some reason the CD-ROM we're running from doesn't end up using that device, so manual tweaking is required (see #2375)

`iso-efi-initrd`, on the other hand, packs the root filesystem as an initramfs (ie similar to what the raw output does, except that in this case we're preparing an ISO image), so both the kernel and the initramfs are loaded in memory by the boot loader and, once running, we don't need to worry about root devices or kernel drivers (and the speed is good, as everything runs in RAM).

Also, the generated ISO can be copied verbatim (eg with `dd`) onto a USB media and it still works.

Finally, the image size is much smaller compared to `iso-efi`.

IMHO, `iso-efi-initrd` could be used almost anywhere `iso-efi` would be used, or might even supersede it. I can't think of a scenario where one might explicitly want to use `iso-efi`.

Points to consider:

- Not tested under aarch64 as I don't have access to that arch. If the automated CI tests also test that, then it should be fine.
- I'm not sure what to put inside `images.yaml` for the `iso-efi-initrd` image. As it is it works of course (my personal image on docker hub), but I guess it'll have to be some more "official" image. However, that cannot be until this PR is merged, so it's kind of a chicken and egg situation. Please advise.
- I can look into adding the corresponding `iso-bios-initrd` builder if there is interest.

![cute seal](https://sites.psu.edu/siowfa16/files/2016/09/baby-seal-29vsgyf-288x300.jpg)

Signed-off-by: Davide Brini <waldner@katamail.com>
2022-07-11 20:26:14 +02:00
Avi Deitcher
ad3d8bdac0 Merge pull request #3800 from waldner/master
Fix: #3799 golint requires comments on non-main package for blank import
2022-07-10 17:58:49 +03:00
Davide Brini
9edeba42d7 Fix: #3799 golint requires comments on non-main package for blank import
Signed-off-by: Davide Brini <waldner@katamail.com>
2022-07-10 11:55:51 +02:00
Rolf Neugebauer
806c5c418d Merge pull request #3796 from deitch/document-cache
add docs to the cache spec
2022-07-06 10:10:10 +01:00
Avi Deitcher
9c95286a35 add docs to the cache spec
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-07-01 15:30:22 +03:00
Avi Deitcher
7778f34c0c Merge pull request #3791 from deitch/direct-buildkit
build directly with buildkit
2022-07-01 12:29:20 +03:00
Petr Fedchenkov
afefea9740 Add CAP_NET_ADMIN capability to sysctl
With linux kernel 5.15+ change of proc/sys/net/ipv4/ip_forward require
CAP_NET_ADMIN (https://github.com/torvalds/linux/commit/8292d7f6). We do
 not use ip_forward now, but we should be ready for future changes of
 conf files.

Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>
2022-06-28 16:55:32 +03:00
Avi Deitcher
0929aabe50 build directly with buildkit
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-06-28 10:36:30 +03:00
Avi Deitcher
fb111d3bbf add buildkit module and update packages and vendor
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-06-28 10:35:45 +03:00
Avi Deitcher
1073b2dd8d Merge pull request #3790 from giggsoff/support-gcp-vtpm
Support for vTPM on GCP
2022-06-21 18:43:09 +02:00
Petr Fedchenkov
a51f40f68b Support for vTPM on GCP
Add options to support vTPM-enabled VMs on GCP

Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>
2022-06-21 16:53:41 +03:00
Avi Deitcher
74b8215f0c Merge pull request #3788 from deitch/pkg-dummy
test pkg/dummy
2022-06-08 09:29:22 +03:00
Avi Deitcher
58486bbe88 remove silent from Makefile so we can see what command it is doing; sort dirs for consistency
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-06-07 21:16:13 +03:00
Avi Deitcher
857f53cdff test pkg/dummy
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-06-07 21:16:13 +03:00
Avi Deitcher
0cb96dcfa0 Merge pull request #3789 from deitch/continue-after-noarchs
when no archs for pkg to build, should continue rather than return
2022-06-07 21:12:34 +03:00
Avi Deitcher
9218f2577d when no archs for pkg to build, should continue rather than return, or it misses other packages
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-06-07 19:45:35 +03:00
Avi Deitcher
b56a0df58d Merge pull request #3787 from deitch/skip-build-if-no-platforms 2022-06-07 13:24:59 +03:00
Avi Deitcher
02fd6c48ee do not push if the tag and digest are identical
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-06-07 10:45:29 +03:00
Avi Deitcher
6cd8a874a6 do not try to build or push if no architectures are available
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-06-07 10:25:41 +03:00
Avi Deitcher
a8c4b174a3 Merge pull request #3785 from deitch/login-docker-hub
login to docker hub before publishing
2022-06-06 21:26:38 +03:00
Rolf Neugebauer
b33bda7a33 Merge pull request #3722 from gabchab/openssl-in-kernel-build
Add openssl to the kernel-build
2022-06-03 21:55:47 +01:00
Rolf Neugebauer
9e333a1358 Merge pull request #3775 from deitch/doc-kernel-builder
add docs about how to find the builder
2022-06-03 20:48:20 +01:00
Avi Deitcher
9c673d5650 login to docker hub before publishing
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-05-29 14:52:21 -07:00
Avi Deitcher
04aaebfa71 Merge pull request #3784 from deitch/download-linuxkit-in-dir
ensure bin/ dir exists, parametrize linuxkit filename
2022-05-29 11:56:45 -07:00
Avi Deitcher
a848205f9d ensure bin/ dir exists, parametrize linuxkit filename
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-05-29 10:27:55 -07:00
Avi Deitcher
e57122d0ef Merge pull request #3783 from deitch/properly-download-linuxkit 2022-05-29 07:11:15 -07:00
Avi Deitcher
830ac050c6 download artifact from other workflow
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-05-25 09:56:08 -10:00
Avi Deitcher
c972168d02 Merge pull request #3781 from deitch/pr-without-push
remove need for maintainers to build packages
2022-05-25 08:05:11 -10:00
David Scott
563060731e Merge pull request #3768 from fredericdalleau/kernel-udpate-220309
update 5.10 and 5.15 kernels to 5.10.104 resp 5.15.27
2022-05-25 14:19:19 +01:00
Frédéric Dalleau
d308349f96 ./scripts/update-component-sha.sh --hash 5.15.15 5.15.27 2022-05-25 13:39:10 +02:00
Frédéric Dalleau
0d8a1e3033 script/update-component-sha.sh --hash 5.10.92 5.10.104
Signed-off-by: Frédéric Dalleau <frederic.dalleau@docker.com>
2022-05-25 13:39:10 +02:00
Frédéric Dalleau
4ec8ef8784 Update amd64 kernel config to 5.10.104
Signed-off-by: Frédéric Dalleau <frederic.dalleau@docker.com>
2022-05-25 13:39:09 +02:00
Frédéric Dalleau
71c04547b2 Update arm64 kernel config to 5.10.104
Signed-off-by: Frédéric Dalleau <frederic.dalleau@docker.com>
2022-05-25 13:39:09 +02:00
Frédéric Dalleau
2028ed927d Update kernel version to 5.10.104
Signed-off-by: Frédéric Dalleau <frederic.dalleau@docker.com>
2022-05-25 13:39:09 +02:00
Frédéric Dalleau
7e79fd449a Update amd64 kernel config to 5.15.27
Signed-off-by: Frédéric Dalleau <frederic.dalleau@docker.com>
2022-05-25 13:39:09 +02:00
Frédéric Dalleau
420a08c709 Update arm64 kernel config to 5.15.27
Signed-off-by: Frédéric Dalleau <frederic.dalleau@docker.com>
2022-05-25 13:39:09 +02:00
Frédéric Dalleau
2e62dd078c Update kernel version to 5.15.27
Signed-off-by: Frédéric Dalleau <frederic.dalleau@docker.com>
2022-05-25 13:39:09 +02:00
Avi Deitcher
cd5cea8c02 remove need for maintainers to build packages
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-05-23 20:24:07 -10:00
Neil Gerring
33d86ddebe Fix a merge conflict in openstack.yml example
Signed-off-by: Neil Gerring <ng@neilgerring.co.uk>
2022-05-13 14:13:06 +01:00
Avi Deitcher
3351eee596 add docs about how to find the builder
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-04-24 17:44:24 +03:00
Avi Deitcher
b710224cdf Merge pull request #3774 from zededa-yuri/build-arg
Declare build-args in build.yml
2022-04-15 12:38:37 +03:00
Yuri Volchkov
1a013f4424 Declare build-args in build.yml
This allows multiple build flavors for a single codebase, without
sacrificing reproducible builds. The build-args are set in build.yml,
which is typically under the source control (if it is not, then no
reproducible builds are possible anyways). Meaning that mutating
build-args would result in setting "dirty" flag.

Intended use of this commit is to switch between build flavors by
specifying a different yaml file (presumably also under the version
control)  by  `-build-yml` option.

Because it is impossible to build a final image from packages in
cache, the test for this feature relies on the `RUN echo $build-arg`
output during the `pkg build` process.

Signed-off-by: Yuri Volchkov <yuri@zededa.com>
2022-04-13 17:36:55 +00:00
Avi Deitcher
e3bedd0985 Merge pull request #3772 from deitch/runc-1.1 2022-03-23 06:51:00 -07:00
Avi Deitcher
b3f276f8f9 update linuxkit/init dependencies
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-03-21 14:15:28 +02:00
Avi Deitcher
faf5a68ad6 runc to 1.1
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-03-21 14:01:54 +02:00
Avi Deitcher
109a5ed3e2 Merge pull request #3771 from deitch/containerd-separate 2022-03-21 12:38:27 +02:00
Avi Deitcher
200e0ee94a update dependencies of pkg/init and pkg/containerd
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-03-21 01:22:19 +02:00
Avi Deitcher
0b39a484b1 containerd-dev separate
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-03-21 01:20:45 +02:00
David Scott
12b59634f3 Merge pull request #3724 from djs55/cgroupv2-mkdir
service: handle creating cgroupv2 cgroups
2022-03-14 10:54:23 +01:00
David Scott
521b323270 test: extend cgroupv2 case to support runtime: cgroups:
Signed-off-by: David Scott <dave@recoil.org>
2022-03-13 19:57:28 +00:00
David Scott
f14ad44ce4 update shas for pkg/init
Signed-off-by: David Scott <dave@recoil.org>
2022-03-13 19:57:25 +00:00
David Scott
c4d7f5d993 service: handle creating cgroupv2 cgroups
These are easier to create than cgroupv1 cgroups as they are only a
single mkdir.

Detect which mode we are in by looking for the presence of the
cgroupv2-only cgroup.controllers file.

Signed-off-by: David Scott <dave@recoil.org>
2022-03-13 19:37:05 +00:00
Avi Deitcher
0e2887ce5c Merge pull request #3766 from deitch/getty-hvc0 2022-02-28 22:03:09 +02:00
Avi Deitcher
8328d4a589 update examples to latest getty
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-02-28 19:37:44 +02:00
Avi Deitcher
6fbed84347 getty with hvc0
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-02-28 19:24:45 +02:00
Rolf Neugebauer
2559fe49b6 Merge pull request #3758 from rn/kern-up
Kernel update to 5.10.92/5.4.172 add 5.15.x, remove 5.12.x
2022-01-18 20:56:23 +00:00
Rolf Neugebauer
9f2ff29e5e tests: Add 5.15.x kernel tests (renamed from 5.12)
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2022-01-18 12:55:03 +00:00
Rolf Neugebauer
bc3f72b518 Update kernel config test to latest
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2022-01-18 12:49:30 +00:00
Rolf Neugebauer
76d4f3d03a test/pkg: Disable DEVKMEM test for kernels older than 5.13.x
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2022-01-18 12:42:42 +00:00
Rolf Neugebauer
1fd890a76b Bump kernel images to 5.10.92/5.4.172
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2022-01-18 12:41:58 +00:00
Rolf Neugebauer
ae87f6a1e2 kernel: Bump Intel ucode to microcode-20210608
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2022-01-18 01:08:45 +00:00
Rolf Neugebauer
bd4d8ff44e kernel: Add support for 5.15.x kernel
The kernel config is derived from the 5.12 kernel
config we used to have

We explicitly enable RANDOMIZE_KSTACK_OFFSET_DEFAULT
which is off by default.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2022-01-18 01:07:41 +00:00
Rolf Neugebauer
ff606216e4 kernel: Update to 5.10.92/5.4.156
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2022-01-18 00:46:21 +00:00
Rolf Neugebauer
8e03866f69 kernel: Remove 5.12.x kernel since it has been EOLed
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2022-01-18 00:37:23 +00:00
Avi Deitcher
1df038e1b0 Merge pull request #3753 from deitch/rationalize-args
replace Build many args with opts struct
2022-01-14 11:21:37 +02:00
Avi Deitcher
f6b9dc1717 replace Build many args with opts struct
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-01-13 12:50:58 +02:00
Dave Tucker
951a58cf06 Merge pull request #3627 from dave-tucker/mod
Go Module-ify all the things
2022-01-12 08:20:20 +00:00
Dave Tucker
0b739c80e9 pkg: update shas
Update the SHA of all packages that have been go-mod-ififed
such that they are use for testing in CI

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2022-01-12 00:04:37 +00:00
Dave Tucker
9b8ae51481 ci: Ensure binfmt is set up for arm64. Skip s390x
s390x emulation is broken. All emulated builds fail with.
Illegal Instruction and/or Segfaults.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2022-01-11 21:11:49 +00:00
Marcus Weiner
e26aa2e490 Move metadata package to go modules
Signed-off-by: Marcus Weiner <marcus.weiner@gmail.com>
2022-01-11 21:11:49 +00:00
Dave Tucker
2cf5cf65b0 format: Use go modules
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2022-01-11 21:11:49 +00:00
Dave Tucker
013416f923 rngd: Use go modules
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2022-01-11 21:11:49 +00:00
Dave Tucker
01e242cad1 trim-after-delete: Add go.mod
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2022-01-11 21:11:48 +00:00
Dave Tucker
158461502a sysfs: Add go.mod
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2022-01-11 21:11:48 +00:00
Dave Tucker
3244052389 sysctl: Add go.mod
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2022-01-11 21:11:48 +00:00
Dave Tucker
af7b87e99a mount: Use Go Modules
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2022-01-11 21:11:43 +00:00
Dave Tucker
93df9f736c memlogd: Use Go Modules
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2022-01-11 20:18:39 +00:00
Dave Tucker
3594ec48d4 logwrite: Use Go Modules
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2022-01-11 20:18:38 +00:00
Dave Tucker
0ee4d71562 kmsg: Use Go Modules
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2022-01-11 20:18:38 +00:00
Dave Tucker
65da053ac3 host-timesync-daemon: Use Go Modules
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2022-01-11 20:18:38 +00:00
Dave Tucker
599aedc9c5 format: Use Go Modules
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2022-01-11 20:18:38 +00:00
Dave Tucker
4ededf5ca3 extend: Migrate to Go Modules
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2022-01-11 20:18:38 +00:00
Dave Tucker
b22a7853a0 binfmt: Migrate to Go Modules
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2022-01-11 20:18:38 +00:00
Dave Tucker
fcaab549fe init: Migrate to Go Modules
Moves vendoring over to Go modules.
Fixes issues found by Go Vet in Go 1.16

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2022-01-11 20:18:37 +00:00
Avi Deitcher
5b7466732a Merge pull request #3752 from deitch/move-arch-field 2022-01-10 20:00:34 +02:00
Avi Deitcher
84e3b80863 pass target architecture explicitly
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-01-10 10:36:22 +02:00
Rolf Neugebauer
b5bf29c0f6 Merge pull request #3747 from sprat/fix-sshd
Fix sshd
2022-01-01 22:46:56 +00:00
Sylvain Prat
c453e8ed26 Update sshd hashes
Signed-off-by: Sylvain Prat <sylvain.prat@gmail.com>
2022-01-01 15:24:25 +01:00
David Scott
6a11c118f4 Merge pull request #3678 from olljanat/docker-run-print-stderr
Print docker run stderr in-case of error
2021-12-30 10:37:30 +00:00
Avi Deitcher
210a308602 Merge pull request #3746 from sprat/fix-openntpd
openntpd: the "-s" flag is obsolete, this generates some error messages in the ntpd logs
2021-12-29 21:24:02 +02:00
Rolf Neugebauer
88ada58c28 Merge pull request #3745 from fredericdalleau/runc-1.0.3
Upgrade runc to 1.0.3
2021-12-29 16:31:25 +00:00
Sylvain Prat
a71a52b57c SSHd: allow access to all devices & fix a warning with tini
Signed-off-by: Sylvain Prat <sylvain.prat@gmail.com>
2021-12-22 19:03:43 +01:00
Sylvain Prat
ea0570891c Changed openntpd hashes
Signed-off-by: Sylvain Prat <sylvain.prat@gmail.com>
2021-12-22 17:20:34 +01:00
Sylvain Prat
42a3f80bec The "-s" flag is obsolete, this generates some errors messages in the ntpd logs
Signed-off-by: Sylvain Prat <sylvain.prat@gmail.com>
2021-12-22 17:13:59 +01:00
David Scott
341c4a4f5e Update shas for linuxkit/runc
./scripts/update-component-sha.sh linuxkit/runc:21dbbda709ae138de0af6b0c7e4ae49525db5e88  linuxkit/runc:9f7aad4eb5e4360cc9ed8778a5c501cce6e21601

Signed-off-by: David Scott <dave@recoil.org>
2021-12-16 19:10:58 +01:00
Frédéric Dalleau
3e38a8c323 Bump runc to 1.0.3
Signed-off-by: Frédéric Dalleau <frederic.dalleau@docker.com>
2021-12-16 19:10:58 +01:00
Frédéric Dalleau
36853c74ef Revert "runc: don't mount /dev with ro"
This reverts commit 380f36cc1a.

Now that runc includes a fix for this, this patch can be reverted

Signed-off-by: Frédéric Dalleau <frederic.dalleau@docker.com>
2021-12-16 19:10:58 +01:00
Rolf Neugebauer
be43e99310 Merge pull request #3743 from aoxn/master
fix: #3742 golint requires comments on non-main package for blank import
2021-12-14 17:29:14 +00:00
Rolf Neugebauer
2e9d7540ae Merge pull request #3740 from sprat/fix-acpid-binds
Fix acpid devices
2021-12-14 12:59:49 +00:00
谢瑶瑶
f5a720bcbb fix: #3742 golint requires comments on non-main package for blank import
Signed-off-by: 谢瑶瑶 <yaoyao.xyy@alibaba-inc.com>
2021-12-14 13:50:59 +08:00
Sylvain Prat
4bbb32e68c Update acpid hash
Signed-off-by: Sylvain Prat <sylvain.prat@gmail.com>
2021-12-09 21:05:34 +01:00
Sylvain Prat
1c3e40ea2b Fixes #3738: add missing devices to acpid
According to busybox' acpid code, acpid should be allowed to access /dev/input/event*, so we all all "input" devices (whose major number is 13)

Signed-off-by: Sylvain Prat <sylvain.prat@gmail.com>
2021-12-09 21:05:34 +01:00
Avi Deitcher
cd4c49b469 Merge pull request #3642 from deitch/releasing-docs
document and simplify some releasing
2021-11-29 19:38:25 +02:00
Avi Deitcher
4e7abb5250 document and simplify some releasing
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-11-29 16:39:06 +02:00
David Scott
33a4330cf6 Merge pull request #3737 from ebriney/memlogd-time-nano
Use RFC3339Nano for timestamps
2021-11-28 10:29:17 +00:00
David Scott
6a9c6abfba Update hashes for pkg/memlogd
Signed-off-by: David Scott <dave@recoil.org>
2021-11-27 20:01:21 +00:00
Emmanuel Briney
e254145257 Use RFC3339Nano for timestamps
Signed-off-by: Emmanuel Briney <emmanuel.briney@docker.com>
2021-11-26 16:41:51 +01:00
Avi Deitcher
46ef83c979 Merge pull request #3702 from deitch/alpine-314
bump alpine to 3.14, remove go version hack
2021-11-16 14:56:01 +02:00
David Scott
1bd84de2b3 Merge pull request #3730 from deitch/bump-gcr
bump go-containerregistry and manifest-tool to latest
2021-11-10 07:57:27 +00:00
Avi Deitcher
58813e8791 bump go-containerregistry and manifest-tool to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-11-09 18:48:06 +02:00
Avi Deitcher
260cc85b52 Update package tags
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-11-09 14:02:43 +02:00
Avi Deitcher
7549a63c9f pkgs: Update packages to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-11-09 14:02:42 +02:00
Avi Deitcher
bcbabcac28 Update use of test packages to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-11-09 14:02:41 +02:00
Rolf Neugebauer
78eef5b729 Merge pull request #3726 from djs55/virtiofs
Run CI with updated hashes from #3715 (CONFIG_VIRTIOFS)
2021-11-09 10:03:01 +00:00
David Scott
833b3e775d Update linuxkit/kernel:5.4.129 to linuxkit/kernel:5.4.156
Signed-off-by: David Scott <dave@recoil.org>
2021-11-08 13:51:34 +00:00
David Scott
2160964c1a Update kernel:5.10.47 to kernel:5.10.76
Signed-off-by: David Scott <dave@recoil.org>
2021-11-08 13:50:08 +00:00
Avi Deitcher
04b90b986a tests: Update packages to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-11-07 16:41:36 +02:00
Avi Deitcher
897d7a5071 Update use of tools to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-11-07 16:40:26 +02:00
Avi Deitcher
0e69ea8f5d tools: Update to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-11-07 16:39:16 +02:00
Avi Deitcher
c0ef25e4b7 tools/alpine: Update to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-11-07 13:43:45 +02:00
Avi Deitcher
cc57d67c99 bump alpine to 3.14, remove go version hack
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-11-07 13:43:45 +02:00
Rolf Neugebauer
7475eb428b Merge pull request #3728 from deitch/update-component-hash-yaml-only
restrict update to just yaml files
2021-11-05 23:22:25 +00:00
Avi Deitcher
920a83da32 restrict update to just yaml files
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-11-05 15:32:36 +02:00
Avi Deitcher
c07b11acb9 Merge pull request #3729 from deitch/extract-more-yaml
extract more hard-coded yaml
2021-11-05 09:21:44 -04:00
Avi Deitcher
e1dd1af1b9 extract more hard-coded yaml
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-11-05 13:07:06 +02:00
Frédéric Dalleau
56c08df66b Refresh configs for kernel update
Signed-off-by: Frédéric Dalleau <frederic.dalleau@docker.com>
2021-11-05 10:28:24 +01:00
Frédéric Dalleau
3cf25af73e kernel: update LTS kernels to 5.10.76/5.4.156
Signed-off-by: Frédéric Dalleau <frederic.dalleau@docker.com>
2021-11-05 10:28:24 +01:00
Frédéric Dalleau
e9e3a8ddce Refresh configs for virtiofs
Signed-off-by: Frédéric Dalleau <frederic.dalleau@docker.com>
2021-11-05 10:28:12 +01:00
Frédéric Dalleau
ad4f9a77a0 Enable CONFIG_VIRTIO_FS=y
Signed-off-by: Frédéric Dalleau <frederic.dalleau@docker.com>
2021-11-05 10:16:18 +01:00
Avi Deitcher
01a1aac73c Merge pull request #3727 from deitch/embed-hashes 2021-11-05 04:46:45 -04:00
Avi Deitcher
f8471d443c Merge pull request #3723 from deitch/update-component-hash-pkg 2021-11-04 15:18:04 -04:00
Avi Deitcher
0660ace86f extract hard-coded default image builders into file
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-11-04 14:51:15 -04:00
Rolf Neugebauer
34b0a786e7 Merge pull request #3725 from djs55/fix-windows-pkg-build
linuxkit: fix pkg build on Windows
2021-10-31 10:54:45 +00:00
Avi Deitcher
a05f612aa4 update-component-sha --pkg option
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-10-31 05:38:32 -04:00
David Scott
f5f5dce318 linuxkit: fix pkg build on Windows
Previously when we set `cmd.Stderr = os.Stderr`, the stderr from buildx
would be mixed with the image tar, corrupting it.

Work around this (Windows-specific) problem by adding an explicit
indirection via a io.Pipe()

Signed-off-by: David Scott <dave@recoil.org>
2021-10-29 12:01:35 +01:00
Gabriel Chabot
c37046f617 Add openssl to the kernel-build
Signed-off-by: Gabriel Chabot <gabriel.chabot@qarnot-computing.com>
2021-10-28 10:55:16 +02:00
Rolf Neugebauer
f5a1541e00 Merge pull request #3719 from tonistiigi/cgroupv2
init: add support for cgroupv2
2021-10-27 09:26:11 +01:00
David Scott
10599f776a test: add a case for cgroupv2
Signed-off-by: David Scott <dave@recoil.org>
2021-10-26 20:07:38 +01:00
David Scott
9d16e2a2b9 test: the README.md says the numbers correspond to the first letter
A few of these tests appear to be misnumbered, so renumber them.

Signed-off-by: David Scott <dave@recoil.org>
2021-10-26 20:04:51 +01:00
David Scott
e8f8a409e8 Update hashes for pkg/init
Signed-off-by: David Scott <dave@recoil.org>
2021-10-26 19:52:22 +01:00
Tonis Tiigi
5af7c526ec init: add support for cgroupv2
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2021-10-24 23:03:51 -07:00
Rolf Neugebauer
e71deb3862 Merge pull request #3718 from djs55/containup-test
Update runc, containerd, add devices: and fix readonly
2021-10-22 21:10:30 +01:00
David Scott
e4776e8778 Update hash for containerd 1.4.11
Signed-off-by: David Scott <dave@recoil.org>
2021-10-21 11:34:59 +01:00
David Scott
476d5a0f2e Update alpine for containerd
Signed-off-by: David Scott <dave@recoil.org>
2021-10-21 11:34:59 +01:00
David Scott
42670404f5 alpine: Update versions file
Signed-off-by: David Scott <dave@recoil.org>
2021-10-21 11:34:59 +01:00
David Scott
34d0aef7d4 Update containerd to 1.4.11
We can remove the workaround for musl using faccessat(2) and breaking
runc, because the fix is in rc93:

https://wiki.alpinelinux.org/wiki/Release_Notes_for_Alpine_3.14.0#faccessat2

Signed-off-by: David Scott <dave@recoil.org>
2021-10-21 11:34:55 +01:00
David Scott
2ff94c0d72 test: kmsg requires /dev/console
Signed-off-by: David Scott <dave@recoil.org>
2021-10-18 21:05:44 +01:00
David Scott
bdb1c13473 test: logwrite requires /dev/console
Signed-off-by: David Scott <dave@recoil.org>
2021-10-18 21:05:44 +01:00
David Scott
5a12600412 test: init-containerd requires /dev/console
Signed-off-by: David Scott <dave@recoil.org>
2021-10-18 21:05:44 +01:00
David Scott
dcecbe57c6 test: containerd tests need losetup which needs block device access
Signed-off-by: David Scott <dave@recoil.org>
2021-10-18 21:05:26 +01:00
David Scott
1c02c9ea86 test: losetup needs block device access
Signed-off-by: David Scott <dave@recoil.org>
2021-10-18 21:03:29 +01:00
David Scott
d4c6ab742b Update hashes for pkg/...
Signed-off-by: David Scott <dave@recoil.org>
2021-10-18 21:02:44 +01:00
David Scott
7434e5f5aa pkg/kmsg: grant access to /dev/kmsg
Signed-off-by: David Scott <dave@recoil.org>
2021-10-18 21:02:44 +01:00
David Scott
6bc99c5ff2 pkg/metadata: grant access to all block devices
Signed-off-by: David Scott <dave@recoil.org>
2021-10-18 21:02:36 +01:00
David Scott
9209808ac3 pkg/losetup: grant access to all block devices
Signed-off-by: David Scott <dave@recoil.org>
2021-10-18 21:02:18 +01:00
David Scott
344d974ae1 pkg/extend: grant access to all block devices
Signed-off-by: David Scott <dave@recoil.org>
2021-10-18 21:02:11 +01:00
David Scott
71fa9f2cae pkg/dm-crypt: grant access to all devices
The package needs block devices e.g. for /dev/sda

It also needs character devices for /dev/mapper/

Signed-off-by: David Scott <dave@recoil.org>
2021-10-18 21:01:01 +01:00
David Scott
5895976b33 tools/mkimage: grant access to block devices
Signed-off-by: David Scott <dave@recoil.org>
2021-10-18 21:00:55 +01:00
David Scott
380f36cc1a runc: don't mount /dev with ro
After runc 1.0.0-rc92 mounting /dev with ro will fail to start the
container with an error trying to `mkdir /dev/...` (for example
`/dev/pts`). This can be observed following the runc example

Comparing our `config.json` with the working one generated by
`runc spec`, both have a readonly rootfs (good) but the `runc spec`
one does not set `ro` in the `/dev` mount options.

This patch fixes readonly onboot containers by removing the "ro"
option from `/dev`, to match the `runc spec` example.

Signed-off-by: David Scott <dave@recoil.org>
2021-10-18 21:00:04 +01:00
David Scott
0cfaa9ce65 runc: update to v1.0.2
Signed-off-by: David Scott <dave@recoil.org>
2021-10-18 21:00:04 +01:00
Rolf Neugebauer
0dd8086d39 Update YAMLs to latest runc/containerd/test-containerd
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-10-16 16:57:15 +01:00
Rolf Neugebauer
6efae97c20 Update alpine for containerd
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-10-16 16:57:15 +01:00
Rolf Neugebauer
0e00eddd6b alpine: Fix push-manifest.sh
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-10-16 16:57:15 +01:00
Rolf Neugebauer
d2307ebae3 alpine: Update versions file
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-10-16 16:57:15 +01:00
David Scott
5124698b47 alpine: update containerd to 1.4.6
As suggested on https://github.com/linuxkit/linuxkit/pull/3554#issuecomment-852910630

Signed-off-by: David Scott <dave@recoil.org>
2021-10-16 16:57:15 +01:00
David Scott
7d76051bb0 runc: update to v1.0.0-rc95
Signed-off-by: David Scott <dave@recoil.org>
2021-10-16 16:57:15 +01:00
Rolf Neugebauer
d71299a2c1 Merge pull request #3716 from djs55/containup-devices2
Add OCI devices to yaml (needed by getty with runc v1.0.0-rc95)
2021-10-16 10:35:35 +01:00
David Scott
c2d47b47ff Update hashes for pkg/swap
Signed-off-by: David Scott <dave@recoil.org>
2021-10-15 08:19:03 +01:00
David Scott
c3642dd089 Update hashes for pkg/mount
Signed-off-by: David Scott <dave@recoil.org>
2021-10-15 08:19:03 +01:00
David Scott
97d054da5d Update hashes for pkg/getty
Signed-off-by: David Scott <dave@recoil.org>
2021-10-15 08:18:58 +01:00
David Scott
21a7155824 Update hashes for pkg/format
Signed-off-by: David Scott <dave@recoil.org>
2021-10-14 16:14:21 +01:00
David Scott
46ea02f65b moby: device "all" will add to the cgroup whitelist
After the runc security advisory[1] the default cgroup device
whitelist was changed.

In previous versions every container had "rwm" (read, write, mknod)
for every device ("a" for all). Typically this was overridden by
container engines like Docker. In LinuxKit we left the permissive
default.

In recent `runc` versions the default allow-all rule was removed,
so a container can only access a device if it is specifically
granted access, which LinuxKit handles via a device: entry.

However it is inconvenient for pkg/format, pkg/mount, pkg/swap
to list all possible block devices up-front. Therefore we add the
ability to grant access to an entire class of device with a single
rule:

```
- path: all
  type: b
```

Obviously a paranoid user can still override this with a specific
major/minor number in a device: rule.

[1] https://github.com/opencontainers/runc/security/advisories/GHSA-g54h-m393-cpwq

Signed-off-by: David Scott <dave@recoil.org>
2021-10-14 16:14:21 +01:00
David Scott
24db42dd68 moby: add a Devices array to the image yml
According to https://github.com/linuxkit/linuxkit/pull/3684#issuecomment-860128095

runc removed the console as a default device, so now it must be specified
explicitly in the OCI config.

See 60e21ec26e

The similar code in moby/moby is here: https://github.com/moby/moby/blob/master/oci/devices_linux.go

This patch allows packages to declare a `devices` array, which can contain `/dev/console` etc.

Signed-off-by: David Scott <dave@recoil.org>
2021-10-14 16:14:05 +01:00
Rolf Neugebauer
d0145160a8 Merge pull request #3717 from djs55/run-qemu-m1
Fix `linuxkit run qemu` on macOS on Apple Silicon
2021-10-13 21:16:48 +01:00
David Scott
c779e894da Fix linuxkit run qemu on macOS on Apple Silicon
Signed-off-by: David Scott <dave@recoil.org>
2021-10-13 14:38:20 +01:00
Rolf Neugebauer
46d4edc967 Merge pull request #3711 from djpbessems/patch-1
Include `lvm2`
2021-08-14 13:30:35 +01:00
Rolf Neugebauer
2eb87b7ffb Merge pull request #3713 from rn/notrust
Update YAML files
2021-08-10 23:39:44 +01:00
Rolf Neugebauer
4eb60514c9 yaml: Update use of alpine:3.11 to alpine:3.13
Seceral YAML files used alpine:3:11. Update them to 3.13

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-08-10 00:13:52 +01:00
Rolf Neugebauer
ce73340d6c examples: Prefix examples for platforms with platform-
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-08-10 00:11:48 +01:00
Rolf Neugebauer
f52c7f17c8 yaml: Remove trust section from examples and tests
With 561ce6f4be ("Remove Notary and Content Trust") we
removed support for content trust. No need to have it
in the YAMLs either.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-08-10 00:07:13 +01:00
Danny Bessems
098f5c86c0 Include lvm2
Signed-off-by: djpbessems <danny@bessems.eu>
2021-08-06 15:14:38 +02:00
Rolf Neugebauer
4e600a3790 Merge pull request #3704 from rn/kern-up
Update kernels to 5.10.47/5.4.129, remove 5.11.x and add 5.12.x
2021-07-06 23:22:57 +01:00
Rolf Neugebauer
47198556c2 Update YAMLs to latest kernel config test
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-07-04 13:54:55 +01:00
Rolf Neugebauer
88352cd358 pkg: Drop oprofile fs check from kernel config check
oprofile kernel support was dropped with 5.12.x with:
f8408264c77a ("drivers: Remove CONFIG_OPROFILE support")

However the commit stated that the userspace oprofile tools
had stopped using the kernel interface for a log time. So
drop the check.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-07-04 13:47:12 +01:00
Rolf Neugebauer
4389918aef Update YAMLs to latest kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-07-04 11:16:45 +01:00
Rolf Neugebauer
f4afb12454 tests: Add tests for 5.12.x kernel
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-07-04 11:16:45 +01:00
Rolf Neugebauer
f20e08bcb8 kernel: Enable CONFIG_SQUASHFS_ZSTD
requested/suggested by @olljanat

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-07-04 11:16:45 +01:00
Rolf Neugebauer
01b46ba789 kernel: Add support for 5.12.x kernel
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-07-04 11:16:45 +01:00
Rolf Neugebauer
a54b9509ae tests: Remove 5.11 tests
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-07-04 11:16:45 +01:00
Rolf Neugebauer
1e97e29be3 kernel: Remove 5.11.x as it is not longer maintained
Leave it for -rt kernels

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-07-04 11:16:45 +01:00
Rolf Neugebauer
43d3ff0630 kernel: Update LTS kernels to 5.10.47/5.4.129
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-07-04 11:16:45 +01:00
Rolf Neugebauer
25c796e854 kernel: Fix Dockerfile.kconfig
KERNEL_VERSIONS apparently needs to be specified as
argument after the FROM

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-07-04 11:16:45 +01:00
Rolf Neugebauer
a4c518f696 kernel: Remove support for s390x
WIP #3676

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-07-04 11:16:45 +01:00
Rolf Neugebauer
36d8026b17 Merge pull request #3700 from TiejunChina/master-dev
enable 5.11.x-rt
2021-07-03 10:13:15 +01:00
Rolf Neugebauer
aaa30dfc55 Merge pull request #3691 from kmjohansen/topics/kj/bcc-up
Upgrade bcc to 0.20.0 and re-enable it in the kernel build
2021-07-03 00:30:03 +01:00
Rolf Neugebauer
bf5ca81a93 Merge pull request #3701 from fredericdalleau/disable-bpfilter
Disable CONFIG_BPFILTER and CONFIG_BPFILTER_UMH
2021-07-02 09:12:08 +01:00
Tiejun Chen
a8879bac91 update example-rt
Signed-off-by: Tiejun Chen <tiejun.china@gmail.com>
2021-06-29 11:09:26 -07:00
Tiejun Chen
8183676233 enable 5.11.x-rt build
Signed-off-by: Tiejun Chen <tiejun.china@gmail.com>
2021-06-29 11:09:23 -07:00
Tiejun Chen
ab288c4526 port 5.11.4-rt
Signed-off-by: Tiejun Chen <tiejun.china@gmail.com>
2021-06-29 11:09:20 -07:00
Frederic Dalleau
194a055d1c Disable CONFIG_BPFILTER and CONFIG_BPFILTER_UMH
CONFIG_BPFILTER is aimed to provide a replacement for netfilter.

When CONFIG_BPFILTER is enabled, the kernel tries to contact a user mode helper
for each iptable rule update. However the implementation of this helper has not
been upstreamed yet. The communication thus fails and the kernel then falls back
to netfilter.
As a result, the rule update takes more than ten times the duration of the
netfilter implementation alone.

This has been reported by Docker Desktop users for whom it can take minutes to
start a container sharing a few hundred ports. https://github.com/for-mac/issues/5668

More details on the situation is described in https://lwn.net/Articles/822744/.

Signed-off-by: Frederic Dalleau <frederic.dalleau@docker.com>
2021-06-28 21:14:27 +02:00
Avi Deitcher
39ad5a1ab6 Merge pull request #3696 from deitch/fix-arch-push
check for arch when pulling to cache, push by descriptor
2021-06-25 14:20:22 +03:00
Avi Deitcher
ebbb1281f3 one-more
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-06-23 13:40:55 +03:00
Avi Deitcher
a05b0ac923 check for arch when pulling to cache, push by descriptor
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-06-21 23:33:34 +03:00
Avi Deitcher
ccece6a488 Merge pull request #3692 from deitch/bump-manifest-tool
bump manifest-tool to latest
2021-06-16 16:47:44 +03:00
Avi Deitcher
873f61e695 bump manifest-tool to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-06-15 20:28:44 +03:00
Avi Deitcher
acc34e5ee3 Merge pull request #3688 from deitch/manifest-anywhere
Push arch-specific tags, always build index from registry
2021-06-14 14:25:50 +03:00
Avi Deitcher
df36b7aa7d Push arch-specific tags, always build index from registry
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-06-10 13:33:16 +03:00
Krister Johansen
13068d54d4 Enable bcc in the kernel build again.
The bcc portion of the build had been disabled because it wasn't
building.  Now that bcc is building again, add it back to the list of
default targets in the kernel build.

Signed-off-by: Krister Johansen <krister.johansen@oracle.com>
2021-06-08 21:00:05 -07:00
Krister Johansen
898232ceab Get BCC building again.
This moves up to bcc 0.20.0 and builds on the latest 3.13 Alpine base
image.  It uses libelf from Alpine, which allows us to drop a number of
the patches we were carrying and reduce the number of steps taken in the
bcc build.

This builds for me on a branch of tip against 5.11.x, 5.10.x,
5.10.x-dbg, and 5.4.x on x86_65.  I have not had a chance to attempt
this on other platforms due to lack of hardware.

Signed-off-by: Krister Johansen <krister.johansen@oracle.com>
2021-06-08 20:57:10 -07:00
David Scott
79b32dc2c7 Merge pull request #3554 from thaJeztah/update_docker_containerd
Update docker 20.10.6
2021-06-02 10:34:40 +01:00
Rolf Neugebauer
c49cd91386 Merge pull request #3679 from rn/kern-up
Update kernels to 5.11.22/5.10.39/5.4.121
2021-06-02 08:59:24 +01:00
Rolf Neugebauer
0d8bb78f07 tests: Fix kernel builder tests
Some kernels are only build for some architectures. The
test assumed that all kernels were build for all architectures.

Now, get a list of architectures for which we have a given
kernel image and then make sure the builder images pointed
to by the label and the builder image tagged by convention
exist and point to the same thing.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-06-01 22:51:10 +00:00
Rolf Neugebauer
0e025d8fb9 Update YAMLs and tests to latest kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-05-28 09:18:12 +01:00
Rolf Neugebauer
6b0e1b709d tests: Copy kernel-builder from the correct location
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-05-27 13:06:15 +01:00
Rolf Neugebauer
5f959a9bcd kernel: Move build label add to Makefile
where the other labels are defined

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-05-27 13:06:15 +01:00
Rolf Neugebauer
70ac373206 kernel: Fix ARG handling in Dockerfiles
At least for the perf image I got an error when
not having the ARG up front.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-05-27 00:16:26 +00:00
Rolf Neugebauer
c25cc37643 kernel: Remove remnants of DOCKER_CONTENT_TRUST
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-05-27 00:16:26 +00:00
Rolf Neugebauer
2c728f89d9 kernel: Update to 5.11.22/5.10.39/5.4.121
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-05-26 22:33:23 +01:00
Rolf Neugebauer
9c7f158bd1 kernel: Fix KERNEL_SOURCE
Declare KERNEL_SOURCE as an environment variable so it
get's picked up in kernel-source-info

fixes #3653

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-05-26 22:33:23 +01:00
Rolf Neugebauer
fb283d2baf kernel: Remove out of kernel WireGuard build
5.4.x is the only kernel left which does not have
WireGuard in tree and it people should be using more
recent kernels. Remove the now special case for
compiling out of tree WireGuard.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-05-26 22:33:23 +01:00
Rolf Neugebauer
1337e07d3e kernel: Remove 4.19 patches
Must have missed those when removing 4.19 support in
f9f85bd4b3 ("kernel: Remove older LTS kernels")

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-05-26 22:33:23 +01:00
Olli Janatuinen
49cbe047ce Print docker run stderr in-case of error
Signed-off-by: Olli Janatuinen <olli.janatuinen@gmail.com>
2021-05-26 22:55:52 +03:00
Dave Tucker
6312d58032 Merge pull request #3659 from edvinerikson/fix-install
fix: make command
2021-05-26 14:27:52 +01:00
Avi Deitcher
77026d5283 Merge pull request #3671 from deitch/cache-export
Add support for cache export
2021-05-26 14:26:26 +03:00
Dave Tucker
452910c625 Makefile: Don't encode bindir in the tar archive
Prior to this commit we go build -o bin/foo, archive it, and
expand the archive, leaving the resulting artifact in bin.

This doesn't allow us to easily change the bin directory, or
move parts of the makefile around to make things more modular.

This commit changes the behaviour to:
go build -o foo, archive it, expand to `bin`

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2021-05-26 11:18:41 +01:00
Avi Deitcher
4795c993ee Add support for cache export
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-05-26 13:13:37 +03:00
Rolf Neugebauer
c63162964f Merge pull request #3651 from deitch/kernel-tagging
tag kernel with builder version; simplify Makefile
2021-05-25 22:55:31 +01:00
Avi Deitcher
d053a0f279 tag kernel with builder version; simplify Makefile
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-05-25 15:51:01 +03:00
Rolf Neugebauer
fc09bc084a Merge pull request #3666 from deitch/alpine-hash
calculate manifest using same method as lkt pkg push via git ls-tree
2021-05-21 23:20:44 +01:00
Avi Deitcher
4adc04a24d calculate manifest hash-tag using git ls-tree
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-05-21 01:31:14 +03:00
Avi Deitcher
c4d8b1a250 Merge pull request #3670 from rvs/riscv64
Allowing linuxkit to recongnize linux/riscv64 arch
2021-05-20 09:44:03 +03:00
Roman Shaposhnik
378cfc0b3d Allowing linuxkit to recongnize linux/riscv64 arch
Signed-off-by: Roman Shaposhnik <rvs@zededa.com>
2021-05-19 12:34:07 -07:00
Avi Deitcher
1096165072 Merge pull request #3668 from deitch/build-image 2021-05-18 22:36:34 +03:00
Avi Deitcher
f7ee51d931 add v1tarreader for images and use it for docker load
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-05-18 18:14:23 +03:00
Avi Deitcher
ebf570d045 refactor buildContext into a simple stdin reader
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-05-18 18:14:23 +03:00
Avi Deitcher
dd09b7d77a simplify nobuild/force/build logic
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-05-18 18:14:22 +03:00
David Scott
84a5bc10c9 Merge pull request #3669 from djs55/trim-after-delete-arches
trim-after-delete: avoid building on s390x
2021-05-18 15:34:53 +01:00
David Scott
e463855425 trim-after-delete: avoid building on s390x
Signed-off-by: David Scott <dave@recoil.org>
2021-05-18 13:39:20 +01:00
David Scott
71598cc050 Merge pull request #3667 from aiordache/trim_after_delete_events
[POS-17] Add more docker event types to trigger fstrim
2021-05-17 14:04:01 +01:00
Rolf Neugebauer
8c16d6ac3a Merge pull request #3664 from rn/open-vm
Include open-vm-tools packages
2021-05-15 10:46:34 +01:00
Anca Iordache
d326c1b2e6 Add more event types to trigger fstrim
Signed-off-by: Anca Iordache <anca.iordache@docker.com>
2021-05-12 16:12:14 +02:00
Avi Deitcher
8dd089ae93 Merge pull request #3665 from deitch/alpine-fix-targetauth
correctly use target-arch
2021-05-10 15:32:20 +03:00
Avi Deitcher
4d9de9a583 correctly use target-arch
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-05-10 12:21:33 +03:00
Rolf Neugebauer
7b836c2bd8 Include open-vm-tools packages
In alpine version 3.12, the open-vm-tools package got split into new
smaller sub-packages. The implication of this is that features such as
reporting of hostname and ip address to vCenter stopped working.

Signed-off-by: Edvin Eriksson <edvin.erikson@leovegas.com>
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-05-09 11:22:12 +00:00
Edvin Eriksson
f4c4ab1c8c fix: install linuxkit in top-level bin folder
Signed-off-by: Edvin Eriksson <edvin.erikson@leovegas.com>
2021-05-07 14:22:15 +02:00
Avi Deitcher
ceef6b1ca2 Merge pull request #3650 from deitch/alpine-hash
alpine carry its own hash
2021-05-06 13:11:41 -04:00
Avi Deitcher
a571a5ac21 Merge pull request #3658 from deitch/multiple-build-push
Build or push multiple packages at once
2021-05-06 12:40:23 -04:00
Avi Deitcher
31ed260e4a Build or push multiple packages at once
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-05-05 16:52:27 -04:00
Rolf Neugebauer
be2813f51f Merge pull request #3654 from rn/kern-up
Update kernels
2021-05-03 23:45:16 +01:00
Rolf Neugebauer
be98caafb9 Update test to latest stable kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-05-03 22:09:08 +01:00
Rolf Neugebauer
031e130c8c Update default kernel to 5.10.x
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-05-03 22:06:31 +01:00
Rolf Neugebauer
f98a4160e4 tests: Update kernel tests to use latest linuxkit/alpine
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-05-03 18:18:24 +01:00
Rolf Neugebauer
921af882e1 tests: Remove 4.19.x tests
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-05-03 18:17:04 +01:00
Rolf Neugebauer
c0f50012d2 kernel: Disable bcc
The build fails, see https://github.com/linuxkit/linuxkit/issues/3652

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-05-03 17:05:39 +00:00
Rolf Neugebauer
198f6222dd kernel: Update kernel config to new alpine tools
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-05-03 15:59:01 +00:00
Rolf Neugebauer
5167746df9 kernel: Add patches for 5.10.x/5.11.x
This fixes some compile issues with bcc.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-05-03 15:58:48 +00:00
Rolf Neugebauer
a87a666408 kernel: Pick python3 for bcc builds
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-05-03 14:20:24 +00:00
Rolf Neugebauer
2d92dc189c kernel: Add libelf-static to perf build
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-05-03 13:54:20 +00:00
Rolf Neugebauer
310811a6cb kernel: Update kernel build to latest linuxkit/alpine
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-05-03 13:53:10 +00:00
Rolf Neugebauer
c6d2933b48 alpine: Add libelf-static for perf builds
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-05-03 13:51:41 +00:00
Rolf Neugebauer
c2de64a23a kernel: Build debug kernel for 5.10.x on x86
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-05-03 11:23:35 +01:00
Rolf Neugebauer
faa0450b14 kernel: Adjust perf and bcc builds
Build both only recent LTS and latest stable kernel

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-05-03 11:23:35 +01:00
Rolf Neugebauer
f3f9c56d60 kernel: Bump to 5.11.18/5.10.34/5.4.116
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-05-03 11:23:35 +01:00
Rolf Neugebauer
f9f85bd4b3 kernel: Remove older LTS kernels
- 5.4.x for amr64/s390x
- 4.19.x for x86

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-05-03 11:20:26 +01:00
Rolf Neugebauer
f3282724f5 Merge pull request #3648 from dave-tucker/skip-unsup
pkg_build: Allow skipping unsupported platforms
2021-05-02 20:19:23 +01:00
Avi Deitcher
1e99ba3dce alpine carry its own hash
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-05-02 19:44:39 +03:00
Dave Tucker
28f43e8121 docs: Document --skip-arches
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2021-05-02 17:31:33 +01:00
Dave Tucker
0320678133 build: Add --skip-platforms flag
This adds a --skip-platforms flag that can be used with
lkt pkg build to ignore any arch specified in build.yml

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2021-05-02 17:31:27 +01:00
Dave Tucker
54185c8a3f pkglib: Rename v1 to registry
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2021-05-02 17:30:59 +01:00
Dave Tucker
981fb7ff32 pkglib: Add missing comment to FullTag
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2021-05-02 17:30:53 +01:00
Dave Tucker
907dc5394b pkglib: Don't error on platform mismatch
This prevents override of the platform by the user.
lkt pkg build --platform=linux/amd64 pkg/bpftrace should
attempt to build that package for that arch even though
it is not in the build.yml

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2021-05-02 12:28:43 +01:00
Dave Tucker
b5429604b6 Merge pull request #3647 from dave-tucker/cache-packages
ci: Cache Package Builds
2021-05-02 10:21:42 +01:00
Dave Tucker
6334f0dde5 ci: Cache Package Builds
This commit adds the default linuxkit cache directory to the
GitHub Actions cache. This will ensure that we don't pull images
that already exist in the cache, or build them if we've already
done so. It should speed up CI.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2021-05-01 18:06:37 +01:00
Avi Deitcher
58136486c6 Merge pull request #3646 from deitch/canonicalize-names
always use canonical names in the linuxkit cache
2021-04-30 16:55:48 +03:00
Dave Tucker
2acc1c013c Merge pull request #3610 from dave-tucker/Makefile
make: Fix for local builds outside of GOPATH
2021-04-30 13:20:04 +01:00
Avi Deitcher
9bb26e4c3a always use canonical names in the linuxkit cache
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-04-30 15:12:39 +03:00
Dave Tucker
93ada489f9 make: Fix for local builds outside of GOPATH
Go can be weird about tools having to run in a directory with
go.mod. This commit moves the linuxkit makefile to the same
directory as the code.

It also changes the semantics of the local-build target.
You can now use STATIC=0 for dynamic builds or PIE=1 to
use --buildmode=pie. The binaries we were producing in
local-static weren't actually static so I fixed that too

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2021-04-30 09:31:00 +01:00
Dave Tucker
a8797a5e0f Merge pull request #3645 from deitch/update-go-compile-deps
Update to proper go-compile hash
2021-04-30 09:11:34 +01:00
Avi Deitcher
f6d04977df Update to proper go-compile hash
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-04-30 02:01:55 +03:00
Avi Deitcher
2b95bf9e2f Merge pull request #3643 from deitch/compile-for-mac
pass linkmode=external only for Linux
2021-04-29 18:13:42 +03:00
Avi Deitcher
d091f90f81 pass linkmode=external only for Linux
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-04-29 16:52:44 +03:00
Avi Deitcher
ef5e3fe3fe Merge pull request #3635 from rn/maint
Add Alumni to MAINTAINERS and update Authors
2021-04-29 10:21:09 +03:00
Rolf Neugebauer
f37ae83839 Merge pull request #3638 from deitch/use-cache
handle image already in cache
2021-04-28 23:19:51 +01:00
Rolf Neugebauer
b7b83fc6d4 Merge pull request #3637 from deitch/go-compile-alt
Full update Alpine: base to 3.13, go to 1.16, mod=vendor support
2021-04-28 22:59:59 +01:00
Avi Deitcher
1fb7ff9af2 Update package tags
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-04-28 14:18:47 +03:00
Avi Deitcher
9343616183 stick with original kernels and alpine for kernel module tests
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-04-28 09:13:19 +03:00
Avi Deitcher
00665e2b10 Update containerd test to match go modules off
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-04-28 09:13:19 +03:00
Avi Deitcher
d4d1eacdbc ensure statically built binaries when using pie
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-04-28 09:13:19 +03:00
Avi Deitcher
ef3e45ac02 pkgs: Update packages to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-04-28 09:13:18 +03:00
Avi Deitcher
07ca23f8fe tests: Update tests cases to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-04-28 09:12:08 +03:00
Avi Deitcher
711720e0d5 Update use of test packages to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-04-28 09:12:07 +03:00
Avi Deitcher
911a0de14c handle image already in cache
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-04-28 09:09:09 +03:00
Avi Deitcher
4f603d0146 tests: Update packages to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-04-27 19:53:17 +03:00
Avi Deitcher
8576579f60 Update use of tools to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-04-27 19:52:35 +03:00
Avi Deitcher
1270e27ba6 tools: Update to the latest linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-04-27 19:14:22 +03:00
Avi Deitcher
95ce6386aa Update Alpine base to 3.13; go-compile rebuilt with mod=vendor option, go bumped to 1.16
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-04-27 17:38:22 +03:00
Rolf Neugebauer
a1b1325163 Update Authors
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-04-24 10:21:25 +01:00
Rolf Neugebauer
6977c94ef7 MAINTAINERS: Add Alumni section
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-04-24 10:20:32 +01:00
Rolf Neugebauer
b13b41b213 Merge pull request #3631 from thaJeztah/needs_more_daves
Add another Dave as maintainer
2021-04-23 22:49:52 +01:00
Rolf Neugebauer
182646c776 Merge pull request #3630 from deitch/doc-s390x-docker
docs to hold maintainer build platforms
2021-04-23 21:19:59 +01:00
Avi Deitcher
e4a58e0130 docs to hold maintainer build platforms
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-04-23 02:12:07 +03:00
Sebastiaan van Stijn
6c27d84f78 Bump docker to 20.10.6-dind
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-04-22 09:02:47 +02:00
Avi Deitcher
a82fff6377 Merge pull request #3612 from deitch/cross-build
cross build packages
2021-04-21 14:55:51 +03:00
Sebastiaan van Stijn
a63ff3c480 pkg/trim-after-delete: make docker socket path configurable
Docker Desktop proxies the docker socket at its default location
(/var/run/docker.sock), but allows connecting to the non-proxied
socket through /var/run/docker.sock.raw.

This patch allows the trim-after-delete utility to customize
the docker socket path, so that it can connect to the non-proxied
socket.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-04-21 13:11:12 +02:00
Avi Deitcher
c8ef7d0eb0 cross build packages
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-04-21 13:03:26 +03:00
Avi Deitcher
0dff43def5 Merge pull request #3629 from deitch/correct-name
use correct manifest name when pushing
2021-04-20 14:06:39 +03:00
Justin Cormack
65d37c428f Merge pull request #3625 from rn/kern-up
Update kernels
2021-04-20 09:57:16 +01:00
Avi Deitcher
74c7de7977 use correct manifest name when pushing
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-04-20 11:42:16 +03:00
Rolf Neugebauer
4001048426 tests: Update kernel config tests to latest package
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-04-19 21:58:51 +01:00
Rolf Neugebauer
c421b01b30 test: Adjust kernel config check
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-04-19 21:56:30 +01:00
Rolf Neugebauer
f146003b6e Update kernel to latest 5.4.x
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-04-18 21:07:45 +01:00
Rolf Neugebauer
b6883eed70 tests: Add kernel tests for 5.10.x and 5.11.x
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-04-18 21:06:04 +01:00
Rolf Neugebauer
3cb723fc58 tests: remove tests for 4.14.x and 5.6.x kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-04-18 21:01:12 +01:00
Frédéric Dalleau
38869459ab Add support for building the arm64 kernel on MacBook M1
On these machines, the output of `uname -m` is arm64.

Signed-off-by: Frédéric Dalleau <frederic.dalleau@docker.com>
2021-04-18 18:03:12 +01:00
Rolf Neugebauer
602a6c3ff5 kernel: Bump wirebuard to v1.0.20210219
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-04-18 18:03:12 +01:00
Rolf Neugebauer
86252f10ca kernel: Add 5.11.x kernel
The config file is derived from the 5.10.x kernel.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-04-17 20:13:41 +00:00
Rolf Neugebauer
2197d6670b kernel: Add 5.10.x
The kernel config is derived from 5.6.x by running it through
make oldconfig.

For x86_64 changed manually:
- CONFIG_VIRTIO_MEM=m -> y
- CONFIG_PLDMFW=y -> not set

For aarch64 changed manually:
- CONFIG_SMSC_PHY=m -> not set
- CONFIG_PLDMFW=y -> not set

No adjustment to s390x config

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-04-17 15:24:40 +01:00
Rolf Neugebauer
ad4aec4965 kernel: Bump 5.4.113/4.19.188
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-04-17 12:16:15 +01:00
Rolf Neugebauer
24bd2f64d7 kernel: Remove support for 5.6.x kernels
5.6.x was EOLed

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-04-17 11:23:11 +01:00
Rolf Neugebauer
7b012919b3 kernel: Remove support for 4.14.x kernels
With 4.19.x and 5.4.x we already carry several
LTS kernels.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-04-17 11:17:51 +01:00
Dave Tucker
60919fee96 Merge pull request #3619 from rn/rtf-up
build: Bump rtf to latest
2021-04-06 14:11:38 +01:00
Rolf Neugebauer
e48d5294ee Merge pull request #3539 from djs55/trim-after-delete-container
trim-after-delete: handle containers and volumes as well as images
2021-04-05 13:21:02 +01:00
Rolf Neugebauer
2d6290199b Merge pull request #3615 from linuxkit/no-go-get
README: Don't go get
2021-04-05 12:45:16 +01:00
Rolf Neugebauer
a24c51e43c build: Bump rtf to latest
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-04-05 11:19:42 +01:00
Rolf Neugebauer
e362dc6100 Merge pull request #3617 from rn/ci-cross
ci: Enable linuxkit cross compile
2021-04-05 10:13:50 +01:00
Rolf Neugebauer
ffe5dedb0a ci: Fix multi-arch builds
- Introduce separate os/arch to the matrix
- Pass os/arch to the local build
- Switch to upload-artifact@v0 and cache@v2
- Fetch linuxkit binary from artefacts rather than using cache
- Add some debug (print file and hashes)

While at it, add some debug for the generated artefacts.

fixes https://github.com/linuxkit/linuxkit/issues/3522

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-04-04 10:46:07 +01:00
Dave Tucker
4e03ccc66f README: Don't go get
`go get -u` will try to update modules dependencies
`go get` (no `-u`) incorrectly resolves dependencies
we should instead advise users to `go install`

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2021-04-03 11:30:09 +01:00
Rolf Neugebauer
e02ccb6008 Merge pull request #3616 from rn/gomod
Fix go-compile for go.mod
2021-04-03 11:16:58 +01:00
Rolf Neugebauer
c7e753eb16 build: Update go-compile package
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-04-02 18:45:38 +01:00
Rolf Neugebauer
765e5f0b88 gp-compile: Use '-mod=vendor' when using go modules
fixes https://github.com/linuxkit/linuxkit/issues/3599

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-04-02 18:45:38 +01:00
Rolf Neugebauer
4542998629 Merge pull request #3606 from qarnot/up-intel-microcode-20210216
Bump Intel microcode version to 20210216
2021-04-02 18:08:19 +01:00
Rolf Neugebauer
48accd6ebe Merge pull request #3609 from dave-tucker/rm-notary
Remove Notary and Content Trust
2021-04-02 14:23:24 +01:00
Dave Tucker
561ce6f4be Remove Notary and Content Trust
This commit removes Notary and Content Trust.
Notary v1 is due to be replaced with Notary v2 soon.
There is no clean migration path from one to the other.
For now, this removes all signing from LinuxKit.
We will look to add this back once a new Notary alternative
becomes available.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2021-03-30 14:51:11 +01:00
Yoann Ricordel
4e31b87da0 Bump Intel microcode version to 20210216
Signed-off-by: Yoann Ricordel <yoann.ricordel@qarnot-computing.com>
2021-03-08 15:07:22 +01:00
Avi Deitcher
1f93eab506 Merge pull request #3600 from deitch/build-target
build images to cache with buildx
2021-02-15 19:57:56 +02:00
Avi Deitcher
9633d23d37 write to cache
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-02-12 16:18:21 +02:00
Sebastiaan van Stijn
dd4aa47c02 Add another Dave as maintainer
Dave Scott works on the Docker Desktop team, and maintains
LinuxKit changes internally for that. I think Dave would
make a good addition to the list of maintainers to help
out. :)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-02-12 12:51:18 +01:00
Avi Deitcher
4cdf6bc56d Merge pull request #3593 from the-maldridge/metaldata
Support metaldata metadata provider
2021-01-22 10:43:08 +02:00
Michael Aldridge
b820b0a129 Support metaldata metadata provider
Signed-off-by: Michael Aldridge <aldridge.mac@gmail.com>
2021-01-21 23:03:49 -08:00
Rolf Neugebauer
5005e05b3c Merge pull request #3595 from deitch/gomodules-docs
update docs
2021-01-19 20:32:37 +00:00
Avi Deitcher
4e23d08a8c update docs
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-01-19 09:55:16 +02:00
Avi Deitcher
80c4edd5c5 Merge pull request #3594 from deitch/gomodules
switch to go modules
2021-01-19 09:46:51 +02:00
Avi Deitcher
f8f214110b switch to go modules
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-01-18 20:46:52 +02:00
Avi Deitcher
1b8e6c586b Merge pull request #3588 from giggsoff/strip-containerd
strip containerd binaries
2021-01-18 18:09:45 +02:00
Petr Fedchenkov
301e7ef13e update to linuxkit/containerd:1ae8f054e9fe792d1dbdb9a65f1b5e14491cb106
Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>
2021-01-18 16:54:37 +03:00
Petr Fedchenkov
564a4ece26 strip containerd binaries
Signed-off-by: Petr Fedchenkov <giggsoff@gmail.com>
2021-01-06 19:04:49 +03:00
Avi Deitcher
1ec1768d18 Merge pull request #3589 from deitch/fix-ineffassign
provide wildcards to ineffassign
2021-01-06 18:00:26 +02:00
Avi Deitcher
933738a177 provide wildcards to ineffassign
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-01-06 15:13:54 +02:00
Avi Deitcher
ec80e6cf07 Merge pull request #3573 from deitch/dockerless
pull and cache images locally without docker
2020-12-30 20:02:49 +02:00
Avi Deitcher
0b7502f130 pull and cache images locally without docker
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2020-12-30 18:27:02 +02:00
Rolf Neugebauer
c1b02ee4f0 Merge pull request #3583 from deitch/lib-manifest-tool
Replace copied code with manifest-tool library
2020-12-23 11:20:52 +00:00
Rolf Neugebauer
80d4abaf44 Merge pull request #3584 from alex1989hu/contrib/add-control-plane-toleration
contrib: add control-plane toleration for open-vm-tools
2020-12-23 11:16:57 +00:00
Alex Szakaly
0cf34953ff contrib: add control-plane toleration for open-vm-tools
From Kubernetes v1.20.0 Release notes:
The label applied to control-plane nodes "node-role.kubernetes.io/master"
is now deprecated and will be removed in a future release after a GA
deprecation period.

Introduce a new label "node-role.kubernetes.io/control-plane" that will
be applied in parallel to "node-role.kubernetes.io/master" until the
removal of the "node-role.kubernetes.io/master" label.

xref: https://kubernetes.io/docs/setup/release/notes/#no-really-you-must-read-this-before-you-upgrade

Signed-off-by: Alex Szakaly <alex.szakaly@gmail.com>
2020-12-22 22:25:58 +01:00
Avi Deitcher
a37c0f48e1 Replace copied code with manifest-tool library
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2020-12-18 08:25:08 +02:00
Rolf Neugebauer
a13ff6bc45 Merge pull request #3582 from Clovel/fix/prefixMakefile
Removed extraneous "/" at end of PREFIX in Makefile
2020-12-15 22:57:47 +00:00
Clovis Durand
5b9458f33e Removed extraneous "/" at end of PREFIX in Makefile
Signed-off-by: Clovis Durand <cd.clovel19@gmail.com>
2020-12-08 13:36:04 +01:00
Justin Cormack
a57ebdd8ef Merge pull request #3581 from deitch/lint
fix lint issue
2020-12-07 17:34:45 +00:00
Avi Deitcher
4ceaf86416 fix lint issue
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2020-12-07 18:04:57 +02:00
Justin Cormack
ffea2a2807 Merge pull request #3575 from deitch/bump-manifest-list
bump manifest-tool to latest
2020-11-27 09:09:59 +00:00
Avi Deitcher
9fe09dbba8 bump manifest-list to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2020-11-27 01:13:13 +02:00
Justin Cormack
0af595e49b Merge pull request #3577 from justincormack/darwin-arm64
Update containerd vendor
2020-11-26 19:09:14 +00:00
Justin Cormack
c9a38e135f Merge pull request #3576 from justincormack/nginx-up
Update nginx image in example
2020-11-26 17:36:36 +00:00
Justin Cormack
3937cc6619 Update containerd vendor
This fixes arm64 mac

Signed-off-by: Justin Cormack <justin@specialbusservice.com>
2020-11-26 17:06:02 +00:00
Justin Cormack
b14ddef1a0 Update nginx image in example
The original one is not supported on arm64

Signed-off-by: Justin Cormack <justin@specialbusservice.com>
2020-11-25 21:58:50 +00:00
Justin Cormack
7f479817ab Merge pull request #3574 from deitch/fix-set-env
fix deprecation of set-env
2020-11-24 16:27:08 +00:00
Avi Deitcher
bc06558e26 fix deprecation of set-env
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2020-11-24 15:36:36 +02:00
Justin Cormack
ad809fa3b6 Merge pull request #3570 from deitch/doc-signing
describe how to sign tags manually
2020-11-12 14:30:28 +00:00
Avi Deitcher
34373e3b52 describe how to sign tags manually
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2020-11-12 14:40:36 +02:00
Avi Deitcher
fe2ca14452 Merge pull request #3564 from deitch/containerd-opts
multiple containerd options
2020-11-01 11:00:14 +02:00
Avi Deitcher
863e8c77b7 update sha hashes for pkg/init
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2020-10-21 11:13:52 +03:00
Avi Deitcher
203cbd9b9f multiple containerd options
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2020-10-21 11:11:48 +03:00
Avi Deitcher
9f1825f2f6 Merge pull request #3563 from deitch/fix-equals-error
Fix equals error
2020-10-20 09:25:29 +03:00
Avi Deitcher
279ee46f39 update hashes for pkg/init
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2020-10-19 20:54:16 +03:00
Avi Deitcher
54be4048f0 fix reversed equals error
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2020-10-19 20:54:14 +03:00
Avi Deitcher
f0b002718d Merge pull request #3559 from deitch/containerd-opts
add support for containerd args
2020-10-19 16:27:53 +03:00
Avi Deitcher
eae1c2461a update hashes for containerd opts
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2020-10-19 14:49:40 +03:00
Avi Deitcher
865ed8a1ce add containerd cli opts
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2020-10-19 14:49:15 +03:00
David Scott
18669576cc trim-after-delete: update examples to use new image
Signed-off-by: David Scott <dave@recoil.org>
2020-10-16 16:59:15 +01:00
David Scott
76c7f6c1a6 trim-after-delete: also handle containers and volumes
We already run the command after an image delete but

- a container delete
- a volume delete

will also free space on the filesystem.

Co-authored-by: Sebastiaan van Stijn <github@gone.nl>
Signed-off-by: David Scott <dave@recoil.org>
2020-10-16 16:56:53 +01:00
Avi Deitcher
a1427d0b7b Merge pull request #3558 from deitch/containerd-141
containerd 1.4.1 from latest version of lkt/alpine
2020-10-08 10:39:44 +03:00
Avi Deitcher
e305e52b41 Merge pull request #3557 from deitch/openssh-client
include openssh-client in sshd pkg
2020-10-08 10:39:25 +03:00
Avi Deitcher
3143c04de9 containerd 1.4.1 from latest version of lkt/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2020-10-07 20:33:08 +03:00
Avi Deitcher
26d46d6c82 include openssh-client in sshd pkg
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2020-10-07 20:15:28 +03:00
Avi Deitcher
1daec53ccc Merge pull request #3556 from deitch/openssh-client
bump alpine version, add openssh-client, wireguard apk, containerd 1.4.1
2020-10-07 18:54:12 +03:00
Avi Deitcher
fd45bc2ead bump alpine version, add openssh-client, wireguard apk, containerd 1.4.1
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2020-10-07 16:08:15 +03:00
Rolf Neugebauer
bc7205900c Merge pull request #3550 from alex1989hu/contrib/update-open-vm-tools-tolerations
contrib: extend list of tolerations for open-vm-tools
2020-09-12 10:43:51 +01:00
Alex Szakaly
de017f652e contrib: extend list of tolerations for open-vm-tools
Keep previous toleration to being backward compatible

Fixes #3549

Signed-off-by: Alex Szakaly <alex.szakaly@gmail.com>
2020-09-11 08:41:26 +02:00
Rolf Neugebauer
a2869a3546 Merge pull request #3541 from rn/post-v0.8
Post v0.8 cleanup
2020-07-27 13:01:49 +01:00
Rolf Neugebauer
015948148a Update Changelog to what was posted on release page
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-07-27 09:06:43 +01:00
Rolf Neugebauer
235412bc4f Bump version to v0.8+
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-07-27 09:06:43 +01:00
Avi Deitcher
612d46e23a Merge pull request #3540 from Kdockerfiles/pkg_build_fix
Make `pkg build` build the image
2020-07-26 14:35:58 +03:00
Karol Woźniak
9d2e7e9281 Make pkg build build the image
Signed-off-by: Karol Woźniak <wozniakk@gmail.com>
2020-07-24 22:34:11 +02:00
Avi Deitcher
00b9bb56a0 Merge pull request #3532 from deitch/split-push-sign
options to split image steps and manifest steps
2020-06-10 11:13:01 +03:00
Avi Deitcher
ea18be414e options to split image steps and manifest steps
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2020-05-24 16:23:46 +03:00
Justin Cormack
9d5a22d44a Merge pull request #3511 from deitch/append-binds
support merge yaml flags
2020-05-18 20:18:00 +01:00
Avi Deitcher
bcd36a4661 support merge yaml flags
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2020-05-18 17:41:36 +03:00
Rolf Neugebauer
319005e849 Merge pull request #3521 from rn/rel_v0.8
Release packages as v0.8
2020-05-11 21:41:23 +01:00
Rolf Neugebauer
2884ed1996 Update CHANGELOG
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-05-10 17:35:41 +01:00
Rolf Neugebauer
b1fbe40712 tool: Bump version to v0.8
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-05-10 16:04:52 +01:00
Rolf Neugebauer
0331aacfe2 Update package tags to v0.8
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-05-10 16:04:52 +01:00
Rolf Neugebauer
ea8ecd146d pkgs: Update packages to the latest linuxkit/alpine
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-05-10 14:52:05 +01:00
Rolf Neugebauer
58434279cb Merge pull request #3520 from rn/kern-up
Update kernels, re-enable -perf, disable -rt kernels, bump wireguard
2020-05-09 19:30:38 +01:00
Justin Cormack
3ae7fb4e25 Merge pull request #3519 from rn/authors
Update AUTHORS
2020-05-09 17:16:08 +01:00
Rolf Neugebauer
13dd8a7e9e Update YAMLs to latest kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-05-09 11:57:08 +01:00
Rolf Neugebauer
a9516a346c kernel: Vump wireguard to 1.0.20200506
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-05-09 11:57:07 +01:00
Rolf Neugebauer
2959fc52c5 kernel: Re-enable perf build
resolves #3498

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-05-09 11:57:07 +01:00
Rolf Neugebauer
f3a0d1c4d8 kernel: Fix perf build
- add static zlib
- add python

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-05-09 11:57:07 +01:00
Rolf Neugebauer
6a92e2292b kernel: Adjust config files
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-05-09 11:57:07 +01:00
Rolf Neugebauer
c1f4c392cc kernel: Disable -rt kernel temporarily
The patch we carry for 5.4 and 5.6 does not apply to
5.4.28. Disable the -rt kernel until the version has
been bumped.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-05-09 11:57:07 +01:00
Rolf Neugebauer
019b4274ea kernel: Update to 5.6.11/5.4.39/4.19.121/4.14.179
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-05-09 11:57:07 +01:00
Rolf Neugebauer
26f1c75950 test: Update kernel tests to latest alpine base
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-05-09 11:57:07 +01:00
Rolf Neugebauer
1c5e799782 kernel: Update kernel build to latest alpine base
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-05-09 11:57:07 +01:00
Rolf Neugebauer
2914fadc47 Update AUTHORS
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-05-08 12:44:42 +01:00
Rolf Neugebauer
47063eee62 Merge pull request #3512 from saljam/master
metadata: add support for digitalocean
2020-05-08 11:53:50 +01:00
Rolf Neugebauer
38b1ee8ff5 Merge pull request #3514 from Kdockerfiles/scw_update
Update, fix (and extend a bit) Scaleway support
2020-05-08 11:48:06 +01:00
Rolf Neugebauer
5bab073bbf Merge pull request #3518 from justincormack/smaller-qemu
Smaller qemu
2020-05-07 23:36:37 +01:00
Justin Cormack
c63ec77e3f Update binfmt package
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2020-05-07 11:58:44 +01:00
Justin Cormack
c01f72d556 Add Risc-V support and only ship binaries we use
Ported from https://github.com/docker/binfmt/pull/21

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2020-05-07 11:53:30 +01:00
Rolf Neugebauer
dbcf2611a0 Merge pull request #3515 from justincormack/qemu-up
Update to Qemu 4.2.0 from Debian testing
2020-05-06 23:27:53 +01:00
Justin Cormack
3887a281b2 Update packages
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2020-05-06 20:03:50 +01:00
Avi Deitcher
c29056aa7a Merge pull request #3516 from errordeveloper/mount-sys-fs-bpf
pkg/init: Mount /sys/fs/bpf
2020-05-06 14:32:01 +03:00
Ilya Dmitrichenko
86fb6ba0aa pkg/init: Mount /sys/fs/bpf
NOTE: This will be a shared mount, due to root being turned into a
shared with `MC_REC` set: `mount("", "/", "", rec|shared, "")`.
For some reason setting `shared` when mounting `/sys/fs/bpf` doesn't
work at all, perhaps that's just a kernel feature.

Signed-off-by: Ilya Dmitrichenko <errordeveloper@gmail.com>
2020-05-06 11:06:54 +01:00
Justin Cormack
d2f55af35c Update to Qemu 4.2.0 from Debian testing
This has fixed a lot of outstanding emulation issues, see comments
in https://github.com/docker/binfmt/pull/24

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2020-05-04 16:22:52 +01:00
salman aljammaz
35ae4e028c metadata: add support for digitalocean
This adds support for fetching metadata and user data from the
DigitalOcean metadata service.

https://www.digitalocean.com/docs/droplets/resources/metadata/

Signed-off-by: salman aljammaz <s@aljmz.com>
2020-05-02 11:24:11 -04:00
Avi Deitcher
39aafb21d0 Merge pull request #3509 from deitch/cidata
find cloud-init on cdrom by label
2020-05-01 17:50:37 +03:00
Karol Woźniak
d861987b79 scaleway: Fix bugs and add option for changing image size
* Fix using ams1 as zone
* Allow specifying image size (+ calculate default from ISO size)
* Fix mangling logs when asking for ssh passphrase
* Some minor code and docs cleanups

Signed-off-by: Karol Woźniak <wozniakk@gmail.com>
2020-05-01 01:15:24 +02:00
Karol Woźniak
c750f54cb0 Update scaleway-sdk-go to v1.0.0-beta.6
Signed-off-by: Karol Woźniak <wozniakk@gmail.com>
2020-05-01 01:15:24 +02:00
Avi Deitcher
3678adeca8 find cloud-init on cdrom by label
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2020-04-27 17:00:42 +03:00
Rolf Neugebauer
0b488d805e Merge pull request #3513 from rn/ctr-134
Update containerd to v1.3.4
2020-04-27 09:08:25 +01:00
Rolf Neugebauer
6643090752 Update YAMLs to latest containerd/runc/init
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-26 23:52:57 +01:00
Rolf Neugebauer
76d0ed84be tests: Update containerd test to v1.3.4
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-26 23:21:30 +01:00
Rolf Neugebauer
2427145dfc pkg/init: Revert "workaround bad containerd bug"
This reverts commit 6653c3387e.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-26 22:49:48 +01:00
Rolf Neugebauer
1b8cb8b235 pkg/runc: Update to v1.0.0-rc10
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-26 22:47:48 +01:00
Rolf Neugebauer
db1f9c8dc8 pkgs" Update containerd to v1.3.4
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-26 22:47:48 +01:00
Rolf Neugebauer
1c4a4060f1 tools/alpine: Update package
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-26 17:38:54 -04:00
Rolf Neugebauer
bec1041534 tools/alpine: Update containerd to v1.3.4
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-26 18:18:32 +01:00
Rolf Neugebauer
bd336ef94d tools/alpine: Add zlib-static
Needed for kernel perf builds

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-26 18:15:05 +01:00
Rolf Neugebauer
3e12a52a06 Merge pull request #3493 from deitch/native-manifest
Native manifest
2020-04-26 13:31:06 +01:00
Avi Deitcher
afcb0f8abe use manifest-tool as library instead of cmd exec
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2020-04-26 14:09:12 +03:00
Avi Deitcher
6d1ffc9118 Merge pull request #3508 from federico-pellegatta/extend-pkg-gpt-support
Add GUID Partition Table (GPT) support to `extend` and `mount` packages
2020-04-24 16:16:50 +03:00
Federico Pellegatta
6133c561fd Add GUID Partition Table (GPT) support to extend and mount packages
Signed-off-by: Federico Pellegatta <12744504+federico-pellegatta@users.noreply.github.com>
2020-04-24 12:54:48 +02:00
Avi Deitcher
966cf121a3 Merge pull request #3504 from federico-pellegatta/format-pkg-gpt-support
Add GUID Partition Table (GPT) support to the `format` package
2020-04-23 13:48:25 +03:00
Federico Pellegatta
5fc196c289 Add partition table type selector (defaulted to DOS/MBR) to format package
Signed-off-by: Federico Pellegatta <12744504+federico-pellegatta@users.noreply.github.com>
2020-04-23 10:16:36 +02:00
Rolf Neugebauer
cab95cfc51 Merge pull request #3503 from deitch/metadata-cdrom-cloudinit
read cdrom userdata from spec location
2020-04-20 12:34:51 +01:00
Avi Deitcher
84bfea53b0 Add examples
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2020-04-20 11:51:31 +03:00
Avi Deitcher
59697ffc62 read cdrom userdata from spec location
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2020-04-20 10:03:17 +03:00
Rolf Neugebauer
d4c135dbb6 Merge pull request #3502 from deitch/go-1.13
match go version in CI to version in go-compile
2020-04-19 11:47:10 +01:00
Avi Deitcher
fbe9b98d4d match go version in CI to version in go-compile
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2020-04-19 11:22:32 +03:00
Rolf Neugebauer
a44ea341ca Merge pull request #3500 from rn/alpine_3.11
Update to Alpine 3.11
2020-04-18 12:45:05 +01:00
Rolf Neugebauer
4c0d156042 test: Increase disk size for dm-crypt LUKS test
Otherwise it fails with:

+ cryptsetup --key-file /etc/dm-crypt/key --cipher aes-cbc-essiv:sha256 luksFormat /dev/sda
+ cryptsetup --key-file /etc/dm-crypt/key luksOpen /dev/sda it_is_encrypted
Requested offset is beyond real size of device /dev/sda.
dm-crypt test suite FAILED

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-18 10:54:47 +01:00
Rolf Neugebauer
8278b7311d tool: Revert linuxkit/mkimage-gcp
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 22:45:30 +01:00
Rolf Neugebauer
0f844541cb Revert "Removed size arg from GCP make-fs command."
This reverts commit 1653e9dffb.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 22:40:21 +01:00
Rolf Neugebauer
8f480cc578 kernel/bcc: Disbale -Werror for elfutils buils
with the new C tool chain elfutils fails with with warnings:

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
169f031ce9 kernel: Disable perf build for now.
See: https://github.com/linuxkit/linuxkit/issues/3498

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
ea750c8b7b kernel: Only build bcc/perf on x86 and latest stable and LTS
This was previously build for 5.4 and 4.19. Latest LTS is 5.4 and
latest stable is 5.6. Also skip s390x build for perf

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
0dd1283dec kernel: add findutils to perf build and make it more verbose
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
72fe47557f kernel: Switch -dbg kernel to default 5.4.x kernel
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
db36750deb kernel: Adjust configs to new compiler
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
dbb76cf4d4 kernel: Update kernel builds to latest linuxkit/alpine
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
ce89479b2d Update use of packages to the latest
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
463216acda pkg: Add gcc for all packages build for arm64
This is a workaround for https://github.com/linuxkit/linuxkit/issues/3496

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
25d5ba8ef8 Update linuxkit/go-compile to the latest
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
3eb9a75f9e tools/go-compile: Workaround for go requiring gcc on arm64
See: https://github.com/linuxkit/linuxkit/issues/3496

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
8a03a04454 Bump dind to 19.03.8-dind
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
5301dbf352 pkg/firmware: Disable firmware packages for s390x
Reduce the number of packages to build for s390x. Firmware
is only used for physical devices, so disable it for s390x
where we mostly run in virtual machines.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
cd92ad3f16 pkg/firmware: Fix firmware extraction
Some drivers offer mutliple firmwares with the WHENCE file
defining the default. Use the cope-firmware.sh script to
create a copy of the firmware repository with the defaults
copied in to the right place.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
384b439d05 pkg/firmware: Use kernel v5.4.x as the base
this determines which firmware packages are included.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
bd5fb29ba1 pkg/firmware: update to latest
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
0b750af7cd pkg/node_exporter: Fix build
Add curla and gcc

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
facc612603 pkg/node_exporter: Bump to v0.18.1
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
5c190c96e1 pkg/cadvisor: Bump to v0.36.0
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
2f4034d36c pkgs: Update packages to the latest linuxkit/alpine
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
6ae22d1754 tests: Update tests cases to the latest linuxkit/alpine
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
678e904ae3 Update all uses of alpine:3.9 to alpine:3.11
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
336f7b44d3 Update use of test packages to latest
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
21852ee16b tests: Update packages to the latest linuxkit/alpine
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
5d2f1ccbd0 Update use of tools to latest
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
45dcbc38af tools: Update to the latest linuxkit/alpine
with the exception of grub. It does not compile
with the latest version, see: https://github.com/linuxkit/linuxkit/issues/3494

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
2817cdac7c alpine: Update packages
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
2ad6a61079 alpine: Bump containerd to v1.3.3
Note this release has the workaround for the disabling tests.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
2320529f3d alpine/go-compile: Fix go-compile
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
2e0e0fb5e7 alpine: Bump base to 3.11
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-17 10:36:03 +01:00
Rolf Neugebauer
3716b312f6 Merge pull request #3484 from deitch/eliminate-jq
eliminate manifest-push-script, jq dependency, odd logic
2020-04-11 19:15:40 +01:00
Rolf Neugebauer
b1c344828e Merge pull request #3492 from rn/kern-up
Update kernel to 5.4.30/4.19.114/4.14.175 and add 5.6.2
2020-04-11 19:05:42 +01:00
Rolf Neugebauer
673303575d test: Add kernel tests for 5.6.x
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-10 18:13:03 +01:00
Rolf Neugebauer
1e768f56eb Update YAMLs to latest kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-10 18:06:58 +01:00
Rolf Neugebauer
57d5ab8fdf kernel: Tweak s390x config
For some reason, the 'make ARCH=s390 oldconfig' yields
a different config when executing on a real s390c system...

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-10 15:56:20 +01:00
Rolf Neugebauer
0bfaa3becc kernel: Don't install libunwind-dev on s390x
This is a part revert of f49042545e ("libunwind-dev
workaround on x86 is no longer required")

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-10 15:12:15 +01:00
Rolf Neugebauer
42c51fab2b kernel: Use in kernel WireGuard if present
5.6.x has WireGuard upstream. Skip pulling it for kernel
where WireGuard is present.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-10 12:15:25 +01:00
Rolf Neugebauer
e208e3050c kernel: Add v5.6.x kernels
The config is based on 5.4.x and has WireGaurd enabled
manually as a module afterwards.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-10 12:15:25 +01:00
Rolf Neugebauer
51f833aa51 kernel: Update to 5.4.30/4.19.114/4.14.175
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-10 10:28:13 +01:00
Rolf Neugebauer
46f96c5572 kernel: Remove 4.19.x-rt patches and configs
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-10 10:19:15 +01:00
Rolf Neugebauer
f98fa5ca41 Merge pull request #3491 from TiejunChina/master-dev
enable rt for 5.4.x
2020-04-09 23:34:21 +01:00
Rolf Neugebauer
447e5fa27c Merge pull request #3487 from TiejunChina/master-dev
update -rt to 4.19.106-rt46
2020-04-09 09:09:35 +01:00
Tiejun Chen
6f40ada81c enable rt for 5.4.x
Signed-off-by: Tiejun Chen <tiejunc@vmware.com>
2020-04-08 20:18:14 -07:00
Tiejun Chen
98ffcd7b43 update rt example file for 4.19.106-rt
Signed-off-by: Tiejun Chen <tiejunc@vmware.com>
2020-04-06 11:12:46 -07:00
Rolf Neugebauer
172b04ff67 Merge pull request #3489 from rvs/kernel
libunwind-dev workaround on x86 is no longer required
2020-04-05 14:01:05 +01:00
Roman Shaposhnik
f49042545e libunwind-dev workaround on x86 is no longer required
Signed-off-by: Roman Shaposhnik <rvs@zededa.com>
2020-04-04 14:20:04 -07:00
Rolf Neugebauer
49b62442cb Merge pull request #3488 from zx2c4-forks/jd/longoverduebump
wireguard: bump to 1.0.20200401
2020-04-04 10:46:55 +01:00
Jason A. Donenfeld
3993486b6f wireguard: bump to 1.0.20200401
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-04-03 23:48:22 -06:00
Tiejun Chen
a3afa91d9a update -rt to 4.19.106-rt46
Signed-off-by: Tiejun Chen <tiejunc@vmware.com>
2020-04-03 12:05:02 -07:00
Avi Deitcher
8a81fd0ffc eliminate manifest-push-script, jq dependency, odd logic
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2020-03-30 11:26:52 +03:00
Avi Deitcher
87f2e75424 Merge pull request #3482 from deitch/handle-containerd-bug
workaround bad containerd bug
2020-03-29 17:46:30 +03:00
Rolf Neugebauer
b32eb2afd9 Merge pull request #3483 from rn/kern-up
Update kernels to 5.4.28/4.19.113/4.14.174 and switch to 5.4.x as default
2020-03-29 00:20:03 +00:00
Rolf Neugebauer
ac94cdc5ec Update dm-crypt/losetup tests/examples to 5.4.x kernel
For some reason these were still using the old 4.14.x kernels.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-03-28 20:29:56 +00:00
Rolf Neugebauer
dfc605d703 Update kernel test YAMLs to the latest kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-03-28 12:01:50 +00:00
Rolf Neugebauer
6938fe5aa8 Update default kernel to 5.4.x
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-03-28 11:58:57 +00:00
Rolf Neugebauer
f58d487072 kernel: Adjust kernel config files
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-03-27 17:52:08 +00:00
Rolf Neugebauer
920a2e98cb kernel: Update to 5.4.28/4.19.113/4.14.174
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-03-27 17:41:58 +00:00
Rolf Neugebauer
5c336a9ae7 kernel: Remove 4.19.x for arm64 and s390x
A subsequent commit will make the 5.4 kernel the default.

This is primarily to reduce the number of kernels we need
to compile for every upgrade.

Note, we keep the 4.19 config file for arm64 around since the
-rt kernel config needs it.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-03-27 17:41:58 +00:00
Avi Deitcher
7c1df34c38 update hashes
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2020-03-24 12:13:41 +02:00
Avi Deitcher
6653c3387e workaround bad containerd bug
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2020-03-23 12:18:14 +02:00
Rolf Neugebauer
07f1bae9ce Merge pull request #3479 from guillaumerose/vendoring
Upgrade vpnkit vendoring
2020-03-14 19:25:58 +01:00
Guillaume Rose
57bf9f39de Upgrade vpnkit vendoring
Signed-off-by: Guillaume Rose <guillaume.rose@docker.com>
2020-03-11 14:03:45 +01:00
Rolf Neugebauer
badd791072 Merge pull request #3463 from alex1989hu/feat/add-kubernetes-deployment-open-vm-tools
contrib: Add kubernetes manifest for open-vm-tools
2020-03-07 12:34:53 +01:00
Alex Szakaly
adc649d022 contrib: Add kubernetes manifest for open-vm-tools
This should allow end-users to gracefully reboot or shutdown Kubernetes
nodes (incuding control planes) running on vSphere Hypervisor

There are several use cases when cluster administrators are not able to
install extra packages onto the host OS

Fixes #3462

Signed-off-by: Alex Szakaly <alex.szakaly@gmail.com>
2020-03-04 22:42:42 +01:00
Rolf Neugebauer
a2617fbd39 Merge pull request #3471 from arthurlogilab/patch-1
[README] deprecated infrakit
2020-02-26 00:29:21 +01:00
Arthur Lutz
17619c39d5 [README] deprecated infrakit
deploykit archived in 2018 (review)

Signed-off-by: Arthur Lutz <arthur.lutz@logilab.fr>
2020-02-25 12:20:26 +01:00
Rolf Neugebauer
7b057f503b Merge pull request #3475 from rn/kern-up
Update kernels to 4.14.171/4.19.104/5.4.19
2020-02-21 09:35:35 +01:00
Rolf Neugebauer
03701f44bd Merge pull request #3476 from eon01/fix-aws-howto
add SG to linuxkit run command
2020-02-18 21:59:22 +01:00
Aymen EL AMRI
a7a42e986d add SG to linuxkit run command
Signed-off-by: Aymen EL AMRI <aymen@eralabs.io>
2020-02-17 13:41:09 +01:00
Rolf Neugebauer
7fc0d8a8b2 Update YAMLs to latest kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-02-15 18:11:03 +00:00
Rolf Neugebauer
66ccad84a6 kernel: Update config files
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-02-14 23:16:02 +00:00
Rolf Neugebauer
25b09592b9 kernel: Update to 5.4.19/4.19.104/5.4.19
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-02-14 22:54:16 +00:00
Rolf Neugebauer
17359f2ed1 Merge pull request #3469 from rn/kern-up
Update kernel to 4.14.168/4.19.99/5.4.9
2020-01-30 19:57:10 +00:00
Rolf Neugebauer
57034d8a49 Update YAMLs to latest kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-01-30 09:11:32 +00:00
Rolf Neugebauer
96cfc0919e kernel: Adjust 5.4.x kernel config file
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-01-30 09:11:32 +00:00
Rolf Neugebauer
7438dcaf08 kernel: Update to 4.14.168/4.19.99/5.4.9
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-01-30 09:11:32 +00:00
Rolf Neugebauer
c6164a4ca5 kernel: Remove support for v5.3.x kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-01-30 09:11:32 +00:00
Rolf Neugebauer
4a06b88d1e kernel: Remove support for 4.9.x kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-01-30 09:11:32 +00:00
Rolf Neugebauer
f06c39545a Merge pull request #3466 from justincormack/nocircle
Remove circleCI
2020-01-27 22:17:52 +00:00
Justin Cormack
2012f4a3a4 Merge pull request #3465 from rvs/eve
Updating pointer to EVE
2020-01-27 22:12:05 +00:00
Justin Cormack
6ebeabc061 Remove circleCI
Using GitHub actions now.

Signed-off-by: Justin Cormack <justin@specialbusservice.com>
2020-01-27 20:59:36 +00:00
Roman Shaposhnik
d07dd2c28c Updating pointer to EVE
Signed-off-by: Roman Shaposhnik <rvs@zededa.com>
2020-01-27 12:02:05 -08:00
Rolf Neugebauer
1e85ff1050 Merge pull request #3458 from rn/ctr-132
Bump containerd to v1.3.2 and runc to v1.0.0-rc9
2020-01-22 10:42:33 +00:00
Rolf Neugebauer
d1c8eae6a9 Update YAMLs to latest init/containerd/runc packages
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-01-21 23:17:17 +00:00
Rolf Neugebauer
b5aca63ffc tests: Increase memory for containerd tests to 3GB
It ran out of space with 2GB

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-01-21 23:17:17 +00:00
Rolf Neugebauer
d9671ee29f tests: Disable containerd devmapper tests
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-01-21 23:17:17 +00:00
Rolf Neugebauer
7bcd19058b pkg/runc: Update to v1.0.0-rc9
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-01-21 23:17:17 +00:00
Rolf Neugebauer
11d9acf35b pkg/containerd: Add containerd-shim-runc-v2
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-01-21 23:17:17 +00:00
Rolf Neugebauer
f14ad3af82 pkgs: Update to containerd v1.3.2
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-01-21 23:17:17 +00:00
Rolf Neugebauer
44e27a1dfb tools/alpine: Update containerd to v1.3.2
- Disable the devmapper snapshotter. We are not using it
- Cherry-pick and upstream commit to be able to disable
  the devmapper integration tests

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-01-21 23:17:17 +00:00
Rolf Neugebauer
fb14ee6854 Merge pull request #3461 from dave-tucker/action-fix
actions: Clean Up Post Merge
2020-01-21 23:16:57 +00:00
Dave Tucker
0fb8b116bb actions: Clean Up Post Merge
This commit moves the linuxkit binary in to /usr/local/bin.
It also removes trailing spaces (oops)

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2020-01-21 12:25:26 +00:00
Dave Tucker
4028c363b1 Merge pull request #3442 from dave-tucker/actions
Add GitHub Actions
2020-01-21 12:16:42 +00:00
Dave Tucker
c1644b1d02 actions: Install RTF in /usr/local/bin
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2020-01-14 23:40:54 +00:00
Dave Tucker
f5da1680a1 GitHub Actions: Implement Caching
This commit uses the GitHub Actions cache to ensure that the `rtf`
binary can be re-used between runs if it hasn't changed.
It also caches the linuxkit binaries for use in future stages.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2020-01-14 23:40:54 +00:00
Dave Tucker
63849b606f test: Add GCP Run Test
This commit adds the GCP test that formerly ran in LinuxKitCI to run
under rtf.

As GitHub Actions doesn't currently support adding secret files, I've
skipped this test for now. Credentials can be passed via environment
variable but as RTF runs with `-x` the contents is viewable in the logs.

I will create an issue to follow up and find either a way of writing the
variable to file that doesn't compromise it. Or perhaps another approach
that is more compatible with GH actions

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2020-01-14 23:40:54 +00:00
Dave Tucker
a98046999f Add GitHub Action Workflow for CI
This commit adds a GitHub Actions workflow to replace both CircleCI and
LinuxKit CI.

It will build the Linuxkit binary, run tests and upload artifacts

It replaces the Integration Tests that are run by Linuxkit CI via
the make ci or make ci-pr targets with multiple sets of Integration
Tests that are run in parallel.

It does not yet test GCP. The GCP test in LinuxKit CI could be moved to RTF

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2020-01-14 23:40:54 +00:00
Justin Cormack
fce020a111 Merge pull request #3456 from rn/wg-up
Update WireGuard tools to 0.0.20191219
2020-01-03 16:40:52 +00:00
Rolf Neugebauer
51864cd03c Update YAMLs to latest pkg/ip package
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-01-03 00:22:06 +00:00
Rolf Neugebauer
bbf174d374 pkg/ip: Pick up the new version of wireguard-tools
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-01-03 00:15:43 +00:00
Rolf Neugebauer
f7e0dcba0b tools/alpine: Update wireguard-tools to 0.0.20191219
Also update other packages while at it.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-01-03 00:11:23 +00:00
Rolf Neugebauer
27f829f4f5 tools/alpine: Fix WireGuard tools build
The alpine patch is no longer needed

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-01-02 23:32:27 +00:00
Rolf Neugebauer
c4aef40418 Merge pull request #3455 from zx2c4-forks/jd/wgbump
wireguard: update to 0.0.20191226
2019-12-31 12:15:26 +00:00
Rolf Neugebauer
2208ee062b Merge pull request #3451 from rn/update
Update use of packages and AUTHORS
2019-12-31 10:34:49 +00:00
Jason A. Donenfeld
08bd5ddbaa wireguard: update to 0.0.20191226
This new snapshot comes from the brand new linux-compat repo, which
follows the recent upstreaming into net-next. When Linux 5.6 lands in
LinuxKit, we'll be able to remove the module entirely.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-12-30 12:31:53 +01:00
Rolf Neugebauer
98de655db1 Merge pull request #3400 from simonferquel/metadata-config-file
Metadata: add support for loading from a file
2019-12-20 17:52:29 +00:00
Rolf Neugebauer
eba4d9de83 Update AUTHORS
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-12-20 17:52:00 +00:00
Rolf Neugebauer
70df1123d6 Update YAMLs to latest swap and metadata packages
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-12-20 17:52:00 +00:00
Simon Ferquel
3f56669576 Metadata: add support for loading from a file
This adds a new configuration provider that just reads a file.
This is needed for Docker Desktop, where we will run a LinuxKit distro in an isolated namespace within WSL 2.
In this scenario, the config will be accessible trough the WSL2 built-in 9p mount of the Windows filesystem.

Signed-off-by: Simon Ferquel <simon.ferquel@docker.com>
2019-12-20 11:21:20 +01:00
Rolf Neugebauer
8c1fdf8737 Merge pull request #3274 from yankcrime/os-client-config
[OpenStack] Support os-client-config usage for authentication
2019-12-19 19:47:15 +00:00
Rolf Neugebauer
a09b86a8e1 Merge pull request #3371 from guillaumerose/error
Skip disk resize for dos partition if no free space is available
2019-12-19 19:31:58 +00:00
Rolf Neugebauer
868d14803e Merge pull request #3300 from danrzs/bugfix-make-gcp-size-limit
Removed fixed size arg from mkimage-gcp script.
2019-12-19 18:02:58 +00:00
Rolf Neugebauer
547521d146 Merge pull request #3349 from ptone/gcp-fixes
Update GCP metadata provider
2019-12-19 18:00:47 +00:00
Rolf Neugebauer
f0ac623b11 Merge pull request #3430 from Sh4d1/fix_scaleway_metadata
remove sendBootSignal in scaleway metadata package
2019-12-19 17:41:51 +00:00
Rolf Neugebauer
80f0765097 Merge pull request #3429 from zimme/metadata-fix-provider-scaleway
Fix the Scaleway provider in the metadata package
2019-12-19 17:41:10 +00:00
Rolf Neugebauer
725dc47a37 Merge pull request #3431 from zimme/metadata-fix-provider-hetzner
Fix the Hetzner provider in the metadata package
2019-12-19 17:39:45 +00:00
Rolf Neugebauer
2475233653 Merge pull request #3441 from djs55/swap-bigger-blocksize
swap: speed up by preferring a 1MiB blocksize
2019-12-19 17:38:22 +00:00
Justin Cormack
de4364fe68 Merge pull request #3450 from rn/kern-up
Update kernels, and Intel ucode, add support for 5.4.x kernels
2019-12-19 16:59:43 +00:00
Rolf Neugebauer
48f1008ec8 tests: Add kernel tests for 5.4.x
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-12-18 23:44:13 +00:00
Rolf Neugebauer
54a2654501 Update YAMLs to latest kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-12-18 23:41:09 +00:00
Rolf Neugebauer
02ed4c261f kernel: Adjust kernel configs
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-12-18 18:54:25 +00:00
Rolf Neugebauer
4e2b69bc2f kernel: Remove 5.3.x kernels for arm64 and s390x
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-12-18 15:26:46 +00:00
Rolf Neugebauer
a28ebce2f4 kernel: Build perf/bcc for 5.4.x kernels not 5.3.x
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-12-18 15:25:49 +00:00
Rolf Neugebauer
f9fee518a7 kernel: Add support for 5.4.x kernels
The kernel config files are derived from the 5.3.x
config files run through 'make oldconfig'.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-12-18 15:24:11 +00:00
Rolf Neugebauer
991eebaeab tests: Re-arrange the kernel tests
This is a simple rename of directories to make more space
in the test namespace for future kernels.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-12-18 14:54:48 +00:00
Rolf Neugebauer
7ae9b7b141 kernel: Remove support for 5.2.x
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-12-18 14:48:30 +00:00
Rolf Neugebauer
a638c2814c kernel: Update Intel uCode to microcode-20191115
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-12-18 14:44:42 +00:00
Rolf Neugebauer
81c148a3c4 kernel: Update to 5.3.17/4.19.90/4.14.159/4.9.206
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-12-18 14:42:32 +00:00
Rolf Neugebauer
c84b79d9b0 Merge pull request #3439 from kmjohansen/topics/kj/perf-bcc
Re-enable perf build; upgrade bcc
2019-12-17 08:21:45 +00:00
Krister Johansen
4dbdfb65d2 Move up to the 0.11.0 bcc release.
Allows us to drop some patches we were carrying, since the bugs were
fixed upstream.  Gives numerous tooling improvements too.

Signed-off-by: Krister Johansen <krister.johansen@oracle.com>
2019-12-16 14:02:34 -08:00
Krister Johansen
a0d797916d Re-enable perf build. Update bcc build.
Re-enable perf builds for 5.3.x and 4.19.x since they're the latest
stable and LTS, respectively.

Update the bcc build rules to map to these same kernel releases, too.

Signed-off-by: Krister Johansen <krister.johansen@oracle.com>
2019-12-16 14:02:34 -08:00
Krister Johansen
dad20f2e91 Add a patch that ensures that bcc can run on the 5.3.x kernel.
Signed-off-by: Krister Johansen <krister.johansen@oracle.com>
2019-12-16 14:00:42 -08:00
Krister Johansen
59481bd5d3 Add patches to unbreak perf and bcc.
The first patch re-adds symbol definitions that were temporarily omitted
from the 4.19 stable branch.

The latter patch corrects the uapi swab.h to that errors about "unknown
type name '__always_inline'" are no longer present in builds.  Without
this patch, bcc would build but attempts to compile the internal
programs at runtime would fail.

Signed-off-by: Krister Johansen <krister.johansen@oracle.com>
2019-12-16 14:00:42 -08:00
Rolf Neugebauer
d47bf4bb3e Merge pull request #3448 from djs55/wireguard.0.0.20191212
wireguard: update to 0.0.20191212
2019-12-16 20:53:42 +00:00
David Scott
e2e941dad3 wireguard: update to 0.0.20191212
Signed-off-by: David Scott <dave.scott@docker.com>
2019-12-16 11:32:02 +00:00
Simon Fridlund
4005082664 Fix the Hetzner provider in the metadata package
There were some mistakes made in the initial code where writes didn't work, this commit fixes that.

Signed-off-by: Simon Fridlund <simon@fridlund.email>
2019-12-04 23:01:40 +01:00
Justin Cormack
3375bd86b3 Merge pull request #3445 from dave-tucker/maintainer
Add Dave Tucker as a Maintainer
2019-12-04 00:42:28 +00:00
Dave Tucker
c31bff1462 Add Dave Tucker as a Maintainer
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2019-12-03 13:27:53 +01:00
Justin Cormack
59d81814f8 Merge pull request #3444 from riyazdf/riyazdf-maintainer
Remove riyazdf from MAINTAINERS
2019-12-03 11:30:09 +00:00
Riyaz Faizullabhoy
ede56b0625 Remove riyazdf from MAINTAINERS
Signed-off-by: Riyaz Faizullabhoy <riyazdf@berkeley.edu>
2019-12-02 08:14:42 -08:00
Justin Cormack
843f7583b8 Merge pull request #3443 from dave-tucker/no-qemu
linuxkit: Remove QEMU Container Backend
2019-11-29 13:53:24 +00:00
Dave Tucker
9a91435076 linuxkit: Remove QEMU Container Backend
This commit removes the container backend for QEMU.
QEMU and it's tools are available on all platforms.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2019-11-27 18:02:12 +00:00
David Scott
57dd4029c8 swap: speed up preferring a 1MiB blocksize
If the swap disk is larger than 1MiB, then use a 1MiB blocksize in `dd`

On my machine using a large block size speeds up swap file creation:

```
/ # time dd if=/dev/zero of=output bs=1024 count=1048576
1048576+0 records in
1048576+0 records out
real    0m 4.61s
user    0m 0.79s
sys     0m 3.77s
/ # time dd if=/dev/zero of=output bs=1048576 count=1024
1024+0 records in
1024+0 records out
real    0m 1.06s
user    0m 0.00s
sys     0m 1.04s
```

Signed-off-by: David Scott <dave.scott@docker.com>
2019-11-22 20:48:31 +00:00
Rolf Neugebauer
4092a10063 Merge pull request #3436 from Ptitpote/kconfig-tag-patch
Add the possibility to tag linuxkit/kconfig with a custom tag
2019-11-06 19:50:02 +00:00
Gabriel Chabot
db10873122 Add the possibility to tag linuxkit/kconfig with a custom tag instead of latest
KCONFIG_TAG variable can be used to set a custom kconfig tag.
If KCONFIG_TAG is not set, the the image is tagged as linuxkit/kconfig:latest
This is useful for projects requiring to build multiple kernels that have
different patches.
When trying to edit an unpatched kernel config after working on a patched
kernel config (same kernel version), one had to rerun make kconfig first
in order to edit the config of an unpatched kernel.
Now it is possible to generate a tegged kconfig image and then, get the wanted
config by selecting the corresponding linuxkit/kexec:tag.

Signed-off-by: Gabriel Chabot <gabriel.chabot@qarnot-computing.com>
2019-10-29 09:26:59 +01:00
Simon Fridlund
ea5f542450 Fix the Scaleway provider in the metadata package
This commit will update the Scaleway provider to fetch the cloud-init/cloud-config data from the user_data/cloud-init endpoint it will also make sure the whole public ssh key is fetched and no longer strip out the `ssh-rsa` part of the keys

Signed-off-by: Simon Fridlund <simon@fridlund.email>
2019-10-15 12:38:52 +02:00
Patrik Cyvoct
1e1326b40a remove sendBootSignal in scaleway metadata package
It's now not needed to send a boot signal when booting an instance on
Scaleway, thus the method is not needed anymore.

Signed-off-by: Patrik Cyvoct <patrik@ptrk.io>
2019-10-15 09:35:35 +02:00
Avi Deitcher
afff608c49 Merge pull request #3428 from deitch/update-metadata-tags
Update linuxkit/metadata in yml to latest commit
2019-10-09 22:15:39 +03:00
Avi Deitcher
37806f158e Update linuxkit/metadata in yml to latest commit
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2019-10-09 20:57:04 +03:00
Nick Jones
10b2436eec [OpenStack] Support os-client-config usage for authentication
Update Gophercloud dependencies and also bring in the 'utils'
package.  This provides support for configuring access to OpenStack
clouds as detailed in the [official
documentation](https://docs.openstack.org/os-client-config/latest/user/configuration.html).

By relying on this package we can simplify the code required to
interact with OpenStack's APIs.  Support is also provided upstream for
self-signed and insecure SSL configurations.

Tested with a public cloud running OpenStack 'Rocky', the latest release.

Signed-off-by: Nick Jones <nick@dischord.org>
2019-10-08 12:46:43 +01:00
Avi Deitcher
668dc5a6ca Merge pull request #3425 from zimme/metadata-provider-hetzner
Add Hetzner provider in the metadata package
2019-10-07 21:51:02 +03:00
Simon Fridlund
69b586d8c9 Add Hetzner to examples
Signed-off-by: Simon Fridlund <simon@fridlund.email>
2019-10-07 19:34:12 +02:00
Simon Fridlund
fc88e2104e Add Hetzner provider in the metadata package
Signed-off-by: Simon Fridlund <simon@fridlund.email>
2019-10-07 17:31:57 +02:00
Rolf Neugebauer
7dc2fb19c5 Merge pull request #3424 from rn/kern-up
Update kernels, Intel uCode, add 5.3.x kernels
2019-10-02 23:58:18 +01:00
Rolf Neugebauer
da1d859fa8 Update YAMLs to latest kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-10-02 22:29:40 +01:00
Rolf Neugebauer
c2566e8dd0 kernel: Drop 5.2.x kernel from arm64 and s390x
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-10-02 20:05:44 +01:00
Rolf Neugebauer
b457648c40 kernel: Update to 5.3.2/5.2.18/4.19.76
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-10-02 20:05:05 +01:00
Rolf Neugebauer
4379275f45 Update YAMLs with new kernel config test
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-10-02 19:56:45 +01:00
Rolf Neugebauer
5fae83934d tests: Remove rootfs from kernel config test
The rootfs fs was removed in 5.3.x but was mostly a
irrelevant entry in the filesystems list anyway.

Here is the upstream commit:

commit fd3e007f6c6a0f677e4ee8aca4b9bab8ad6cab9a
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Thu May 30 17:48:35 2019 -0400

    don't bother with registering rootfs

    init_mount_tree() can get to rootfs_fs_type directly and that simplifies
    a lot of things.  We don't need to register it, we don't need to look
    it up *and* we don't need to bother with preventing subsequent userland
    mounts.  That's the way we should've done that from the very beginning.

    There is a user-visible change, namely the disappearance of "rootfs"
    from /proc/filesystems.  Note that it's been unmountable all along
    and it didn't show up in /proc/mounts; however, it *is* a user-visible
    change and theoretically some script might've been using its presence
    in /proc/filesystems to tell 2.4.11+ from earlier kernels.

    *IF* any complaints about behaviour change do show up, we could fake
    it in /proc/filesystems.  I very much doubt we'll have to, though.

    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-10-02 19:46:52 +01:00
Rolf Neugebauer
9f4895c25a tests: Add 5.3.x kernel tests
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-10-02 19:45:33 +01:00
Rolf Neugebauer
a87d90332b Update YAMLs to latest kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-10-02 19:45:33 +01:00
Rolf Neugebauer
eeafff3d27 kernel: Add rsync (required by 5.3.x kernel compile)
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-10-02 19:45:33 +01:00
Rolf Neugebauer
d1d731105b kernel: Enable GVE for 5.3.x kernel for x86
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-10-02 19:45:33 +01:00
Rolf Neugebauer
615303a1e3 kernel: Add support for 5.3.x kernels
The kernel config is copied from the 5.2.x config and
run through make oldconfig

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-10-02 19:45:33 +01:00
Rolf Neugebauer
4f0cd57748 kernel: Update to 5.2.17/4.19.75/4.14.146/4.9.194
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-10-02 19:45:33 +01:00
Rolf Neugebauer
c7cf340fd2 kernel: Update Intel ucode to 20190918
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-10-02 19:45:33 +01:00
Rolf Neugebauer
805271f12c kernel: Adjust kernel config
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-10-02 19:45:33 +01:00
Rolf Neugebauer
acab34371a kernel: Update to 5.2.16/4.19.74/4.14.145/4.9.193
This skips 5.2.10-15, 4.19.72-73, and 4.14.143-144

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-10-02 19:45:33 +01:00
Rolf Neugebauer
177de7512f kernel: Re-enable 5.2.x kernel for s390x
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-10-02 19:45:33 +01:00
Rolf Neugebauer
84375a65b9 kernel: Add -fPIC to kernel compile on s390x
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-10-02 19:45:33 +01:00
Justin Cormack
9e3f61058f Merge pull request #3389 from rn/mac-qemu-rng
cmd/qemu: Disable rng on macOS
2019-10-02 16:49:37 +01:00
Rolf Neugebauer
d903a8a215 Merge pull request #3422 from justincormack/building
Add local build requirements
2019-10-01 19:45:26 +01:00
Justin Cormack
a0305873c7 Add local build requirements
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2019-10-01 14:27:19 +01:00
Rolf Neugebauer
d94064e65e Merge pull request #3418 from guillaumerose/fixerrormsg
Error message is related to init image, not on boot.
2019-10-01 01:31:27 +02:00
Rolf Neugebauer
9a47b294f1 Merge pull request #3420 from justincormack/fix-parse-new-go
Expand all image references before passing to containerd reference.Parse
2019-10-01 01:30:12 +02:00
Justin Cormack
da533297c1 Expand all image references before passing to containerd reference.Parse
Short references without domains will now fail parsing on recent versions
of Go as net/url parser is more strict.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2019-09-30 12:14:15 +01:00
Rolf Neugebauer
648d0729d4 Merge pull request #3417 from hyperized/patch-1
Fix label argument mkfs.btrfs
2019-09-30 12:54:07 +02:00
Gerben Geijteman
9002602960 Apply image bump: https://github.com/linuxkit/linuxkit/pull/3417\#issuecomment-536217626 (now in correct branch)
Signed-off-by: Gerben Geijteman <gerben@isset.nl>
2019-09-30 09:18:21 +02:00
hyperized
680c6ebd8c Fix label argument mkfs.btrfs
Signed-off-by: Gerben Geijteman <gerben@hyperized.net>
2019-09-30 09:14:40 +02:00
Guillaume Rose
4ffb639105 Error message is related to init image, not on boot.
Signed-off-by: Guillaume Rose <guillaume.rose@docker.com>
2019-09-30 09:13:48 +02:00
Rolf Neugebauer
3be6466e00 Merge pull request #3399 from guillaumerose/trust
Add trust parameter for docker pull in moby.Formats
2019-09-28 20:24:01 +02:00
Rolf Neugebauer
6db75ee1ab Merge pull request #3416 from qarnot/earlier-microcode-download
Move microcode download earlier in Dockerfile
2019-09-24 06:38:49 +02:00
Yoann Ricordel
1ee293bcc2 Move microcode download earlier in Dockerfile
Intel microrode download is moved earlier in the Dockerfile, before the
kernel is actually built, so that it's available in the context of a
build and can be referenced in CONFIG_EXTRA_FIRMWARE for people who want
the microcode to be built-in the kernel.
It is still copied in the out/ directory and so that it is still
available for addition in a 'ucode:' section in linuxkit.yml.

Signed-off-by: Yoann Ricordel <yoann.ricordel@qarnot-computing.com>
2019-09-23 12:30:35 +02:00
Justin Cormack
27f21a6917 Merge pull request #3413 from rn/kern-up
Update kernel to 5.2.9/4.19.71/4.14.142/4.9.192 and WireGuard to 0.0.20190913
2019-09-19 10:48:31 +02:00
Rolf Neugebauer
3f94b129a5 tests: Update alpine base in kernel tests
Because we updated the alpine for the kernel builds

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-09-17 21:36:54 +01:00
Rolf Neugebauer
135d9de261 tests: Add 5.2.x tests
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-09-17 21:36:54 +01:00
Rolf Neugebauer
461fa41176 Update YAMLs to latest kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-09-17 21:36:54 +01:00
Rolf Neugebauer
a89c556125 kernel: Disable 5.2.x kernel for s390x for now
see: https://github.com/linuxkit/linuxkit/issues/3412

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-09-17 21:36:54 +01:00
Rolf Neugebauer
3b00838d6d kernel: Adjust s390x defconfig location
With 5.2.x the location moved to the configs subdirectory
to be more in line with other architectures.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-09-17 21:36:54 +01:00
Rolf Neugebauer
6649327285 kernel: Bump WireGuard to 0.0.20190913
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-09-17 21:36:54 +01:00
Rolf Neugebauer
0b352bae73 kernel: Update kernel build to latest alpine base
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-09-17 21:36:54 +01:00
Rolf Neugebauer
81b78e87a6 tests: Remove 5.1.x kernel tests
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-09-17 21:36:54 +01:00
Rolf Neugebauer
b406e5358b kernel: Remove 5.1.x
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-09-17 21:36:54 +01:00
Rolf Neugebauer
f620837773 kernel: Tweak 5.2.x kernel config
Disable Backlight drivers.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-09-17 21:36:53 +01:00
Rolf Neugebauer
a1cd1a9c43 kernel: Add 5.2.x kernels
The kernel config is derived from the 5.1.x config and
run through make oldconfig

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-09-17 21:36:53 +01:00
Rolf Neugebauer
515505b76e kernel: Adjust kernel config files
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-09-17 21:36:53 +01:00
Rolf Neugebauer
afd271fb85 kernel: Update to v4.19.71/4.14.142/4.9.192
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-09-17 21:36:53 +01:00
Rolf Neugebauer
ac4786ebb8 kernel: Make VSOCKETS a module in all kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-09-17 21:36:53 +01:00
Rolf Neugebauer
b4e0fdb891 Merge pull request #3407 from djs55/module-vsock
Switch to vsock as a module
2019-09-15 12:03:30 +01:00
Rolf Neugebauer
402184fd1f Merge pull request #3408 from TiejunChina/master-dev
update -rt to 4.19.59-rt24
2019-09-15 10:16:11 +01:00
Tiejun Chen
05b6bb5284 update rt example file
Signed-off-by: Tiejun Chen <tiejunc@vmware.com>
2019-09-10 17:55:30 -07:00
Tiejun Chen
0388410192 update -rt to 4.19.59-rt24
Signed-off-by: Tiejun Chen <tiejunc@vmware.com>
2019-09-10 17:54:21 -07:00
Avi Deitcher
c050fb7276 Merge pull request #2742 from deitch/getty-dedup
Keep track of processed ttys and only start same one once
2019-09-10 09:15:35 -04:00
Avi Deitcher
7cca26e3ad Merge pull request #3404 from deitch/proxy-option
Add docker-standard ftp_proxy + socks-standard all_proxy env vars
2019-09-05 18:51:38 +03:00
Avi Deitcher
fad3354448 Add docker-standard ftp_proxy/FTP_PROXY env var, and socks-standard all_proxy/ALL_PROXY
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2019-09-03 11:00:26 +03:00
Justin Cormack
d9bdd77ba7 Merge pull request #3387 from rn/kern-up
Update kernels to 5.1.15/4.19.56/4.14.131/4.9.184
2019-09-02 13:07:25 +01:00
Rolf Neugebauer
c1370780d0 Update YAMLs to latest kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-08-29 09:04:42 +01:00
Rolf Neugebauer
472c7d944f kernel: Update to 5.1.15/4.19.56/4.14.131/4.9.184
Note, this skips 4.14.130 and 4.9.183 as the diff
is just one commit.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-08-29 09:04:42 +01:00
Rolf Neugebauer
315ddf88e2 kernel: Enable WIRELESS and WLAN in x86 and arm64 configs
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-08-29 09:04:41 +01:00
Rolf Neugebauer
380a05e416 kernel: Update to 5.1.14/4.19.55/4.14.129
This skips 5.1.13 and 4.19.54 because the diff was
a single commit.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-08-29 09:04:41 +01:00
Rolf Neugebauer
54f54f0791 kernel: Update to 5.1.12/4.19.53/4.14.128
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-08-29 09:04:41 +01:00
Rolf Neugebauer
d32c4a1c4b Merge pull request #3403 from rn/containerd-1.28
Update to containerd v1.2.8
2019-08-29 09:03:48 +01:00
Avi Deitcher
49ffa978d3 Keep track of processed ttys and only start same one once
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2019-08-29 11:03:18 +03:00
Rolf Neugebauer
cf4be444df Update YAMLs to latest containerd
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-08-25 14:23:14 +01:00
Rolf Neugebauer
2018f5f499 Bump packages to new alpine w/ containerd v1.2.8
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-08-25 14:11:09 +01:00
Rolf Neugebauer
71f0cb364d alpine: Update alpine package
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-08-25 08:56:49 -04:00
Rolf Neugebauer
8940ba5e34 alpine: Bump containerd to v1.2.8
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-08-25 13:21:29 +01:00
Guillaume Rose
22fb927f2f Add trust parameter for docker pull in moby.Formats
Signed-off-by: Guillaume Rose <guillaume.rose@docker.com>
2019-08-07 22:56:58 +02:00
Justin Cormack
aa0a76b58b Merge pull request #3397 from rn/fw-fix
Fix path in firmware image (and update while at it)
2019-08-02 10:45:27 +01:00
Rolf Neugebauer
a380dd70d4 examples: Update firmware image to latest
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-08-02 00:46:11 +01:00
Rolf Neugebauer
3c0131e2e1 pkg/firmware: Update to latest firmware package
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-08-02 00:32:09 +01:00
Rolf Neugebauer
f6695a7e03 pkg/firmware: Update the kernel package to a newer version.
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-08-02 00:28:39 +01:00
Rolf Neugebauer
b1bed08f72 pkg/firmware: Fix directory layout
Copy firmaware files to the correct directory. Instead of

<vendor>/<fw-name>/<fw-name> copy it to <vendor>/<fw-name>.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-08-02 00:26:17 +01:00
Justin Cormack
2c89f304ce Merge pull request #3390 from nakato/vultr-ssh
Vultr ssh
2019-07-22 10:09:44 +01:00
Sachi King
d4c6c5be47 Explicitly define metadata provider for Vultr
Vultr provides an API that looks a lot like the AWS api, resulting in
the AWS provider succeeding, but missing certain metadata parts that one
would expect to work out of the box on Vultr, such as SSH PubKey
fetching.

Signed-off-by: Sachi King <nakato@nakato.io>
2019-07-22 17:26:51 +10:00
Sachi King
f966dea6ff metadata: Fix Vultr provider SSH pubkey fetching
The Vultr provider currently never calls handleSSH, resulting in it
being impossible to bring up a LinuxKit image in vultr with the SSH
pubkey provided via the Vultr metadata API.

Signed-off-by: Sachi King <nakato@nakato.io>
2019-07-22 17:14:25 +10:00
Guillaume Rose
97ad842018 Update extend package
Signed-off-by: Guillaume Rose <guillaume.rose@docker.com>
2019-07-17 21:57:01 +02:00
Guillaume Rose
6a6d169af9 Use ioctl instead of blockdev
Signed-off-by: Guillaume Rose <guillaume.rose@docker.com>
2019-07-17 21:56:21 +02:00
Guillaume Rose
0fb16ac8b0 Don’t resize dos partition if no free space is available
Signed-off-by: Guillaume Rose <guillaume.rose@docker.com>
2019-07-17 16:56:02 +02:00
Guillaume Rose
518220ee44 LastLBA is only present for GPT table
Signed-off-by: Guillaume Rose <guillaume.rose@docker.com>
2019-07-17 16:56:02 +02:00
Guillaume Rose
65f3d9bcc1 Propagate error instead of log.Fatalf()
Signed-off-by: Guillaume Rose <guillaume.rose@docker.com>
2019-07-17 16:56:02 +02:00
David Scott
138199299a Switch to vsock as a module
Signed-off-by: David Scott <dave.scott@docker.com>
2019-07-09 15:30:01 +01:00
Rolf Neugebauer
5426ae55af cmd/qemu: Disable rng on macOS
With rng-random, booting hangs before switching
to the initrd.

fixes https://github.com/linuxkit/linuxkit/issues/3320

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-07-08 20:04:36 +01:00
Rolf Neugebauer
66cd2b6ee5 Merge pull request #3377 from Sh4d1/update_scaleway_provider
Update Scaleway Provider with new Go SDK
2019-07-05 18:33:14 +01:00
Avi Deitcher
54a13caa8d Merge pull request #3385 from rn/wireguard-up
kernel: Update wireguard to 0.0.20190601
2019-07-03 10:06:31 +03:00
Rolf Neugebauer
8db41028b4 Merge pull request #3386 from rn/containerd-up
Bump containerd to v1.2.7
2019-07-02 21:03:40 +01:00
Rolf Neugebauer
d4d74f0117 Update YAMLs to latest containerd
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-06-28 02:05:02 +01:00
Rolf Neugebauer
c0fcc3ddac Bump packages to new alpine w/ containerd v1.2.7
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-06-28 01:56:20 +01:00
Rolf Neugebauer
e927e25c0e alpine: Update alpine package
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-06-27 20:53:08 -04:00
Rolf Neugebauer
8b9d510467 alpine: Use community instead of testing for wireguard-tools
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-06-28 01:20:43 +01:00
Rolf Neugebauer
8fd4e7c2fd alpine: Bump contianerd to v1.2.7
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-06-28 01:13:17 +01:00
Rolf Neugebauer
f7b3eb38ef kernel: Update wireguard to 0.0.20190601
This skips 0.0.20190531

Changelog for 0.0.20190601

== Changes ==

  * compat: don't call xgetbv on cpus with no XSAVE

  There was an issue with the backport compat layer in yesterday's snapshot,
  causing issues on certain (mostly Atom) Intel chips on kernels older than
  4.2, due to the use of xgetbv without checking cpu flags for xsave support.
  This manifested itself simply at module load time. Indeed it's somewhat tricky
  to support 33 different kernel versions (3.10+), plus weird distro
  frankenkernels.

Changelog for 0.0.20190531

== Changes ==

  * tools: add wincompat layer to wg(8)

  Consistent with a lot of the Windows work we've been doing this last cycle,
  wg(8) now supports the WireGuard for Windows app by talking through a named
  pipe. You can compile this as `PLATFORM=windows make -C src/tools` with mingw.
  Because programming things for Windows is pretty ugly, we've done this via a
  separate standalone wincompat layer, so that we don't pollute our pretty *nix
  utility.

  * compat: udp_tunnel: force cast sk_data_ready

  This is a hack to work around broken Android kernel wrapper scripts.

  * wg-quick: freebsd: workaround SIOCGIFSTATUS race in FreeBSD kernel

  FreeBSD had a number of kernel race conditions, some of which we can vaguely
  work around. These are in the process of being fixed upstream, but probably
  people won't update for a while.

  * wg-quick: make darwin and freebsd path search strict like linux

  Correctness.

  * socket: set ignore_df=1 on xmit

  This was intended from early on but didn't work on IPv6 without the ignore_df
  flag. It allows sending fragments over IPv6.

  * qemu: use newer iproute2 and kernel
  * qemu: build iproute2 with libmnl support
  * qemu: do not check for alignment with ubsan

  The QEMU build system has been improved to compile newer versions. Linking
  against libmnl gives us better error messages. As well, enabling the alignment
  check on x86 UBSAN isn't realistic.

  * wg-quick: look up existing routes properly
  * wg-quick: specify protocol to ip(8), because of inconsistencies

  The route inclusion check was wrong prior, and Linux 5.1 made it break
  entirely. This makes a better invocation of `ip route show match`.

  * netlink: use new strict length types in policy for 5.2
  * kbuild: account for recent upstream changes
  * zinc: arm64: use cpu_get_elf_hwcap accessor for 5.2

  The usual churn of changes required for the upcoming 5.2.

  * timers: add jitter on ack failure reinitiation

  Correctness tweak in the timer system.

  * blake2s,chacha: latency tweak
  * blake2s: shorten ssse3 loop

  In every odd-numbered round, instead of operating over the state
      x00 x01 x02 x03
      x05 x06 x07 x04
      x10 x11 x08 x09
      x15 x12 x13 x14
  we operate over the rotated state
      x03 x00 x01 x02
      x04 x05 x06 x07
      x09 x10 x11 x08
      x14 x15 x12 x13
  The advantage here is that this requires no changes to the 'x04 x05 x06 x07'
  row, which is in the critical path. This results in a noticeable latency
  improvement of roughly R cycles, for R diagonal rounds in the primitive. As
  well, the blake2s AVX implementation is now SSSE3 and considerably shorter.

  * tools: allow setting WG_ENDPOINT_RESOLUTION_RETRIES

  System integrators can now specify things like
  WG_ENDPOINT_RESOLUTION_RETRIES=infinity when building wg(8)-based init
  scripts and services, or 0, or any other integer.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-06-28 00:39:23 +01:00
Rolf Neugebauer
d58859dd7f Merge pull request #3363 from lpottier/fix-kconfig-urls
Fixed urls used to download kernel images from kernel.org in kernel/Dockerfile.kconfig, used by make kconfig
2019-06-25 22:52:39 +02:00
Loïc Pottier
52aa902800 Added --create-dirs to Dockerfile.kconfig to fix a crash when
the sources/ directory does not exist

Signed-off-by: Loïc Pottier <lpottier@isi.edu>
2019-06-25 11:37:45 -07:00
Rolf Neugebauer
4dc5d0a3fb Merge pull request #3370 from guillaumerose/swap
Create swap file only if absent
2019-06-20 12:36:38 +01:00
Rolf Neugebauer
24eb7b048c Merge pull request #3381 from bjornin/update-zfs-0.8.1
Update zfs to 0.8.1
2019-06-20 01:02:38 +01:00
Björn Ingeson
3322e7ad18 Update zfs to 0.8.1
Since SPL is included in the ZFS repo from 0.8.0 this change will not be backwards compatible.

Signed-off-by: Björn Ingeson <bjorn.ingeson@gmail.com>
2019-06-19 23:30:44 +02:00
Rolf Neugebauer
1fd88b1dcc Merge pull request #3380 from TiejunChina/master-dev
update -rt to 4.19.50-rt22
2019-06-19 09:18:32 +01:00
Tiejun Chen
ee4ebc7f2a update -rt to 4.19.50-rt22
Signed-off-by: Tiejun Chen <tiejunc@vmware.com>
2019-06-18 16:39:12 -07:00
Justin Cormack
2ddfdad1b1 Merge pull request #3378 from rn/kern-up
Update kernels to 5.1.10/4.19.51/4.14.126/4.9.181
2019-06-17 23:57:24 +01:00
Rolf Neugebauer
8922b437dd kernel: Update to 5.1.11/4.19.52/4.14.127/4.9.182/4.4.182
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-06-17 23:05:46 +01:00
Rolf Neugebauer
5dcccbca50 Update YAMLs to latest kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-06-17 21:05:32 +01:00
Patrik Cyvoct
6a4d127fd3 Update Scaleway Provider with new Go SDK
Signed-off-by: Patrik Cyvoct <patrik@ptrk.io>
2019-06-17 19:12:47 +02:00
Guillaume Rose
e57cb35015 Update linuxkit/swap image
Signed-off-by: Guillaume Rose <guillaume.rose@docker.com>
2019-06-17 10:06:17 +02:00
Guillaume Rose
fa1cd40a2a Create swap file only if absent
Signed-off-by: Guillaume Rose <guillaume.rose@docker.com>
2019-06-17 10:06:17 +02:00
Rolf Neugebauer
b1991877f6 kernel: Update to 5.1.10/4.19.51/4.14.126/4.9.181
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-06-17 08:38:26 +01:00
Rolf Neugebauer
c77ef1560f kernel: Update to 5.1.9/4.19.50/4.14.125
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-06-16 21:53:37 +01:00
Justin Cormack
ea23fecdee Merge pull request #3372 from rn/kern-up
Update kernels to 5.1.8/4.19.49/4.14.124 (remove 5.0.x kernel)
2019-06-10 16:48:02 +01:00
Rolf Neugebauer
a59b3a1e01 Update YAMLs to latest kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-06-10 09:35:08 +01:00
Rolf Neugebauer
b3805745f2 kernel: Update to 5.1.8/4.19.49/4.14.124
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-06-10 09:35:08 +01:00
Rolf Neugebauer
4a86f4423d kernel: Adjust 4.19.x kernel config file
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-06-10 09:35:08 +01:00
Rolf Neugebauer
ae53b3f28f kernel: Update to 5.1.7/4.19.48
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-06-10 09:35:08 +01:00
Rolf Neugebauer
fcb618822b Remove the 5.0.x kernel
It was EOLed with 5.0.21

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-06-10 09:35:08 +01:00
Rolf Neugebauer
d50ac51d48 Merge pull request #3367 from singe/patch-1
Update kernel Dockerfile with openssl-dev dep
2019-06-06 19:47:15 +01:00
Rolf Neugebauer
7ca3f6684f Merge pull request #3368 from ndauten/mem-update
Memorizer update
2019-06-06 19:46:26 +01:00
Dominic White
340dba89a0 Update kernel Dockerfile with openssl-dev dep
Kernel series 5.1.x requires openssl headers to compile scripts/extract-cert.c.

Signed-off-by: singe <singe-github@singe.za.net>
2019-06-06 15:24:08 +02:00
Nathan Dautenhahn
d503a77dd4 Update and modify kconfig for memorizer
Signed-off-by: Nathan Dautenhahn <ndd@rice.edu>
2019-06-06 07:58:26 -05:00
Nathan Dautenhahn
6f8510a1fe Use non dirty tag for memorizer
Signed-off-by: Nathan Dautenhahn <ndd@rice.edu>
2019-06-06 07:58:26 -05:00
Justin Cormack
02913f8950 Merge pull request #3366 from rn/may-2019
May 2019 development report (and Author update)
2019-06-05 12:31:09 +01:00
Rolf Neugebauer
cd7ea94fb8 Merge pull request #3345 from kmjohansen/topics/kj/rngd-eintr
rngd exits after being stopped and resumed
2019-06-05 08:39:46 +01:00
Krister Johansen
8159efcf8f Update rngd image.
Move linuxkit/rngd up to 02c555b50c

Signed-off-by: Krister Johansen <krister.johansen@oracle.com>
2019-06-04 13:25:16 -07:00
Krister Johansen
3b20802be7 rngd exits after being stopped and resumed
Linux has documented but somewhat unusual behavior around
SIGSTOP/SIGCONT and certain syscalls, of which epoll_wait(2) is one.  In
this particular case, rngd exited unexpectedly after getting ptrace'd
mid-epoll_wait.  Fix this by handling EINTR from this syscall, and
continuing to add entropy and wait.

Signed-off-by: Krister Johansen <krister.johansen@oracle.com>
2019-06-04 13:22:50 -07:00
Rolf Neugebauer
4dbba2540b Merge pull request #3357 from riconnon/uboot-dtbs
Support for dynamic selection of Raspberry Pi DTB
2019-06-04 11:20:01 +01:00
Richard Connon
30b78d7e82 Update mkimage-rpi3 tool reference in linuxkit CLI
Update the image tag for the mkimage-rpi3 tool used by the CLI to adopt
the dynamic DTB selection feature.

Signed-off-by: Richard Connon <richard@connon.me.uk>
2019-06-04 08:04:10 +00:00
Richard Connon
5ffbfbbf67 Support loading correct DTB for RPi 3 model B+
U-Boot sets the variable fdtfile to the correct file name for the
detected hardware revision. Use this in the boot script to load either
the 3-b or 3-b-plus DTB

Signed-off-by: Richard Connon <richard@connon.me.uk>
2019-06-04 08:03:31 +00:00
Richard Connon
b97f47b0aa Update rpi3 u-boot to detect newer hardware
Update the u-boot image included in the mkimage-rpi3 image to support
detecting newer hardware versions and setting the fdtfile variable
accordingly
Shallow clone the u-boot repository during docker build to improve build
efficiency

Signed-off-by: Richard Connon <richard@connon.me.uk>
2019-06-04 08:03:31 +00:00
Rolf Neugebauer
ce8e8595d9 May 2019 development report
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-06-03 20:59:11 +01:00
Rolf Neugebauer
7fff877732 Update AUTHORS file
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-06-03 20:18:06 +01:00
Justin Cormack
38ac762f8b Merge pull request #3362 from rn/kern-up
Update kernels to 5.1.6/5.0.20/4.19.47/4.9.180
2019-06-03 16:53:33 +01:00
Justin Cormack
b980fa72da Merge pull request #3365 from justincormack/log-driver
Do not use a log driver while running containers
2019-06-03 13:03:01 +01:00
Justin Cormack
213d9b0380 Do not use a log driver while running containers
This stops the output from also being copied to logs if the user
has a log driver configured.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2019-06-03 10:44:02 +01:00
Rolf Neugebauer
848ba99223 Update YAMLs to latest kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-06-02 00:50:34 +01:00
Rolf Neugebauer
07847a51a5 kernel: Adjust arm64 kernel config
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-06-01 19:26:11 +01:00
Rolf Neugebauer
409a06ba5d kernel: Update to 5.1.6/5.0.20/4.19.47/4.9.180
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-06-01 13:46:12 +01:00
Rolf Neugebauer
845e25a569 Merge pull request #3361 from jterry75/update_linuxkit/runc
Update to latest linuxkit/runc:c1f0db2
2019-06-01 11:43:05 +01:00
Rolf Neugebauer
4d9b9853f0 Merge pull request #3338 from jterry75/update_runc-v1.0.0-rc8
Update opencontainers/runc to v1.0.0-rc8
2019-06-01 11:42:45 +01:00
Rolf Neugebauer
ca376d70db Merge pull request #3359 from TiejunChina/master-dev
update -rt to 4.19.37-rt20
2019-06-01 01:58:24 +01:00
Tiejun Chen
2fc3151ccd update -rt to 4.19.37-rt20
Signed-off-by: Tiejun Chen <tiejunc@vmware.com>
2019-05-30 17:57:53 -07:00
Justin Terry (VM)
45a354bba9 Update to latest linuxkit/runc:c1f0db2
Signed-off-by: Justin Terry (VM) <juterry@microsoft.com>
2019-05-30 11:36:57 -07:00
Justin Cormack
80379b41fd Merge pull request #3358 from rn/kern-up
Upte kernels to 5.1.5/5.0.19/4.19.46/4.14.122/4.9.179
2019-05-30 11:19:45 +03:00
Rolf Neugebauer
64cd724a34 Merge pull request #3351 from riconnon/update-rpi-firmware
Update referenced Raspberry Pi firmware
2019-05-27 14:37:12 -07:00
Rolf Neugebauer
72c0cda916 Update YAMLs to the latest kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-05-27 22:31:32 +01:00
Rolf Neugebauer
7b784fedb5 kernel: Adjust kernel config
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-05-27 08:39:19 +01:00
Rolf Neugebauer
747138ca72 kernel: Update to 5.1.5/5.0.19/4.19.46/4.14.122/4.9.179
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-05-26 23:14:14 +01:00
Rolf Neugebauer
3c983a78e8 kernel: Adjust s390x config file
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-05-26 16:22:53 +01:00
Rolf Neugebauer
76e9d95fda kernel: Update to 5.1.4/5.0.18/4.19.45/4.14.121/4.9.178
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-05-26 14:35:06 +01:00
Rolf Neugebauer
fde7e0e612 kernel: Update to 5.1.3/5.0.17/4.19.44/4.14.120/4.9.177
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-05-26 12:09:27 +01:00
Richard Connon
2f6876b2c1 Update referenced Raspberry Pi firmware
Update Raspberry Pi firmware used in mkimage-rpi3 to the latest stable
version to support newer hardware models such as the 3B+

Signed-off-by: Richard Connon <richard@connon.me.uk>
2019-05-26 08:14:14 +01:00
Rolf Neugebauer
f040d05d20 kernel: Enable HOTPLUG_PCI_ACPI for x86
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-05-25 18:53:41 +01:00
Rolf Neugebauer
7cb48d2e82 kernel: Update kernels to 5.1.2/5.0.16/4.19.43/4.14.119/4.9.176
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-05-25 18:37:18 +01:00
Rolf Neugebauer
13e232519b kernel: Update Intel microcode
Intel seem to have switched to hosting the microcode on GitHub.
Use this source and update to the 20190514 version.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-05-25 18:32:35 +01:00
Rolf Neugebauer
d7d2f1af8e kernel: Remove 5.0.x kernel for arm64 and s390x
To reduce the number of kernels to compile...

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-05-25 18:32:35 +01:00
Rolf Neugebauer
750bdfd5eb Merge pull request #3350 from schrotthaufen/rpi3bp
kernel: Include lan78xx kernel module for use with rpi3b+
2019-05-25 10:31:35 -07:00
Rolf Neugebauer
d3b28c951e Merge pull request #3355 from rn/wg-0.0.20190406
Update to WireGuard  0.0.20190406
2019-05-25 09:23:15 -07:00
Rolf Neugebauer
20d47a9bc3 Revert "kernel: Disable WireGuard for 5.1.x kernels"
This reverts commit 0a46f29a05.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-05-25 14:16:25 +01:00
Rolf Neugebauer
9f6b8ee81d kernel: Update WireGuard to 0.0.20190406
== Changes ==

  * allowedips: initialize list head when removing intermediate nodes

  Fix for an important regression in removing allowed IPs from the last
  snapshot. We have new test cases to catch these in the future as well.

  * wg-quick: freebsd: rebreak interface loopback, while fixing localhost
  * wg-quick: freebsd: export TMPDIR when restoring and don't make empty

  Two fixes for FreeBSD which have already been backported into ports.

  * tools: genkey: account for short reads of /dev/urandom
  * tools: add support for Haiku

  The tools now support Haiku! Maybe somebody is working on a WireGuard
  implementation for it?

  * tools: warn if an AllowedIP has a nonzero host part

  If you try to run `wg set wg0 peer ... allowed-ips 192.168.1.82/24`, wg(8)
  will now print a warning. Even though we mask this automatically down to
  192.168.1.0/24, usually when people specify it like this, it's a mistake.

  * wg-quick: add 'strip' subcommand

  The new strip subcommand prints the config file to stdout after stripping
  it of all wg-quick-specific options. This enables tricks such as:
  `wg addconf $DEV <(wg-quick strip $DEV)`.

  * tools: avoid unneccessary next_peer assignments in sort_peers()

  Small C optimization the compiler was probably already doing.

  * peerlookup: rename from hashtables
  * allowedips: do not use __always_inline
  * device: use skb accessor functions where possible

  Suggested tweaks from Dave Miller.

  * qemu: set framewarn 1280 for 64bit and 1024 for 32bit

  These should indicate to us more clearly when we cross the most strict stack
  thresholds expected when using recent compilers with the kernel.

  * blake2s: simplify
  * blake2s: remove outlen parameter from final

  The blake2s implementation has been simplified, since we don't use any of the
  fancy tree hashing parameters or the like. We also no longer separate the
  output length at initialization time from the output length at finalization
  time.

  * global: the _bh variety of rcu helpers have been unified
  * compat: nf_nat_core.h was removed upstream
  * compat: backport skb_mark_not_on_list

  The usual assortment of compat fixes for Linux 5.1.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-05-25 14:05:51 +01:00
schrotthaufen
0120b7dc74 kernel: Include lan78xx kernel module for use with rpi3b+
Signed-off-by: schrotthaufen <schrotthaufen@invalid.invalid>
2019-05-16 20:32:43 +02:00
Preston Holmes
00b0f8fa90 Change userdata key in cmd src
Signed-off-by: Preston Holmes <preston@ptone.com>
2019-05-15 14:06:42 -07:00
Preston Holmes
d11404ca97 Update GCP metadata provider
Signed-off-by: Preston Holmes <preston@ptone.com>
2019-05-15 13:51:58 -07:00
Rolf Neugebauer
bdf1d0558f Merge pull request #3348 from rn/report-apr-2019
April 2019 report and authors update
2019-05-13 11:25:31 +01:00
Rolf Neugebauer
34b00fa8aa Merge pull request #3347 from rn/kern-up
Update kernels to 5.0.15/4.19.42/4.14.118/4.9.175 and add 5.1.1 kernel
2019-05-12 22:33:50 +01:00
Rolf Neugebauer
59ddbe3f9c Update Authors
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-05-12 22:08:39 +01:00
Rolf Neugebauer
726a9ee4c9 Development report for April 2019
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-05-12 22:07:22 +01:00
Rolf Neugebauer
626c6ccef1 Update YAMLs to latest kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-05-12 20:58:32 +01:00
Rolf Neugebauer
d72c928a1e tests: Add tests for the 5.1.x kernel
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-05-12 20:56:26 +01:00
Rolf Neugebauer
0a46f29a05 kernel: Disable WireGuard for 5.1.x kernels
Getting compile errors:

AS [M]  /wireguard/crypto/zinc/chacha20/chacha20-x86_64.o
In file included from <command-line>:
/wireguard/compat/compat.h:795:10: fatal error: net/netfilter/nf_nat_core.h: No such file or directory
 #include <net/netfilter/nf_nat_core.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-05-12 18:24:40 +01:00
Rolf Neugebauer
63a120c4a1 kernel: Add support for 5.1.x kernels
The config files were derived from the 5.0.x config
files and run through make oldconfig.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-05-12 16:10:51 +01:00
Rolf Neugebauer
7bebc0fae5 kernel: Update to 5.0.15/4.19.42/4.14.118/4.9.175
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-05-12 11:54:15 +01:00
Rolf Neugebauer
7cb1d40a4a kernel: Update to 5.0.14/4.19.41/4.14.117/4.9.174
Skip 5.0.13 and 4.19.40 as the delta to the previous
version is like ~25 patches.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-05-11 18:36:13 +01:00
Justin Cormack
8129070a90 Merge pull request #3344 from rn/kern-up
Update kernels to 5.0.12/4.9.39/4.14.116/4.9.173
2019-05-07 08:03:27 -07:00
Rolf Neugebauer
c16bef3520 Update YAMLs to latest kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-05-06 08:49:06 +01:00
Rolf Neugebauer
7e6f117f9e kernel: Update to 5.0.12/4.19.39/4.14.116/4.9.173
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-05-05 13:31:12 +01:00
Rolf Neugebauer
93a59dc440 Merge pull request #3341 from deitch/fix-kernel-mkimage
Fix issue wherein multiple files named kernel in the tar break various mkimage utils
2019-05-05 12:50:31 +01:00
Rolf Neugebauer
9a969a6bbe kernels: Update to 5.0.11/4.19.38/4.14.115/4.9.172
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-05-05 10:31:40 +01:00
Avi Deitcher
0cb9d79b51 Simplify to static kernel file location
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2019-05-05 12:28:17 +03:00
Justin Terry (VM)
1d9cedc0bb Update opencontainers/runc to v1.0.0-rc8
Signed-off-by: Justin Terry (VM) <juterry@microsoft.com>
2019-04-29 16:24:02 -07:00
Rolf Neugebauer
a3ac8f7443 Merge pull request #3335 from nakato/RPi3bp
Update RPi firmware
2019-04-28 22:05:38 +01:00
Rolf Neugebauer
473426229f Merge pull request #3337 from rn/kern-up
Update kernel to 5.0.10/4.19.37/4.14.114/4.9.171
2019-04-28 20:03:03 +01:00
Rolf Neugebauer
4ec32a215d Update YAMLs to latest kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-04-28 16:27:06 +01:00
Rolf Neugebauer
44b91954b6 kernel: Update to 5.0.10/4.19.37/4.14.114/4.9.172
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-04-28 11:10:30 +01:00
Sachi King
df41414d82 Update RPi builder hash to include FW
Fixes #3324

Signed-off-by: Sachi King <nakato@nakato.io>
2019-04-28 15:38:02 +10:00
Sachi King
ea66def1fb Update RPi3 firmware to fix startup on newer kit
With the current firmware being pulled for the RPi3, recent revisions of
the RPi hardware, such as the 3 B+ will fail to boot.

The issue is exhibited as when RPi 3 B+ receives power and attempts to
boot, the power LED will turn off and the ACT LED will flash 8 times.
According to elinux.org troubleshooting guide[0] this correlates to an
SDRAM initialisation error that can be fixed by updating the firmware.

After updating this firmware the power light stays on, and UBoot can be
seen booting.

[0] - https://elinux.org/R-Pi_Troubleshooting#Green_LED_blinks_in_a_specific_pattern

Signed-off-by: Sachi King <nakato@nakato.io>
2019-04-23 10:30:31 +10:00
Sachi King
0bd28bd3a8 Vendor RPi firmware blob licenese
As per the license, the license must be provided with the binaries.

Signed-off-by: Sachi King <nakato@nakato.io>
2019-04-23 10:30:13 +10:00
Rolf Neugebauer
dd81f840a2 Merge pull request #3334 from rn/kern-up
Update kernels to 5.0.9/4.19.36/4.14.113/4.9.170
2019-04-22 22:35:27 +01:00
Rolf Neugebauer
b837d1125d Update YAMLs to latest kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-04-22 16:47:58 +01:00
Rolf Neugebauer
b22ba61a2b kernel: Update to 5.0.9/4.19.36/4.14.113/4.9.170
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-04-22 11:03:01 +01:00
Rolf Neugebauer
a39ee60478 kernel: Remove dependency on 'sources'
Commit d47b283df4 ("kernel: Remove fetch target") removed
the 'fetch' target to simplify the Makefile. This left
dependencies on 'sources' lingering. Remove it.

resolves #3333

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-04-22 11:03:01 +01:00
Rolf Neugebauer
7214e48715 Merge pull request #3332 from rn/kern-up
Kernel update to 5.0.8/4.19.35/4.14.112/4.9.169
2019-04-19 20:25:40 +01:00
Rolf Neugebauer
8c1c7dbf7e Update YAMLs to latest kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-04-19 14:44:31 +01:00
Rolf Neugebauer
724c807b49 kernel: Update config files
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-04-19 11:19:21 +01:00
Rolf Neugebauer
719a2753db kernel: Update to 5.0.8/4.19.35/4.14.112/4.9.169
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-04-19 10:54:27 +01:00
Rolf Neugebauer
82a75d4b0f Merge pull request #3330 from deitch/grub-coreos-alpine-3.9
Build coreos grub off of alpine:3.9 and separate build steps for caching
2019-04-18 18:47:39 +01:00
Avi Deitcher
a02537ebe5 Build coreos grub off of alpine:3.9 and separate build steps for caching
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2019-04-18 11:50:05 +03:00
Justin Cormack
e08e5caed7 Merge pull request #3331 from rn/post-v0.7
Bump version to v0.7+
2019-04-17 23:57:51 +01:00
Rolf Neugebauer
8e1b6b0d0b Bump version to v0.7+
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-04-17 21:57:11 +01:00
Daniel Dean
1653e9dffb Removed size arg from GCP make-fs command.
The make-gcp script in the mkimage-gcp tool creates a virtual fs of 1GB, excactly. If your filesystem needs to be larger, then make-gcp errors in a poorly explained way. Simply removing the arg makes the fs the same size as the image used to build it.

Signed-off-by: Daniel Smith <daniel@razorsecure.com>
2019-03-07 14:20:42 +00:00
10827 changed files with 3091204 additions and 690643 deletions

View File

@@ -1,62 +0,0 @@
version: 2
jobs:
build:
working_directory: /go/src/github.com/linuxkit/linuxkit
docker:
- image: circleci/golang:1.11-stretch
steps:
- checkout
- run: mkdir -p ./bin
- run:
name: Versions
command: |
set -x
go version
cat /etc/os-release
- run:
name: Dependencies
command: |
go get -u golang.org/x/lint/golint
go get -u github.com/gordonklaus/ineffassign
- run:
name: Lint
command: make local-check
- run:
name: Build amd64/linux
environment:
GOOS: linux
GOARCH: amd64
command: make LOCAL_TARGET=bin/linuxkit-$GOOS-$GOARCH local-build
- run:
name: Build arm64/linux
environment:
GOOS: linux
GOARCH: arm64
command: make LOCAL_TARGET=bin/linuxkit-$GOOS-$GOARCH local-build
- run:
name: Build s390x/linux
environment:
GOOS: linux
GOARCH: s390x
command: make LOCAL_TARGET=bin/linuxkit-$GOOS-$GOARCH local-build
- run:
name: Build amd64/darwin
environment:
GOOS: darwin
GOARCH: amd64
command: make LOCAL_TARGET=bin/linuxkit-$GOOS-$GOARCH local-build
- run:
name: Build amd64/windows
environment:
GOOS: windows
GOARCH: amd64
command: make LOCAL_TARGET=bin/linuxkit-$GOOS-$GOARCH.exe local-build
- run:
name: Test
command: make local-test
- run:
name: Checksum
command: cd bin && sha256sum linuxkit-*-* > SHA256SUM
- store_artifacts:
path: ./bin
destination: .

434
.github/workflows/ci.yml vendored Normal file
View File

@@ -0,0 +1,434 @@
name: LinuxKit CI
on: [push, pull_request]
jobs:
build:
name: Build & Test
strategy:
matrix:
target:
- os: linux
arch: amd64
suffix: amd64-linux
runner: ubuntu-latest
- os: linux
arch: arm64
suffix: arm64-linux
runner: ubuntu-latest
- os: linux
arch: s390x
suffix: s390x-linux
runner: ubuntu-latest
- os: darwin
arch: amd64
suffix: amd64-darwin
runner: macos-latest
- os: darwin
arch: arm64
suffix: arm64-darwin
runner: macos-latest
- os: windows
arch: amd64
suffix: amd64-windows.exe
runner: ubuntu-latest
runs-on: ${{ matrix.target.runner }}
steps:
- name: Set up Go 1.22
uses: actions/setup-go@v5
with:
go-version: 1.22.3
id: go
- name: Check out code
uses: actions/checkout@v4
- name: Set path
run: echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
env:
GOPATH: ${{runner.workspace}}
- name: golangci-lint CLI
uses: golangci/golangci-lint-action@v7
with:
version: v2.0.2
working-directory: src/cmd/linuxkit
args: --verbose --timeout=10m
- name: go vet CLI
run: |
cd src/cmd/linuxkit && go vet ./...
- name: Build
run: |
make GOARCH=${{matrix.target.arch}} GOOS=${{matrix.target.os}} LOCAL_TARGET=$(pwd)/bin/linuxkit-${{matrix.target.suffix}} local-build
file bin/linuxkit-${{matrix.target.suffix}}
env:
GOPATH: ${{runner.workspace}}
- name: Checksum
run: |
cd bin
if command -v sha256sum > /dev/null; then sha256sum linuxkit-${{matrix.target.suffix}} > linuxkit-${{matrix.target.suffix}}.SHA256SUM
else openssl sha256 -r linuxkit-${{matrix.target.suffix}} | tr -d '*' > linuxkit-${{matrix.target.suffix}}.SHA256SUM
fi
cat linuxkit-${{matrix.target.suffix}}.SHA256SUM
- name: Test
run: make local-test
env:
GOPATH: ${{runner.workspace}}
- name: Upload binary
uses: actions/upload-artifact@v4
with:
name: linuxkit-${{matrix.target.suffix}}
path: |
bin/linuxkit-${{matrix.target.suffix}}
bin/linuxkit-${{matrix.target.suffix}}.SHA256SUM
if-no-files-found: error
build_packages:
name: Build Packages
needs: build
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set up binfmt
# Only register arm64 as we are on amd64 already. s390x is not reliable
run: docker run --privileged --rm tonistiigi/binfmt --install arm64
- name: Download linuxkit
uses: actions/download-artifact@v4
with:
name: linuxkit-amd64-linux
path: bin
- name: Symlink Linuxkit
run: |
chmod ugo+x bin/linuxkit-amd64-linux
sudo ln -s $(pwd)/bin/linuxkit-amd64-linux /usr/local/bin/linuxkit
/usr/local/bin/linuxkit version
- name: Cache Packages
uses: actions/cache@v4
with:
path: ~/.linuxkit/cache/
key: ${{ runner.os }}-linuxkit-${{ github.sha }}
restore-keys: |
${{ runner.os }}-linuxkit-
- name: Build Packages
# Skip s390x as emulation is unreliable
run: |
make OPTIONS="-v 2 --skip-platforms linux/s390x" -C pkg build
- name: Build Test Packages
# ensures that the test packages are in linuxkit cache when we need them for tests later
# Skip s390x as emulation is unreliable
run: |
make OPTIONS="-v 2 --skip-platforms linux/s390x" -C test/pkg build
- name: Check Kernel Dependencies up to date
# checks that any kernel dependencies are up to date.
# if they are, then running `make update-kernel-yamls` will not change anything
run: |
echo "checking git diff before running make update-kernel-yamls"
git diff --exit-code
echo "running make update-kernel-yamls"
make -C kernel update-kernel-yamls
echo "checking git diff again after running make update-kernel-yamls; should be no changes"
git diff --exit-code
- name: Build Kernels
# ensures that the kernel packages are in linuxkit cache when we need them for tests later
# no need for excluding s390x, as each build.yml in the kernel explicitly lists archs
run: |
make OPTIONS="-v 2" -C kernel build
- name: list cache contents
run: |
linuxkit cache ls
test_packages:
name: Packages Tests
needs: [ build_packages, build ]
runs-on: ubuntu-latest
strategy:
matrix:
shard: [1/10,2/10,3/10,4/10,5/10,6/10,7/10,8/10,9/10,10/10]
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Install Pre-Requisites
run: |
export DEBIAN_FRONTEND=noninteractive
sudo apt-get update
sudo apt-get install -qy qemu-utils qemu-system-x86 expect
- name: Restore RTF From Cache
id: cache-rtf
uses: actions/cache@v4
with:
path: bin
key: rtf-${{hashFiles('Makefile')}}
- name: Build RTF
if: steps.cache-rtf.outputs.cache-hit != 'true'
run: make bin/rtf
- name: Symlink RTF
run: |
sudo ln -s $(pwd)/bin/rtf /usr/local/bin/rtf
- name: Download linuxkit
uses: actions/download-artifact@v4
with:
name: linuxkit-amd64-linux
path: bin
- name: Symlink Linuxkit
run: |
chmod ugo+x bin/linuxkit-amd64-linux
sudo ln -s $(pwd)/bin/linuxkit-amd64-linux /usr/local/bin/linuxkit
/usr/local/bin/linuxkit version
- name: Restore Package Cache
uses: actions/cache@v4
with:
path: ~/.linuxkit/cache/
key: ${{ runner.os }}-linuxkit-${{ github.sha }}
restore-keys: |
${{ runner.os }}-linuxkit-
- name: list cache contents
run: |
linuxkit cache ls
- name: Run Tests
run: make test TEST_SUITE=linuxkit.packages TEST_SHARD=${{ matrix.shard }}
test_kernel:
name: Kernel Tests
needs: [ build_packages, build ]
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Install Pre-Requisites
run: |
export DEBIAN_FRONTEND=noninteractive
sudo apt-get update
sudo apt-get install -qy qemu-utils qemu-system-x86 expect
- name: Restore RTF From Cache
id: cache-rtf
uses: actions/cache@v4
with:
path: bin
key: rtf-${{hashFiles('Makefile')}}
- name: Build RTF
if: steps.cache-rtf.outputs.cache-hit != 'true'
run: make bin/rtf
- name: Symlink RTF
run: |
sudo ln -s $(pwd)/bin/rtf /usr/local/bin/rtf
- name: Download linuxkit
uses: actions/download-artifact@v4
with:
name: linuxkit-amd64-linux
path: bin
- name: Symlink Linuxkit
run: |
chmod ugo+x bin/linuxkit-amd64-linux
sudo ln -s $(pwd)/bin/linuxkit-amd64-linux /usr/local/bin/linuxkit
/usr/local/bin/linuxkit version
- name: Restore Package Cache
uses: actions/cache@v4
with:
path: ~/.linuxkit/cache/
key: ${{ runner.os }}-linuxkit-${{ github.sha }}
restore-keys: |
${{ runner.os }}-linuxkit-
- name: list cache contents
run: |
linuxkit cache ls
- name: Run Tests
run: make test TEST_SUITE=linuxkit.kernel
test_linuxkit:
name: LinuxKit Build Tests
needs: [ build_packages, build ]
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Install Pre-Requisites
run: |
export DEBIAN_FRONTEND=noninteractive
sudo apt-get update
sudo apt-get install -qy qemu-utils qemu-system-x86 expect
- name: Restore RTF From Cache
id: cache-rtf
uses: actions/cache@v4
with:
path: bin
key: rtf-${{hashFiles('Makefile')}}
- name: Restore Package Cache
uses: actions/cache@v4
with:
path: ~/.linuxkit/cache/
key: ${{ runner.os }}-linuxkit-${{ github.sha }}
restore-keys: |
${{ runner.os }}-linuxkit-
- name: Build RTF
if: steps.cache-rtf.outputs.cache-hit != 'true'
run: make bin/rtf
- name: Symlink RTF
run: |
sudo ln -s $(pwd)/bin/rtf /usr/local/bin/rtf
- name: Download linuxkit
uses: actions/download-artifact@v4
with:
name: linuxkit-amd64-linux
path: bin
- name: Symlink Linuxkit
run: |
chmod ugo+x bin/linuxkit-amd64-linux
sudo ln -s $(pwd)/bin/linuxkit-amd64-linux /usr/local/bin/linuxkit
/usr/local/bin/linuxkit version
- name: list cache contents
run: |
linuxkit cache ls
- name: Run Tests
run: make test TEST_SUITE=linuxkit.build
test_platforms:
name: Platform Tests
needs: [ build_packages, build ]
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Install Pre-Requisites
run: |
export DEBIAN_FRONTEND=noninteractive
sudo apt-get update
sudo apt-get install -qy qemu-utils qemu-system-x86 expect
- name: Restore RTF From Cache
id: cache-rtf
uses: actions/cache@v4
with:
path: bin
key: rtf-${{hashFiles('Makefile')}}
- name: Build RTF
if: steps.cache-rtf.outputs.cache-hit != 'true'
run: make bin/rtf
- name: Symlink RTF
run: |
sudo ln -s $(pwd)/bin/rtf /usr/local/bin/rtf
- name: Download linuxkit
uses: actions/download-artifact@v4
with:
name: linuxkit-amd64-linux
path: bin
- name: Symlink Linuxkit
run: |
chmod ugo+x bin/linuxkit-amd64-linux
sudo ln -s $(pwd)/bin/linuxkit-amd64-linux /usr/local/bin/linuxkit
/usr/local/bin/linuxkit version
- name: Restore Package Cache
uses: actions/cache@v4
with:
path: ~/.linuxkit/cache/
key: ${{ runner.os }}-linuxkit-${{ github.sha }}
restore-keys: |
${{ runner.os }}-linuxkit-
- name: list cache contents
run: |
linuxkit cache ls
- name: Run Tests
run: make test TEST_SUITE=linuxkit.platforms
test_security:
name: Security Tests
needs: [ build_packages, build ]
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Install Pre-Requisites
run: |
export DEBIAN_FRONTEND=noninteractive
sudo apt-get update
sudo apt-get install -qy qemu-utils qemu-system-x86 expect
- name: Restore RTF From Cache
id: cache-rtf
uses: actions/cache@v4
with:
path: bin
key: rtf-${{hashFiles('Makefile')}}
- name: Build RTF
if: steps.cache-rtf.outputs.cache-hit != 'true'
run: make bin/rtf
- name: Symlink RTF
run: |
sudo ln -s $(pwd)/bin/rtf /usr/local/bin/rtf
- name: Download linuxkit
uses: actions/download-artifact@v4
with:
name: linuxkit-amd64-linux
path: bin
- name: Symlink Linuxkit
run: |
chmod ugo+x bin/linuxkit-amd64-linux
sudo ln -s $(pwd)/bin/linuxkit-amd64-linux /usr/local/bin/linuxkit
/usr/local/bin/linuxkit version
- name: Restore Package Cache
uses: actions/cache@v4
with:
path: ~/.linuxkit/cache/
key: ${{ runner.os }}-linuxkit-${{ github.sha }}
restore-keys: |
${{ runner.os }}-linuxkit-
- name: list cache contents
run: |
linuxkit cache ls
- name: Run Tests
run: make test TEST_SUITE=linuxkit.security

38
.github/workflows/package_release.yml vendored Normal file
View File

@@ -0,0 +1,38 @@
name: Release Tagged Packages
on:
create:
jobs:
release:
name: Release packages
if: github.ref_type == 'tag' && startsWith(github.ref, 'refs/tags/pkg-v')
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.22
uses: actions/setup-go@v5
with:
go-version: 1.22.3
id: go
- name: Check out code
uses: actions/checkout@v4
- name: Ensure bin/ directory
run: mkdir -p bin
- name: Install linuxkit
run: |
go -C ./src/cmd/linuxkit build -o $(pwd)/bin/linuxkit
sudo mv bin/linuxkit /usr/local/bin/
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Publish Packages as Release
# this should not build anything, as they all should be built already
# however, it can fail if we push the tag before the merge-to-master build is complete, since that may publish
# so *always* wait for any merge-to-master to complete before publishing pkg-v* tags
run: |
RELEASE_TAG=${GITHUB_REF#refs/tags/pkg-}
echo "RELEASE_TAG=${RELEASE_TAG}"
[ -n "${RELEASE_TAG}" ] || { echo "Not a tag"; exit 1; }
make OPTIONS="--skip-platforms linux/s390x" -C pkg push PUSHOPTIONS="--nobuild --release ${RELEASE_TAG}"

74
.github/workflows/publish.yaml vendored Normal file
View File

@@ -0,0 +1,74 @@
# publish changes that are merged to master
name: Packages Push
on:
workflow_run:
workflows: [LinuxKit CI]
types: [completed]
branches: [master, main]
jobs:
packages:
env:
linuxkit_file: linuxkit-amd64-linux
name: Publish Changed Packages
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Ensure bin/ directory
run: mkdir -p bin
- name: Download linuxkit
uses: actions/github-script@v7
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
var artifacts = await github.rest.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: ${{github.event.workflow_run.id }},
});
var matchArtifact = artifacts.data.artifacts.filter((artifact) => {
return artifact.name == "${{ env.linuxkit_file }}"
})[0];
var download = await github.rest.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: matchArtifact.id,
archive_format: 'zip',
});
var fs = require('fs');
fs.writeFileSync('${{github.workspace}}/bin/${{ env.linuxkit_file }}.zip', Buffer.from(download.data));
- name: unzip linuxkit
run: cd bin && unzip ${{ env.linuxkit_file }}.zip
- name: Symlink Linuxkit
run: |
chmod ugo+x bin/${{ env.linuxkit_file }}
sudo ln -s $(pwd)/bin/${{ env.linuxkit_file }} /usr/local/bin/linuxkit
/usr/local/bin/linuxkit version
- name: Restore Package Cache
uses: actions/cache@v4
with:
path: ~/.linuxkit/cache/
key: ${{ runner.os }}-linuxkit-${{ github.sha }}
restore-keys: |
${{ runner.os }}-linuxkit-
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Publish Packages
# this should only push changed ones:
# - unchanged: already in the registry
# - changed: already built and cached, so only will push
# Skip s390x as emulation is unreliable
run: |
make OPTIONS="--skip-platforms linux/s390x" -C pkg push PUSHOPTIONS="--nobuild"
- name: Publish Kernels
# this should only push changed ones:
# - unchanged: already in the registry
# - changed: already built and cached, so only will push
# No need to skip s390x, since kernel build.yml files all have explicit archs
run: |
make -C kernel push

97
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,97 @@
name: Release Tagged Linuxkit
on:
create:
jobs:
build-all:
name: Build all targets expect macOS
if: github.ref_type == 'tag' && startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.122
uses: actions/setup-go@v5
with:
go-version: 1.22.3
id: go
- name: Check out code
uses: actions/checkout@v4
- name: Set path
run: echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
env:
GOPATH: ${{runner.workspace}}
- name: Build
run: |
make build-targets-linux build-targets-windows
env:
GOPATH: ${{runner.workspace}}
- uses: actions/upload-artifact@v4
with:
name: release-targets-except-cgo
path: bin/
# separate macos build because macos needs CGO, and it is very hard to cross-compile that
build-macos:
name: Build macOS target
if: github.ref_type == 'tag' && startsWith(github.ref, 'refs/tags/v')
runs-on: macos-latest
steps:
- name: Set up Go 1.122
uses: actions/setup-go@v5
with:
go-version: 1.22.3
id: go
- name: Check out code
uses: actions/checkout@v4
- name: Set path
run: echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
env:
GOPATH: ${{runner.workspace}}
- name: Build
run: |
make build-targets-macos
env:
GOPATH: ${{runner.workspace}}
- uses: actions/upload-artifact@v4
with:
name: release-targets-macos
path: bin/
release-artifacts:
needs: [build-all, build-macos]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: release-targets-except-cgo
path: bintmp/release-targets-except-cgo
- uses: actions/download-artifact@v4
with:
name: release-targets-macos
path: bintmp/release-targets-macos
- name: Combine Artifacts
run: |
mkdir -p bin/
cp bintmp/*/* bin/
- name: Checksum Artifacts
run: |
make checksum-targets
- name: GitHub Release
uses: softprops/action-gh-release@1e07f4398721186383de40550babbdf2b84acfc5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
draft: true
files: bin/*
generate_release_notes: true

1
.gitignore vendored
View File

@@ -19,3 +19,4 @@ Dockerfile.media
*-cmdline
*-state
artifacts/*
tools/alpine/iid

View File

@@ -1,5 +1,3 @@
# Generate AUTHORS: scripts/generate-authors.sh
# Tip for finding duplicates (besides scanning the output of AUTHORS for name
# duplicates that aren't also email duplicates): scan the output of:
# git log --format='%aE - %aN' | sort -uf
@@ -41,7 +39,8 @@ Magnus Skjegstad <magnus.skjegstad@docker.com> <magnus@skjegstad.com>
Marten Cassel <marten.cassel@gmail.com> <mcpop28@hotmail.com>
Mindy Preston <mindy.preston@docker.com> <meetup@yomimono.org>
MinJae Kwon <mingrammer@gmail.com>
Nathan Dautenhahn <ndd@seas.upenn.edu> <ndd@cis.upenn.edu>
Nathan Dautenhahn <ndd@rice.edu> <ndd@seas.upenn.edu>
Nathan Dautenhahn <ndd@rice.edu> <ndd@cis.upenn.edu>
Nathan LeClaire <nathan.leclaire@docker.com> <nathan.leclaire@gmail.com>
Nathan LeClaire <nathan.leclaire@docker.com> <nathanleclaire@gmail.com>
Niclas Mietz <niclas@mietz.io>

View File

@@ -16,4 +16,4 @@ _This list is currently under construction. Please add your use cases to this wi
**_[dm-linuxkit](https://github.com/dotmesh-io/dm-linuxkit)_** A dotmesh controller for LinuxKit persistent storage management.
**_[Zenbuild](https://github.com/zededa/zenbuild)_** Linuxkit based IoT Edge Operating System (Zenix)
**_[Linux Foundation Edge EVE](https://github.com/lf-edge/eve)_** Edge Virtualization Engine Operating System

26
AUTHORS
View File

@@ -6,22 +6,28 @@ Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
Alan Raison <alanraison@users.noreply.github.com>
Alex Ellis <alexellis2@gmail.com>
Alex Johnson <hello@alex-johnson.net>
Alex Szakaly <alex.szakaly@gmail.com>
Alexander Slesarev <alex.slesarev@nudatasecurity.com>
Alice Frosi <alice@linux.vnet.ibm.com>
Amir Chaudhry <amir.chaudhry@docker.com>
Anil Madhavapeddy <anil.madhavapeddy@docker.com>
Arthur Lutz <arthur.lutz@logilab.fr>
Asbjorn Enge <asbjorn@hanafjedle.net>
Avi Deitcher <avi@deitcher.net>
Aymen EL AMRI <aymen@eralabs.io>
Ben Allen <bsallen@alcf.anl.gov>
Bill Kerr <bill@generalbill.com>
Björn Ingeson <bjorn.ingeson@gmail.com>
Brice Figureau <brice-puppet@daysofwonder.com>
Carlton-Semple <carlton.semple@ibm.com>
Chanwit Kaewkasi <chanwit@gmail.com>
Christian Wuerdig <christian.wuerdig@gmail.com>
Clovis Durand <cd.clovel19@gmail.com>
Craig Ingram <cingram@heroku.com>
Damiano Donati <damiano.donati@gmail.com>
Dan Finneran <dan@thebsdbox.co.uk>
Daniel Caminada <daniel.caminada@ergon.ch>
Daniel Dean <daniel@razorsecure.com>
Daniel Hiltgen <daniel.hiltgen@docker.com>
Daniel Nephin <dnephin@gmail.com>
Dave Freitag <dcfreita@us.ibm.com>
@@ -33,18 +39,24 @@ David Scott <dave.scott@docker.com>
David Sheets <david.sheets@docker.com>
Dennis Chen <dennis.chen@arm.com>
Dieter Reuter <dieter.reuter@me.com>
Dominic White <singe-github@singe.za.net>
duraki <duraki@linuxmail.org>
Edward Vielmetti <edward.vielmetti@gmail.com>
Emily Casey <ecasey@pivotal.io>
Eric Briand <eric.briand@gmail.com>
Evan Hazlett <ejhazlett@gmail.com>
Federico Pellegatta <12744504+federico-pellegatta@users.noreply.github.com>
French Ben <frenchben@docker.com>
Frédéric Dalleau <frederic.dalleau@docker.com>
functor <meehow@gmail.com>
Gabriel Chabot <gabriel.chabot@qarnot-computing.com>
Garth Bushell <garth.bushell@oracle.com>
George Papanikolaou <g3orge.app@gmail.com>
Gerben Geijteman <gerben@isset.nl>
Gianluca Arbezzano <gianarb92@gmail.com>
Guillaume Rose <guillaume.rose@docker.com>
Hans van den Bogert <hansbogert@gmail.com>
hyperized <gerben@hyperized.net>
Ian Campbell <ian.campbell@docker.com>
Ilya Dmitrichenko <errordeveloper@gmail.com>
Isaac Rodman <isaac@eyz.us>
@@ -63,12 +75,15 @@ Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
Justin Barrick <jbarrick@cloudflare.com>
Justin Cormack <justin.cormack@docker.com>
Justin Ko <justin.ko@oracle.com>
Justin Terry (VM) <juterry@microsoft.com>
Karol Woźniak <wozniakk@gmail.com>
Ken Cochrane <ken.cochrane@docker.com>
Krister Johansen <krister.johansen@oracle.com>
Krisztian Horvath <keyki.kk@gmail.com>
Kunal Kushwaha <kushwaha_kunal_v7@lab.ntt.co.jp>
Liqdfire <liqdfire@gmail.com>
Lorenzo Fontana <lo@linux.com>
Loïc Pottier <lpottier@isi.edu>
Luke Hodkinson <furious.luke@gmail.com>
Madhu Venugopal <madhu@docker.com>
Magnus Skjegstad <magnus.skjegstad@docker.com>
@@ -81,12 +96,13 @@ Mathieu Pasquet <mathieu.pasquet@alterway.fr>
Matt Bajor <matt.bajor@workday.com>
Matt Bentley <matt.bentley@docker.com>
Matt Johnson <matjohn2@cisco.com>
Michael Aldridge <aldridge.mac@gmail.com>
Michel Courtine <michel.courtine@docker.com>
Mickaël Salaün <mic@digikod.net>
Mindy Preston <mindy.preston@docker.com>
MinJae Kwon <mingrammer@gmail.com>
Natanael Copa <natanael.copa@docker.com>
Nathan Dautenhahn <ndd@seas.upenn.edu>
Nathan Dautenhahn <ndd@rice.edu>
Nathan LeClaire <nathan.leclaire@docker.com>
Nick Jones <nick@dischord.org>
Niclas Mietz <niclas@mietz.io>
@@ -95,10 +111,13 @@ Olaf Bergner <olaf.bergner@gmx.de>
Olaf Flebbe <of@oflebbe.de>
Omar Ramadan <omar.ramadan93@gmail.com>
Patrik Cyvoct <patrik@ptrk.io>
Petr Fedchenkov <giggsoff@gmail.com>
Phil Estes <estesp@linux.vnet.ibm.com>
Pierre Gayvallet <pierre.gayvallet@docker.com>
Pratik Mallya <mallya@us.ibm.com>
Preston Holmes <preston@ptone.com>
Radu Matei <matei.radu94@gmail.com>
Richard Connon <richard@connon.me.uk>
Richard Mortier <mort@cantab.net>
Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
Robb Kistler <robb.kistler@docker.com>
@@ -107,11 +126,15 @@ Rolf Neugebauer <rn@rneugeba.io>
Roman Shaposhnik <rvs@zededa.com>
Rui Lopes <rgl@ruilopes.com>
Ryoga Saito <proelbtn@gmail.com>
Sachi King <nakato@nakato.io>
salman aljammaz <s@aljmz.com>
schrotthaufen <schrotthaufen@invalid.invalid>
Scott Coulton <scott.coulton@puppet.com>
Sebastiaan van Stijn <sebastiaan.vanstijn@docker.com>
sethp <seth.pellegrino@gmail.com>
Simarpreet Singh <simar@linux.com>
Simon Ferquel <simon.ferquel@docker.com>
Simon Fridlund <simon@fridlund.email>
Sotiris Salloumis <sotiris.salloumis@gmail.com>
Steeve Morin <steeve.morin@gmail.com>
Stefan Bourlon <stefan.bourlon@ca.com>
@@ -132,6 +155,7 @@ Tomas Knappek <tomas.knappek@gmail.com>
Tristan Slominski <tristan.slominski@gmail.com>
Tycho Andersen <tycho@docker.com>
Vincent Demeester <Vincent.Demeester@docker.com>
Yoann Ricordel <yoann.ricordel@qarnot-computing.com>
Zachery Hostens <zacheryph@gmail.com>
zimbatm <zimbatm@zimbatm.com>
zlim <zlim.lnx@gmail.com>

View File

@@ -3,6 +3,32 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
## [v0.8] - 2020-05-10
### Added
- Removed dependency on external `notary` and `manifest-tool` binaries for package builds
- Risc-V support for `binfmt`
- Support for GPT partitions
- `metadata` package support for Digital Ocean and Hetzner as well as loading from a file
- Support for `/sys/fs/bpf` in `init`
- Github Actions for CI
### Changed
- `alpine` base updated to 3.11
- `containerd` updated to v1.3.4
- `runc` updated to v1.0.0-rc9
- `binfmt` updated to qemu 4.2
- `node_exporter` updated to v0.18.1
- `cadvisor` updated to v0.36.0
- WireGuard updated to 1.0.20200319
- Improved CDROM support and fixes to GCP and Scaleway providers in the `metadata` package
- Improved creation of `swap` files
- Improved RPI3 build
### Removed
- Containerized `qemu`
- Windows binary from release
## [v0.7] - 2019-04-17
### Added
- Reproducible `linuxkit build` for some output formats

View File

@@ -159,13 +159,24 @@ on disputes for technical matters."
[Org]
[Org."Core maintainers"]
people = [
"dave-tucker",
"deitch",
"djs55",
"ijc",
"justincormack",
"riyazdf",
"rn",
]
[Org.Alumni]
# This list contains maintainers that are no longer active on the project.
# It is thanks to these people that the project has become what it is today.
# Thank you!
people = [
"riyazdf",
]
[people]
# A reference list of all people associated with the project.
@@ -173,11 +184,21 @@ on disputes for technical matters."
# in the people section.
# ADD YOURSELF HERE IN ALPHABETICAL ORDER
[People.dave-tucker]
Name = "Dave Tucker"
Email = "dave@dtucker.co.uk"
Github = "dave-tucker"
[People.deitch]
Name = "Avi Deitcher"
Email = "avi@atomicinc.com"
GitHub = "deitch"
[People.djs55]
Name = "David Scott"
Email = "dave@recoil.org"
Github = "djs55"
[People.ijc]
Name = "Ian Campbell"
Email = "ian.campbell@docker.com"

123
Makefile
View File

@@ -1,18 +1,20 @@
VERSION="v0.7"
GIT_COMMIT=$(shell git rev-list -1 HEAD)
VERSION="v0.8+"
GO_COMPILE=linuxkit/go-compile:8de0e27a38498389e43b3a5b520d943a2b3be5ba
# test suite to run, blank for all
TEST_SUITE ?=
TEST_SHARD ?=
GO_COMPILE=linuxkit/go-compile:985a9db72a7e6941de5e1eb71c2b41b76bf0556f
ifeq ($(OS),Windows_NT)
LINUXKIT?=bin/linuxkit.exe
LINUXKIT?=$(CURDIR)/bin/linuxkit.exe
RTF?=bin/rtf.exe
GOOS?=windows
else
LINUXKIT?=bin/linuxkit
LINUXKIT?=$(CURDIR)/bin/linuxkit
RTF?=bin/rtf
GOOS?=$(shell uname -s | tr '[:upper:]' '[:lower:]')
endif
GOARCH?=amd64
ifneq ($(GOOS),linux)
CROSS+=-e GOOS=$(GOOS)
endif
@@ -20,24 +22,28 @@ ifneq ($(GOARCH),amd64)
CROSS+=-e GOARCH=$(GOARCH)
endif
PREFIX?=/usr/local/
PREFIX?=/usr/local
LOCAL_TARGET?=$(CURDIR)/bin/linuxkit
export VERSION GO_COMPILE GOOS GOARCH LOCAL_TARGET LINUXKIT
.DELETE_ON_ERROR:
.PHONY: default all
default: $(LINUXKIT) $(RTF)
default: linuxkit $(RTF)
all: default
RTF_COMMIT=171155c375706f2616f0b9c96afe2240e15d1de1
RTF_COMMIT=1118e08445438dc37ec62b4c1e216918b3d804d2
RTF_CMD=github.com/linuxkit/rtf/cmd
RTF_VERSION=0.0
$(RTF): tmp_rtf_bin.tar | bin
tar xf $<
tar -C $(dir $(RTF)) -xf $<
rm $<
touch $@
tmp_rtf_bin.tar: Makefile
docker run --rm --log-driver=none -e http_proxy=$(http_proxy) -e https_proxy=$(https_proxy) $(CROSS) $(GO_COMPILE) --clone-path github.com/linuxkit/rtf --clone https://github.com/linuxkit/rtf.git --commit $(RTF_COMMIT) --package github.com/linuxkit/rtf --ldflags "-X $(RTF_CMD).GitCommit=$(RTF_COMMIT) -X $(RTF_CMD).Version=$(RTF_VERSION)" -o $(RTF) > $@
docker run --rm --log-driver=none -e http_proxy=$(http_proxy) -e https_proxy=$(https_proxy) $(CROSS) $(GO_COMPILE) --clone-path github.com/linuxkit/rtf --clone https://github.com/linuxkit/rtf.git --commit $(RTF_COMMIT) --package github.com/linuxkit/rtf --ldflags "-X $(RTF_CMD).GitCommit=$(RTF_COMMIT) -X $(RTF_CMD).Version=$(RTF_VERSION)" -o $(notdir $(RTF)) > $@
# Manifest tool for multi-arch images
MT_COMMIT=bfbd11963b8e0eb5f6e400afaebeaf39820b4e90
@@ -50,63 +56,33 @@ bin/manifest-tool: tmp_mt_bin.tar | bin
tmp_mt_bin.tar: Makefile
docker run --rm --log-driver=none -e http_proxy=$(http_proxy) -e https_proxy=$(https_proxy) $(CROSS) $(GO_COMPILE) --clone-path github.com/estesp/manifest-tool --clone $(MT_REPO) --commit $(MT_COMMIT) --package github.com/estesp/manifest-tool --ldflags "-X main.gitCommit=$(MT_COMMIT)" -o bin/manifest-tool > $@
LINUXKIT_DEPS=$(wildcard src/cmd/linuxkit/*.go) $(wildcard src/cmd/linuxkit/*/*.go) Makefile src/cmd/linuxkit/vendor.conf
$(LINUXKIT): tmp_linuxkit_bin.tar
tar xf $<
rm $<
touch $@
tmp_linuxkit_bin.tar: $(LINUXKIT_DEPS)
tar cf - -C src/cmd/linuxkit . | docker run --rm --net=none --log-driver=none -i $(CROSS) $(GO_COMPILE) --package github.com/linuxkit/linuxkit/src/cmd/linuxkit --ldflags "-X github.com/linuxkit/linuxkit/src/cmd/linuxkit/version.GitCommit=$(GIT_COMMIT) -X github.com/linuxkit/linuxkit/src/cmd/linuxkit/version.Version=$(VERSION)" -o $(LINUXKIT) > $@
.PHONY: linuxkit
linuxkit: bin
make -C ./src/cmd/linuxkit
.PHONY: test-cross
test-cross:
$(MAKE) clean
$(MAKE) -j 3 GOOS=darwin tmp_rtf_bin.tar tmp_mt_bin.tar tmp_linuxkit_bin.tar
$(MAKE) clean
$(MAKE) -j 3 GOOS=windows tmp_rtf_bin.tar tmp_mt_bin.tar tmp_linuxkit_bin.tar
$(MAKE) clean
$(MAKE) -j 3 GOOS=linux tmp_rtf_bin.tar tmp_mt_bin.tar tmp_linuxkit_bin.tar
$(MAKE) clean
make -C ./src/cmd/linuxkit test-cross
LOCAL_LDFLAGS += -X github.com/linuxkit/linuxkit/src/cmd/linuxkit/version.GitCommit=$(GIT_COMMIT) -X github.com/linuxkit/linuxkit/src/cmd/linuxkit/version.Version=$(VERSION)
LOCAL_TARGET ?= $(LINUXKIT)
.PHONY: local local-%
local:
make -C ./src/cmd/linuxkit local
.PHONY: local-check local-build local-test local-static-pie local-static local-dynamic local
local-check: $(LINUXKIT_DEPS)
@echo gofmt... && o=$$(gofmt -s -l $(filter %.go,$(LINUXKIT_DEPS))) && if [ -n "$$o" ] ; then echo $$o ; exit 1 ; fi
@echo govet... && go tool vet -printf=false $(filter %.go,$(LINUXKIT_DEPS))
@echo golint... && set -e ; for i in $(filter %.go,$(LINUXKIT_DEPS)); do golint $$i ; done
@echo ineffassign... && ineffassign $(filter %.go,$(LINUXKIT_DEPS))
local-build: local-static
local-static-pie: $(LINUXKIT_DEPS) | bin
CGO_ENABLED=0 go build -o $(LOCAL_TARGET) --buildmode pie --ldflags "-s -w -extldflags \"-static\" $(LOCAL_LDFLAGS)" github.com/linuxkit/linuxkit/src/cmd/linuxkit
local-static: $(LINUXKIT_DEPS) | bin
CGO_ENABLED=0 go build -o $(LOCAL_TARGET) --ldflags "$(LOCAL_LDFLAGS)" github.com/linuxkit/linuxkit/src/cmd/linuxkit
local-dynamic: $(LINUXKIT_DEPS) | bin
go build -o $(LOCAL_TARGET) --ldflags "$(LOCAL_LDFLAGS)" github.com/linuxkit/linuxkit/src/cmd/linuxkit
local-test: $(LINUXKIT_DEPS)
go test $(shell go list github.com/linuxkit/linuxkit/src/cmd/linuxkit/... | grep -v ^github.com/linuxkit/linuxkit/src/cmd/linuxkit/vendor/)
local: local-check local-build local-test
local-%:
make -C ./src/cmd/linuxkit $@
bin:
mkdir -p $@
install:
cp -R ./bin/* $(PREFIX)/bin
cp -R bin/* $(PREFIX)/bin
sign:
codesign --entitlements linuxkit.entitlements --force -s - $(PREFIX)/bin/linuxkit
.PHONY: test
test:
$(MAKE) -C test
.PHONY: collect-artifacts
collect-artifacts: artifacts/test.img.tar.gz artifacts/test-ltp.img.tar.gz
$(MAKE) -C test TEST_SUITE=$(TEST_SUITE) TEST_SHARD=$(TEST_SHARD)
.PHONY: ci ci-tag ci-pr
ci: test-cross
@@ -130,3 +106,40 @@ ci-pr: test-cross
.PHONY: clean
clean:
rm -rf bin *.log *-kernel *-cmdline *-state *.img *.iso *.gz *.qcow2 *.vhd *.vmx *.vmdk *.tar *.raw
update-package-tags:
ifneq ($(LK_RELEASE),)
$(eval tags := $(shell cd pkg; make show-tag | cut -d ':' -f1))
$(eval image := :$(LK_RELEASE))
else
$(eval tags := $(shell cd pkg; make show-tag))
$(eval image := )
endif
for img in $(tags); do \
./scripts/update-component-sha.sh --image $${img}$(image); \
done
.PHONY: build-targets-all build-targets-linux build-targets-windows build-targets-macos checksum-targets
build-targets-all: build-targets-linux build-targets-windows build-targets-macos
build-targets-linux: bin
$(MAKE) GOOS=linux GOARCH=arm64 LOCAL_TARGET=$(CURDIR)/bin/linuxkit-linux-arm64 local-build
file bin/linuxkit-linux-arm64
$(MAKE) GOOS=linux GOARCH=amd64 LOCAL_TARGET=$(CURDIR)/bin/linuxkit-linux-amd64 local-build
file bin/linuxkit-linux-amd64
$(MAKE) GOOS=linux GOARCH=s390x LOCAL_TARGET=$(CURDIR)/bin/linuxkit-linux-s390x local-build
file bin/linuxkit-linux-s390x
build-targets-windows: bin
$(MAKE) GOOS=windows GOARCH=amd64 LOCAL_TARGET=$(CURDIR)/bin/linuxkit-windows-amd64.exe local-build
file bin/linuxkit-windows-amd64.exe
build-targets-macos: bin
$(MAKE) GOOS=darwin GOARCH=arm64 LOCAL_TARGET=$(CURDIR)/bin/linuxkit-darwin-arm64 local-build
file bin/linuxkit-darwin-arm64
$(MAKE) GOOS=darwin GOARCH=amd64 LOCAL_TARGET=$(CURDIR)/bin/linuxkit-darwin-amd64 local-build
file bin/linuxkit-darwin-amd64
checksum-targets: bin
cd bin && openssl sha256 -r linuxkit-* | tr -d '*' > checksums.txt

View File

@@ -13,7 +13,7 @@ LinuxKit, a toolkit for building custom minimal, immutable Linux distributions.
- Designed to create [reproducible builds](./docs/reproducible-builds.md) [WIP]
- Designed for building and running clustered applications, including but not limited to container orchestration such as Docker or Kubernetes
- Designed from the experience of building Docker Editions, but redesigned as a general-purpose toolkit
- Designed to be managed by external tooling, such as [Infrakit](https://github.com/docker/infrakit) or similar tools
- Designed to be managed by external tooling, such as [Infrakit](https://github.com/docker/infrakit) (renamed to [deploykit](https://github.com/docker/deploykit) which has been archived in 2019) or similar tools
- Includes a set of longer-term collaborative projects in various stages of development to innovate on kernel and userspace changes, particularly around security
LinuxKit currently supports the `x86_64`, `arm64`, and `s390x` architectures on a variety of platforms, both as virtual machines and baremetal (see [below](#booting-and-testing) for details).
@@ -36,7 +36,7 @@ LinuxKit uses the `linuxkit` tool for building, pushing and running VM images.
Simple build instructions: use `make` to build. This will build the tool in `bin/`. Add this
to your `PATH` or copy it to somewhere in your `PATH` eg `sudo cp bin/* /usr/local/bin/`. Or you can use `sudo make install`.
If you already have `go` installed you can use `go get -u github.com/linuxkit/linuxkit/src/cmd/linuxkit` to install the `linuxkit` tool.
If you already have `go` installed you can use `go install github.com/linuxkit/linuxkit/src/cmd/linuxkit@latest` to install the `linuxkit` tool.
On MacOS there is a `brew tap` available. Detailed instructions are at [linuxkit/homebrew-linuxkit](https://github.com/linuxkit/homebrew-linuxkit),
the short summary is
@@ -45,11 +45,17 @@ brew tap linuxkit/linuxkit
brew install --HEAD linuxkit
```
Build requirements from source:
Build requirements from source using a container
- GNU `make`
- Docker
- optionally `qemu`
For a local build using `make local`
- `go`
- `make`
- `go get -u golang.org/x/lint/golint`
- `go get -u github.com/gordonklaus/ineffassign`
### Building images
Once you have built the tool, use
@@ -57,8 +63,8 @@ Once you have built the tool, use
```
linuxkit build linuxkit.yml
```
to build the example configuration. You can also specify different output formats, eg `linuxkit build -format raw-bios linuxkit.yml` to
output a raw BIOS bootable disk image, or `linuxkit build -format iso-efi linuxkit.yml` to output an EFI bootable ISO image. See `linuxkit build -help` for more information.
to build the example configuration. You can also specify different output formats, eg `linuxkit build --format raw-bios linuxkit.yml` to
output a raw BIOS bootable disk image, or `linuxkit build --format iso-efi linuxkit.yml` to output an EFI bootable ISO image. See `linuxkit build -help` for more information.
### Booting and Testing
@@ -69,6 +75,7 @@ for example VMWare. See `linuxkit run --help`.
Currently supported platforms are:
- Local hypervisors
- [Virtualization.Framework (macOS)](docs/platform-virtualization-framework.md) `[x86_64, arm64]`
- [HyperKit (macOS)](docs/platform-hyperkit.md) `[x86_64]`
- [Hyper-V (Windows)](docs/platform-hyperv.md) `[x86_64]`
- [qemu (macOS, Linux, Windows)](docs/platform-qemu.md) `[x86_64, arm64, s390x]`
@@ -78,8 +85,9 @@ Currently supported platforms are:
- [Google Cloud](docs/platform-gcp.md) `[x86_64]`
- [Microsoft Azure](docs/platform-azure.md) `[x86_64]`
- [OpenStack](docs/platform-openstack.md) `[x86_64]`
- [Scaleway](docs/platform-scaleway.md) `[x86_64]`
- Baremetal:
- [packet.net](docs/platform-packet.md) `[x86_64, arm64]`
- [deploy.equinix.com](docs/platform-equinixmetal.md) `[x86_64, arm64]`
- [Raspberry Pi Model 3b](docs/platform-rpi3.md) `[arm64]`

View File

@@ -0,0 +1,10 @@
# open-vm-tools
This should allow end-users to gracefully reboot or shutdown Kubernetes nodes (incuding control planes) running on vSphere Hypervisor.
Furthermore, it is also mandatory to have `open-vm-tools` installed on your Kubernetes nodes to use vSphere Cloud Provider (i.e. determinte virtual machine's FQDN).
## Remarks:
- `spec.template.spec.hostNetwork: true`: correctly report node IP address; required
- `spec.template.spec.hostPID: true`: send the right signal to node, instead of killing the container itself; required
- `spec.template.spec.priorityClassName: system-cluster-critical`: critical to a fully functional cluster
- `spec.template.spec.securityContext.privileged: true`: gain more privileges than its parent process; required

View File

@@ -0,0 +1,45 @@
apiVersion: apps/v1
kind: DaemonSet
metadata:
labels:
app: open-vm-tools
name: open-vm-tools
namespace: kube-system
spec:
selector:
matchLabels:
app: open-vm-tools
template:
metadata:
labels:
app: open-vm-tools
spec:
hostNetwork: true
hostPID: true
priorityClassName: system-cluster-critical
tolerations:
- key: node.cloudprovider.kubernetes.io/uninitialized
value: "true"
effect: NoSchedule
- key: node-role.kubernetes.io/master
- key: node-role.kubernetes.io/master
operator: Exists
effect: NoSchedule
- key: node-role.kubernetes.io/control-plane
- key: node-role.kubernetes.io/control-plane
operator: Exists
effect: NoSchedule
containers:
- image: linuxkit/open-vm-tools:8a320f7453711f0544f4b03558aaf0b80c7c23f1
name: open-vm-tools
resources:
requests:
memory: "5Mi"
cpu: "100m"
limits:
memory: "25Mi"
cpu: "500m"
securityContext:
privileged: true
dnsPolicy: ClusterFirst
restartPolicy: Always

236
docs/alpine-base-update.md Normal file
View File

@@ -0,0 +1,236 @@
# Updating Alpine Base
This document describes the steps to update the `linuxkit/alpine` image.
This image is at the base of all other linuxkit images.
It is built out of the directory `tools/alpine/`.
While you do not need to update every downstream image _immediately_ when you update
this image, you do need to be aware that changes to this image will affect the
downstream images when it is next adopted. Those downstream images should be updated
as soon as possible after updating `linuxkit/alpine`.
When you make a linuxkit release, you _must_ update all of the downstream images.
See [releasing.md](./releasing.md) for the release process.
## Pre-requisites
Updating `linuxkit/alpine` can be done by any maintainer. Maintainers need to have
access to build machines for all architectures support by LinuxKit.
## Process
At a high-level, we are going to do the following:
1. Preparatory steps
1. Create a new branch
1. Make our desired changes to `tools/alpine` and commit them
1. Build and push out our alpine changes, and commit the `versions` files
1. Update all affected downstream changes and commit them: `tools/`, `test/pkg`, `pkg`, `test/`, `examples/`
1. Push out all affected downstream changes: `tools/`, `test/pkg`, `pkg`, `test/`, `examples/`
For each of the affected downstream changes, we could update and then push, then move to the next. However,
since the push out can be slow and require retries, we try to make all of the changes first, and then push them out.
### Preparation
As a starting point you have to be on the update to date master branch
and be in the root directory of your local git clone. You should also
have the same setup on all build machines used.
To make the steps below cut-and-pastable, define the following
environment variables:
```sh
LK_ROOT=$(pwd)
LK_REMOTE=origin # or whatever your personal remote is
LK_BRANCH=alpine-update # or whatever the name of the branch on which you are working is
```
Note that if you are cutting a release, the `LK_BRANCH` may have a release-type name, e.g. `rel_v0.4`.
Make sure that you have the latest version of the `linuxkit`
utility in the path. Alternatively, you may wish to compile the latest version from
master.
### Create a new branch
On one of the build machines (preferably the `x86_64` machine), create
the branch:
```sh
git checkout -b $LK_BRANCH
```
### Update `linuxkit/alpine`
You must perform the arch-specific image builds, pushes and updates on each
architecture first - these can be done in parallel, if you choose. When done,
you then copy the updated `versions.<arch>` to one place, commit them, and
push the manifest.
#### Make alpine changes
Make any changes in `tools/alpine` that you desire, then commit them.
In the below, change the commit message to something meaningful to the change you are making.
```sh
cd tools/alpine
# make changes
git commit -s -a -m "Update linuxkit/alpine"
git push origin $LK_BRANCH
```
#### Build and Push Alpine Per-Architecture
On each supported platform, build and update `linuxkit/alpine`, which will update the `versions.<arch>`
file.:
```sh
git fetch
git checkout $LK_BRANCH
cd $LK_ROOT/tools/alpine
make push
```
Repeat on each platform.
#### Commit Changed Versions Files
When all of the platforms are done, copy the changed `versions.<arch>` from each platform to one place, commit and push.
In the below, replace `linuxkit-arch` with each build machine's name:
```sh
# one of these will not be necessary, as you will likely be executing it on one of these machines
for arch in x86_64 aarch64 riscv64; do
scp linuxkit-$arch:$LK_ROOT/tools/alpine/versions.$arch $LK_ROOT/tools/alpine/versions.$arch
done
git commit -a -s -m "tools/alpine: Update to latest"
git push $LK_REMOTE $LK_BRANCH
```
#### Update and Push Multi-Arch Index
Push out the multi-arch index:
```sh
make push-manifest
```
Stash the tag of the alpine base image in an environment variable:
```sh
LK_ALPINE=$(make show-tag)
```
### Update affected downstream packages
This section describes all of the steps. Below follows a straight copyable list of steps to take,
following which is an explanation of each one.
```sh
# Update tools packages
cd $LK_ROOT/tools
$LK_ROOT/scripts/update-component-sha.sh --image $LK_ALPINE
git checkout mkimage-rpi3/Dockerfile
git commit -a -s -m "tools: Update to the latest linuxkit/alpine"
# Update tools dependencies
cd $LK_ROOT
for img in $(cd tools; make show-tag); do
$LK_ROOT/scripts/update-component-sha.sh --image $img
done
git commit -a -s -m "Update use of tools to latest"
# Update test packages
cd $LK_ROOT/test/pkg
$LK_ROOT/scripts/update-component-sha.sh --image $LK_ALPINE
git commit -a -s -m "tests: Update packages to the latest linuxkit/alpine"
# Update test packages dependencies
cd $LK_ROOT
for img in $(cd test/pkg; make show-tag); do
$LK_ROOT/scripts/update-component-sha.sh --image $img
done
git commit -a -s -m "Update use of test packages to latest"
# Update test cases to latest linuxkit/alpine
cd $LK_ROOT/test/cases
$LK_ROOT/scripts/update-component-sha.sh --image $LK_ALPINE
git commit -a -s -m "tests: Update tests cases to the latest linuxkit/alpine"
# Update packages to latest linuxkit/alpine
cd $LK_ROOT/pkg
$LK_ROOT/scripts/update-component-sha.sh --image $LK_ALPINE
git commit -a -s -m "pkgs: Update packages to the latest linuxkit/alpine"
# update package tags - may want to include the release in it if set
cd $LK_ROOT
make update-package-tags
MSG=""
[ -n "$LK_RELEASE" ] && MSG="to $LK_RELEASE"
git commit -a -s -m "Update package tags $MSG"
git push $LK_REMOTE $LK_BRANCH
```
#### Update tools packages
On your primary build machine, update the other tools packages.
Note, the `git checkout` reverts the changes made by
`update-component-sha.sh` to files which are accidentally updated.
Important is the `git checkout` of some sensitive packages that only can be built with
specific older versions of upstream packages:
* `mkimage-rpi3`
Only update those if you know what you are doing with them.
Then we update any dependencies of these tools.
#### Update test packages
Next, we update the test packages to the updated alpine base.
Next, we update the use of test packages to latest.
Some tests also use `linuxkit/alpine`, so we update them as well.
### Update packages
Next, we update the LinuxKit packages. This is really the core of the
release. The other steps above are just there to ensure consistency
across packages.
#### External Tools
Most of the packages are build from `linuxkit/alpine` and source code
in the `linuxkit` repository, but some packages wrap external
tools. When updating all packages, and especially during the time of a release,
is a good opportunity to check if there have been updates. Specifically:
- `pkg/cadvisor`: Check for [new releases](https://github.com/google/cadvisor/releases).
- `pkg/firmware` and `pkg/firmware-all`: Use latest commit from [here](https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git).
- `pkg/node_exporter`: Check for [new releases](https://github.com/prometheus/node_exporter/releases).
- Check [docker hub](https://hub.docker.com/r/library/docker/tags/) for the latest `dind` tags. and update `examples/docker.yml`, `examples/docker-for-mac.yml`, `examples/cadvisor.yml`, and `test/cases/030_security/000_docker-bench/test.yml` if necessary.
This is at your discretion.
### Build and push affected downstream packages
<ul>Note</ul>: All of the `make push` and `make forcepush` in this section use `linuxkit pkg push`, which will build for all architectures and push
the images out. See [Build Platforms](./packages.md#Build_Platforms).
```sh
# build and push out the tools packages
cd $LK_ROOT/tools
make forcepush
# Build and push out test packages
cd $LK_ROOT/test/pkg
make push
# build and push out the packages
cd $LK_ROOT/pkg
make push
```

19
docs/cmdline.md Normal file
View File

@@ -0,0 +1,19 @@
# Kernel command-line options
The kernel command-line is a string of text that the kernel parses as it is starting up. It is passed by the boot loader
to the kernel and specifies parameters that the kernel uses to configure the system. The command-line is a list of command-line
options separated by spaces. The options are parsed by the kernel and can be used to enable or disable certain features.
LinuxKit passes all command-line options to the kernel, which uses them in the usual way.
There are several options that can be used to control the behaviour of linuxkit itself, or specifically packages
within linuxkit. Unless standard Linux options exist, these all are prefaced with `linuxkit.`.
| Option | Description |
|---|---|
| `linuxkit.unified_cgroup_hierarchy=0` | Start up cgroups v1. If not present or set to 1, default to cgroups v1. |
| `linuxkit.runc_debug=1` | Start runc for `onboot` and `onshutdown` containers to run with `--debug`, and add extra logging messages for each stage of starting those containers. If not present or set to 0, default to usual mode. |
| `linuxkit.runc_console=1` | Send logs for runc for `onboot` and `onshutdown` containers, as well as the output of the containers themselves, to the console, instead of the normal output to logfiles. If not present or set to 0, default to usual mode. |
It often is useful to combine both of the `linuxkit.runc_debug` and `linuxkit.runc_console` options to get the most
information about what is happening with `onboot` containers.

81
docs/developer-setup.md Normal file
View File

@@ -0,0 +1,81 @@
# Build Platforms
This document describes how to install and maintain a LinuxKit development platform. It will grow over time.
The LinuxKit team also maintains several Linux-based build platforms. These are donated by Equinix Metal (arm64) and IBM (s390x).
## Platform-Specific Installation
### arm64 and amd64
The `amd64` and `arm64` platforms are fully supported by most OS vendors and Docker. Just upgrade to the latest OS and install the latest Docker using the
packaging tools. As of this writing, that is:
* Ubuntu/Debian with `apt`
* RHEL/CentOS/Fedora with `yum`. For any of these, use the CentOS 7/8 packages as released by Docker.
Docker does not recommend that you using the packages released by the OS vendors, as those tend to be out of date. Follow the instructions
[from Docker](https://docs.docker.com/engine/install/).
### s390x
The s390x has modern versions of most OSes, including RHEL and Ubuntu, but does not have recent versions of docker, neither as
`apt` packages for Ubuntu, nor as static downloads. In any case, these static downloads mostly are replicas.
This section describes how to install modern versions of Docker on these platforms.
#### RHEL
RHEL 7 on s390x only has releases from Docker. Follow the instructions from Docker to install. The rpm packages for RHEL are available at
https://download.docker.com/linux/rhel/
#### Ubuntu
Docker does not release packages for Ubuntu on s390x. The most recent release was for Ubuntu 18.04 Bionic, with Docker version 18.06.3.
This is quite old, and does not support modern capabilities, e.g. buildkit.
To install a more modern version:
1. Upgrade any dependent apt packages `apt upgrade`
1. Upgrade the operating system to your desired version `do-release-upgrade -d`. Note that you can set which versions to suggest via changing `/etc/update-manager/release-upgrades`
1. Download the necessary rpms (yes, rpms) from the Docker RHEL7 site. These are available [here](https://download.docker.com/linux/rhel/7/s390x/stable/Packages/). You need the following packages:
* `containerd.io-*.rpm`
* `docker-ce-*.rpm`
* `docker-ce-cli-*.rpm`
1. Install alien: `apt install alien`
1. Convert each package to a dpkg `alien --scripts <source-rpm-file.rpm>`
1. Install each package with `dpkg -i <source-dpkg>.dpkg`. Dependency management is not great, so we recommend installing them in order:
1. `containerd.io`
1. `docker-ce`
1. `docker-ce-cli`
1. Install devmapper `apt install libdevmapper-dev`
1. Check the missing version of libdevmapper, if any, with `ldd /usr/bin/dockerd`. In our example, it needs `libdevmapper.so.1.02`
1. Ensure that the library can be found where needed via `cd /lib/s390x-linux-gnu/ && ln -s $(ls -1 libdevmapper.so.*) libdevmapper.so.1.02`
1. Check again that dockerd is ok: `ldd /usr/bin/dockerd`
1. Start docker `system ctl restart docker`
1. Check that everything works:
* `docker version`
* `docker run --rm hello-world`
## Common Notes
On all platforms, if you want to run tests, you will need:
* `jq`
* `expect`
* `qemu-kvm`
These should be installed using your normal platform package installation, e.g. `apt install -y jq expect qemu-kvm`.
You also will need `rtf`, which can be installed with `make bin/rtf && make install`.
For pushing our kernels, you will need [manifest-tool](http://github.com/estesp/manifest-tool), which can be installed with
`make bin/manifest-tool && make install`.
Finally, to enable your regular user to run the tools, we recommend:
```
usermod -aG docker $USER
usermod -aG kvm $USER
usermod -aG sudo $USER
```

View File

@@ -7,7 +7,8 @@
## Make Disk Available
In order to make the disk available, you need to tell `linuxkit` where the disk file or block device is.
All local `linuxkit run` methods (currently `hyperkit`, `qemu`, and `vmware`) take a `-disk` argument:
All local `linuxkit run` methods (currently `hyperkit`, `qemu`, `virtualization.framework` and `vmware`)
take a `-disk` argument:
* `-disk path,size=100M,format=qcow2`. For size the default is in GB but an `M` can be appended to specify sizes in MB. The format can be omitted for the platform default, and is only useful on `qemu` at present.
@@ -52,9 +53,17 @@ onboot:
command: ["/usr/bin/format", "-force", "-type", "xfs", "-label", "DATA", "-verbose", "/dev/vda"]
```
```
onboot:
- name: format
image: linuxkit/format:<hash>
command: ["/usr/bin/format", "-type", "ext4", "-partition", "gpt", "/dev/vda"]
```
- `-force` can be used to force the partition to be cleared and recreated (if applicable), and the recreated partition formatted. This option would be used to re-init the partition on every boot, rather than persisting the partition between boots.
- `-label` can be used to give the disk a label
- `-type` can be used to specify the type. This is `ext4` by default but `btrfs` and `xfs` are also supported
- `-partition` can be used to specify the partition table type. This is `dos` by default but `gpt` is also supported
- `-verbose` enables verbose logging, which can be used to troubleshoot device auto-detection and (re-)partitioning
- The final (optional) argument specifies the device name

View File

@@ -6,7 +6,7 @@ Please open an issue if you want to add a question here.
LinuxKit does not require being installed on a disk, it is often run from an ISO, PXE or other
such means, so it does not require an on disk upgrade method such as the ChromeOS code that
is often used. It would definitely be possible to use that type of upgrade method if the
is often used. It would definitely be possible to use that type of upgrade method if the
system is installed, and it would be useful to support this for that use case, and an
updater container to control this for people who want to use this.
@@ -37,6 +37,52 @@ If you're not seeing `containerd` logs in the console during boot, make sure tha
`init` and other processes like `containerd` will use the last defined console in the kernel `cmdline`. When using `qemu`, to see the console you need to list `ttyS0` as the last console to properly see the output.
## Enabling and controlling containerd logs
On startup, linuxkit looks for and parses a file `/etc/containerd/runtime-config.toml`. If it exists, the content is used to configure containerd runtime.
Sample config is below:
```toml
cliopts="--log-level debug"
stderr="/var/log/containerd.out.log"
stdout="stdout"
```
The options are as follows:
* `cliopts`: options to pass to the containerd command-line as is.
* `stderr`: where to send stderr from containerd. If blank, it sends it to the default stderr, which is the console.
* `stdout`: where to send stdout from containerd. If blank, it sends it to the default stdout, which is the console. containerd normally does not have any stdout.
The `stderr` and `stdout` options can take exactly one of the following options:
* `stderr` - send to stderr
* `stdout` - send to stdout
* any absolute path (beginning with `/`) - send to that file. If the file exists, append to it; if not, create it and append to it.
Thus, to enable
a higher log level, for example `debug`, create a file whose contents are `--log-level debug` and place it on the image:
```yml
files:
- path: /etc/containerd/runtime-config.toml
source: "/path/to/runtime-config.toml"
mode: "0644"
```
Note that the package that parses the `cliopts` splits on _all_ whitespace. It does not, as of this writing, support shell-like parsing, so the following will work:
```
--log-level debug --arg abcd
```
while the following will not:
```
--log-level debug --arg 'abcd def'
```
## Troubleshooting containers
Linuxkit runs all services in a specific `containerd` namespace called `services.linuxkit`. To list all the defined containers:

61
docs/image-cache.md Normal file
View File

@@ -0,0 +1,61 @@
# Image Caching
linuxkit builds each runtime OS image from a combination of Docker images.
These images are pulled from a registry and cached locally.
linuxkit does not use the docker image cache to store these images. This is
for two key reasons.
First, docker does not provide support for different architecture versions. For
example, if you want to pull down `docker.io/library/alpine:3.13` by manifest,
with its signature, but get the `arm64` version while you are on an `amd64` device,
it is not supported.
Second, and more importantly, this requires a running docker daemon. Since the
very essence of linuxkit is removing daemons and operating systems where unnecessary,
just laying down bits in a file, removing docker from the image build process
is valuable. It also simplifies many use cases, like CI, where a docker daemon
may be unavailable.
## How LinuxKit Caches Images
LinuxKit pulls images down from a registry and stores them in a local cache.
It stores the root manifest or index of the image, the manifest, and all of the layers
for the requested architecture. It does not pull down layers, manifest or config
for all available architectures, only the requested one. If none is requested, it
defaults to the architecture on which you are running.
By default, LinuxKit caches images in `~/.linuxkit/cache/`. It can be changed
via a command-line option. The structure of the cache directory matches the
[OCI spec for image layout](http://github.com/opencontainers/image-spec/blob/master/image-layout.md).
Image names are kept in `index.json` in the [annotation](https://github.com/opencontainers/image-spec/blob/master/annotations.md) `org.opencontainers.image.ref.name`. For example"
```json
{
"schemaVersion": 2,
"manifests": [
{
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"size": 1638,
"digest": "sha256:9a839e63dad54c3a6d1834e29692c8492d93f90c59c978c1ed79109ea4fb9a54",
"annotations": {
"org.opencontainers.image.ref.name": "docker.io/library/alpine:3.13"
}
}
]
}
```
## How LinuxKit Uses the Cache and Registry
For each image that linuxkit needs to read, it does the following. Note that if the `--pull` option
is provided, it always will pull, independent of what is in the cache.
1. Check in the cache for the image name in the cache `index.json`. If it does not find it, pull it down and store it in cache.
1. Read the root hash from `index.json`.
1. Find the root blob in the `blobs/` directory via the hash and read it.
1. Proceed to read the manifest, config and layers.
The read process is smart enough to check each blob in the local cache before downloading
it from a registry.

View File

@@ -10,17 +10,51 @@ The LinuxKit kernels are based on the latest stable releases and are
updated frequently to include bug and security fixes. For some
kernels we do carry additional patches, which are mostly back-ported
fixes from newer kernels. The full kernel source with patches can be
found on [github](https://github.com/linuxkit/linux). Each kernel
image is tagged with the full kernel version (e.g.,
`linuxkit/kernel:4.9.33`) and with the full kernel version plus the
hash of the files it was created from (git tree hash of the `./kernel`
directory). For selected kernels (mostly the LTS kernels and latest
stable kernels) we also compile/push kernels with additional debugging
enabled. The hub images for these kernels have the `-dbg` suffix in
the tag. For some kernels, we also provide matching packages
containing the `perf` utility for debugging and performance tracing.
The perf package is called `kernel-perf` and is tagged the same way as
the kernel packages.
found on [github](https://github.com/linuxkit/linux).
## Kernel Image Naming and Tags
We publish the following kernel images:
* primary kernel
* debug kernel
* tools for the specific kernel build - bcc and perf
* builder image for the specific kernel build, useful for compiling compatible kernel modules
### Primary Kernel Images
Each kernel image is tagged with:
* the full kernel version, e.g. `linuxkit/kernel:6.6.13`. This is a multi-arch index, and should be used whenever possible.
* the full kernel version plus hash of the files it was created from (git tree hash of the `./kernel` directory), e.g. `6.6.13-c0d96951e9892a7447a8e7965d2d6bd7e621c3fd`. This is a multi-arch index.
* the full kernel version plus architecture, e.g. `linuxkit/kernel:6.6.13-amd64` or `linuxkit/kernel:6.6.13-arm64`. Each of these is architecture specific.
* the full kernel version plus hash of the files it was created from (git tree hash of the `./kernel` directory) plus architecture, e.g. `6.6.13-c0d96951e9892a7447a8e7965d2d6bd7e621c3fd-arm64`.
### Debug Kernel Images
With each kernel image, we also publish kernels with additional debugging enabled.
These have the same image name and the same tags as the primary kernel, with the `-dbg`
suffix added immediately after the version. E.g.
* `linuxkit/kernel:6.6.13-dbg`
* `linuxkit/kernel:6.6.13-dbg-c0d96951e9892a7447a8e7965d2d6bd7e621c3fd`
* `linuxkit/kernel:6.6.13-dbg-amd64`
* `linuxkit/kernel:6.6.13-dbg-c0d96951e9892a7447a8e7965d2d6bd7e621c3fd-amd64`
### Tools
With each kernel image, we also publish images with various tools. As of this writing,
those tools are `perf` and `bcc`.
The tools images are named `linuxkit/kernel-<tool>`, followed by the same tags as the
primary kernel. For example:
* `linuxkit/kernel-perf:6.6.13`
* `linuxkit/kernel-perf:6.6.13-c0d96951e9892a7447a8e7965d2d6bd7e621c3fd`
* `linuxkit/kernel-perf:6.6.13-amd64`
* `linuxkit/kernel-perf:6.6.13-c0d96951e9892a7447a8e7965d2d6bd7e621c3fd-amd64`
## Additional Contributions
In addition to the official images, there are also some
[scripts](../contrib/foreign-kernels) which repackage kernels packages
@@ -32,7 +66,6 @@ use cases for the promising IoT scenarios. All -rt patches are grabbed from
https://www.kernel.org/pub/linux/kernel/projects/rt/. But so far we just
enable it over 4.14.x.
## Loading kernel modules
Most kernel modules are autoloaded with `mdev` but if you need to `modprobe` a module manually you can use the `modprobe` package in the `onboot` section like this:
@@ -45,22 +78,36 @@ Most kernel modules are autoloaded with `mdev` but if you need to `modprobe` a m
## Compiling external kernel modules
This section describes how to build external (out-of-tree) kernel
modules. It is assumed you have the source available to those modules,
and require the correct kernel version headers and compile tools.
modules. You need the following to build external modules. All of
these are to be built for a specific version of the kernel. For
the examples, we will assume 5.10.104; replace with your desired
version.
The LinuxKit kernel packages include `kernel-dev.tar` which contains
* source available to your modules - you need to get those on your own
* kernel development headers - available in the `linuxkit/kernel` image as `kernel-dev.tar`, e.g. `linuxkit/kernel:5.10.104`
* OS with sources and compiler - this **must** be the exact same version as that used to compile the kernel
As described above, the `linuxkit/kernel` images include `kernel-dev.tar` which contains
the headers and other files required to compile kernel modules against
the specific version of the kernel. Currently, the headers are not
included in the initial RAM disk, but it is possible to compile custom
modules offline and then include the modules in the initial RAM disk.
There is a [example](../test/cases/020_kernel/011_kmod_4.9.x), but
The source is available as the same name as the `linuxkit/kernel` image, with the addition of `-builder` on the tag.
For example:
* `linuxkit/kernel:5.10.92` has builder `linuxkit/kernel:5.10.92-builder`
* `linuxkit/kernel:5.15.15` has builder `linuxkit/kernel:5.15.15-builder`
With the above in hand, you can create a multi-stage `Dockerfile` build to compile your modules.
There is an [example](../test/cases/020_kernel/113_kmod_5.10.x), but
basically one can use a multi-stage build to compile the kernel
modules:
```
FROM linuxkit/kernel:4.9.33 AS ksrc
FROM linuxkit/alpine:<hash> AS build
```dockerfile
FROM linuxkit/kernel:5.10.104 AS ksrc
FROM linuxkit/kernel:5.10.104-builder AS build
RUN apk add build-base
COPY --from=ksrc /kernel-dev.tar /
@@ -73,55 +120,284 @@ To use the kernel module, we recommend adding a final stage to the
Dockerfile above, which copies the kernel module from the `build`
stage and performs a `insmod` as the entry point. You can add this
package to the `onboot` section in your YAML
file. [kmod.yml](../test/cases/020_kernel/010_kmod_4.9.x/kmod.yml)
file. [test.yml](../test/cases/020_kernel/113_kmod_5.10.x/test.yml)
contains an example for the configuration.
### Builder Backups
## Modifying the kernel config
As described above, the OS builder is referenced via `<kernel-image>-builder`, e.g.
`linuxkit/kernel:5.15.15-builder`.
Each series of kernels has a config file dedicated to it
in [../kernel/](../kernel),
e.g.
[config-4.9.x-x86_64](../kernel/config-4.9.x-x86_64),
which is applied during the kernel build process.
As a fallback, in case the `-builder` image is not available or you cannot access it from your development environment,
you have 3 total places to determine the correct version of the OS image with sources and compiler:
If you need to modify the kernel config, `make kconfig` in
the [kernel](../kernel) directory will create a local
`linuxkit/kconfig` Docker image, which contains the patched sources
for all support kernels and architectures in
`/linux-4.<minor>.<rev>`. The kernel source also has the kernel config
copied to the default kernel config.
* `-builder` tag added to the kernel version, e.g. `linuxkit/kernel:5.10.104-builder`
* labels on the kernel image, e.g. `docker inspect linuxkit/kernel:5.10.104 | jq -r '.[].Config.Labels["org.mobyproject.linuxkit.kernel.buildimage"]'`
* `/kernel-builder` file in the kernel image
Running the image like:
You **should** use `-builder` tag as the `AS build` in your `Dockerfile`, but you **can** use
the direct source, extracted from the labels or `/kernel-builder` file in the kernel image, in the `AS build`.
```sh
docker run --rm -ti -v $(pwd):/src linuxkit/kconfig
For example, in the case of `5.10.104`, the label and `/kernel-builder` file show `linuxkit/alpine:2be490394653b7967c250e86fd42cef88de428ba`,
so you can use either `linuxkit/alpine:2be490394653b7967c250e86fd42cef88de428ba` or
`linuxkit/kernel:5.10.104-builder` to build the modules.
Thus, the following are equivalent:
```dockerfile
FROM linuxkit/kernel:5.10.104 AS ksrc
FROM linuxkit/kernel:5.10.104-builder AS build
```
will give you a interactive shell where you can modify the kernel
configuration you want, either by editing the config file, or via
`make menuconfig` etc. Once you are done, save the file as `.config`
and copy it back to the source tree,
e.g. `/src/kernel-config-4.9.x-x86_64`.
You can also configure other architectures other than the native
one. For example to configure the arm64 kernel on x86_64, use:
```dockerfile
FROM linuxkit/kernel:5.10.104 AS ksrc
FROM linuxkit/alpine:2be490394653b7967c250e86fd42cef88de428ba AS build
```
make ARCH=arm64 defconfig
make ARCH=arm64 oldconfig # or menuconfig
## Building and Modifying
This section describes how to build kernels, and how to modify existing ones.
Throughout the document, the terms used are:
* kernel version: actual semver version of a kernel, e.g. `6.6.13` or `5.15.27`
* kernel series: major.minor version of a kernel, e.g. `6.6.x` or `5.15.x`
Throughout this document, the architecture used is the kernel-recognized one, available
on most systems as `uname -m`, e.g. `aarch64` or `x86_64`. You may be familiar with the alpine
or golang one, e.g. `amd64` or `amd64`, which are not used here.
**Note:** After changing _and committing any changes_ to the kernel directory or any
subdirectories, you must update tests, examples and other dependencies. This is done
via:
```bash
make update-kernel-yamls
```
Each series of kernels has a dedicated directory in [../kernel/](../kernel),
e.g. [6.6.x](../kernel/6.6.x) or [5.15.x](../kernel/5.15.x).
Variants, like rt kernels, have their own directory as well, e.g. [5.11.x-rt](../kernel/5.11.x-rt).
However, for variants, the patches from _both_ the common kernel, e.g. [5.11.x](../kernel/5.11.x),
and the variant, e.g. [5.11.x-rt](../kernel/5.11.x-rt), are applied, and the configs from _both_ are combined.
Within the series-dedicated directory, there are:
* kernel config file for each architecture named `config-<arch>`, e.g. [6.6.13/config-x86_64](../kernel/6.6.13/config-x86_64), one per target architecture.
* optional patches directory, e.g. [6.6.13/patches](../kernel/6.6.13/patches), which contains patches to apply to the kernel source
The config file and patches are applied during the kernel build process.
**Note**: We try to keep the differences between kernel versions and
architectures to a minimum, so if you make changes to one
configuration also try to apply it to the others. The script [kconfig-split.py](../scripts/kconfig-split.py) can be used to compare kernel config files. For example:
```sh
../scripts/kconfig-split.py config-4.9.x-aarch64 config-4.9.x-x86_64
../scripts/kconfig-split.py 5.15.x/config-aarch64 5.15.x/config-x86_64
```
creates a file with the common and the x86_64 and arm64 specific
config options for the 4.9.x kernel series.
config options for the 5.15.x kernel series.
**Note**: The CI pipeline does *not* push out kernel images.
Anyone modifying a kernel should:
1. Follow the steps below for the desired changes and commit them.
1. Run appropriate `make build` or variants to ensure that it works.
1. Open a PR with the changes. This may fail, as the CI pipeline may not have access to the modified kernels.
1. A maintainer should run `make push` to push out the images.
1. Run (or rerun) the tests.
#### Build options
The targets and variants for building are as follows:
* `make build` - make all kernels in the version list and their variants
* `make build-<version>` - make all variants of a specific kernel version
* `make buildkernel-<version>` - make all variants of a specific kernel version
* `make buildplainkernel-<version>` - make just the provided version's kernel
* `make builddebugkernel-<version>` - make just the provided version's debug kernel
* `make buildtools-<version>` - make just the provided version's tools
To push:
* `make push` - push all kernels in the version list and their variants
* `make push-<version>` - push all variants of a specific kernel version
Finally, for convenience:
* `make list` - list all kernels in the version list
By default, it builds for all supported architectures. To build just for a specific
architecture:
```sh
make build ARCH=amd64
```
The variable `ARCH` should use the golang variants only, i.e. `amd64` and `arm64`.
To build for multiple architectures, call it multiple times:
```sh
make build ARCH=amd64
make build ARCH=arm64
```
When building for a specific architecture, the build process will use your local
Docker, passing it `--platforms` for the architecture. If you have a builder on a different
architecture, e.g. you are running on an Apple Silicon Mac (arm64) and want to build for
`x86_64` without emulating (which can be very slow), you can use the `BUILDER` variable:
```sh
make build ARCH=x86_64 BUILDER=remote-amd64-builder
```
Builder also supports a builder pattern. If `BUILDER` contains the string `{{.Arch}}`,
it will be replaced with the architecture being built.
For example:
```sh
make build ARCH=x86_64 BUILDER=remote-{{.Arch}}-builder
make build ARCH=aarch64 BUILDER=remote-{{.Arch}}-builder
```
will build `x86_64` on `remote-amd64-builder` and `aarch64` on `remote-arm64-builder`.
Finally, if no `BUILDER` is specified, the build will look for a builder named
`linuxkit-linux-{{.Arch}}-builder`, e.g. `linuxkit-linux-amd64-builder` or
`linuxkit-linux-arm64-builder`. If that builder does not exist, it will fall back to
your local Docker setup.
### Modifying the kernel config
The process of modifying the kernel configuration is as follows:
1. Create a `linuxkit/kconfig` container image: `make kconfig`. This is not pushed out. By default, this will be for your local architecture, but you can override it with `make kconfig ARCH=${ARCH}`, e.g. `make kconfig ARCH=arm64`. The image is tagged with the architecture, e.g. `linuxkit/kconfig:arm64`.
1. Run a container based on `linuxkit/kconfig`.
1. In the container, modify the config to suit your needs using normal kernel tools like `make defconfig` or `make menuconfig`.
1. Save the config from the image.
The `linuxkit/kconfig` image contains the patched sources
for all support kernels and architectures in `/linux-<major>.<minor>.<rev>`.
The kernel source also has the kernel config copied to the default kernel config location,
so that `make menuconfig` and `make defconfig` work correctly.
Run the container as follows:
```sh
docker run --rm -ti -v $(pwd):/src linuxkit/kconfig:aarch64
# or
docker run --rm -ti -v $(pwd):/src linuxkit/kconfig:x86_64
# or
docker run --rm -ti -v $(pwd):/src linuxkit/kconfig:riscv64
```
This will give you a interactive shell where you can modify the kernel
configuration you want, while mounting the directory, so that you can save the
modified config.
To create or modify the config, you must cd to the correct directory,
e.g.
```sh
cd /linux-6.6.13
# or
cd /linux-5.15.27
```
Now you can build the config.
When `make defconfig` or `make menuconfig` is done,
the modified config file will be in `.config`; save the file back to `/src`,
e.g.
```sh
cp .config /src/6.6.x/config-x86_64
```
You can also configure other architectures other than the native
one. For example to configure the arm64 kernel on x86_64, use:
```sh
make ARCH=arm64 defconfig
make ARCH=arm64 oldconfig # or menuconfig
```
It is important to note that sometimes the configuration can be subtly different
when running `make defconfig` across architectures. Of note is that `make ARCH=riscv` on
x86_64 or aarch64 comes out slightly differently than when run natively on riscv64.
Feel free to try it cross, but do not be surprised if it generates outputs that are not the same.
Note that the generated file **must** be final. When you actually build the kernel,
it will check that running `make defconfig` will have no changes. If there are changes,
the build will fail.
The easiest way to check it is to rerun `make defconfig` inside the kconfig container.
1. Finish your creation of the config file, as above.
1. Copy the `.config` file to the target location, as above.
1. Copy the `.config` file to the source location for defconfig, e.g. `cp .config arch/x86/configs/x86_64_config` or `cp. config /linux/arch/arm64/configs/defconfig`
1. Run `make defconfig` again, and check that there are no changes, e.g. `diff .config arch/x86/configs/x86_64_config` or `diff .config /linux/arch/arm64/configs/defconfig`
If there are no differences, then you can commit the new config file.
Finally, test that you can build the kernel with that config as `make build-<version>`, e.g. `make build-5.15.148`.
## Adding a new kernel version
If you want to add a new kernel version within an existing series, e.g. `5.15.27` already exists
and you want to add (or replace it with) `5.15.148`, apply the following process.
1. Determine the series, i.e. the kernel major.minor version, followed by `x`. E.g. for `5.15.148`, the series is `5.15.x`.
1. Modify the `KERNEL_VERSION` in the `build-args` file in the series directory to the new version. E.g. `5.15.x/build-args`.
1. Create a new `linuxkit/kconfig` container image: `make kconfig`. This is not pushed out.
1. Run a container based on `linuxkit/kconfig`.
```sh
docker run --rm -ti -v $(pwd):/src linuxkit/kconfig
```
1. In the container, change directory to the kernel source directory for the new version, e.g. `cd /linux-5.15.148`.
1. Run `make defconfig` to create the default config file.
1. If the config file has changed, copy it out of the container and check it in, e.g. `cp .config /src/5.15.x/config-x86_64`.
1. Repeat for other architectures.
1. Commit the changed config files.
1. Test that you can build the kernel with that config as `make build-<version>`, e.g. `make build-5.15.148`.
## Adding a new kernel series
To add a new kernel series, you need to:
1. Create new directory for the series, e.g. `6.7.x`
1. Create config files for each architecture in that directory
1. Optionally, create a `patches/` subdirectory in that directory with any patches to add
1. Create a `build-args` file in that directory with at least the following settings:
```bash
KERNEL_VERSION=<version>
KERNEL_SERIES=<series>
BUILD_IMAGE=linuxkit/alpine:<builder>
```
Since the last major series likely is the best basis for the new one, subject to additional modifications, you can use
the previous one as a starting point.
1. Make the directory for the new series, e.g. `mkdir 7.0.x`
1. Create a new `linuxkit/kconfig` container image: `make kconfig`. This is not pushed out.
1. Run a container based on `linuxkit/kconfig`.
```sh
docker run --rm -ti -v $(pwd):/src linuxkit/kconfig
```
1. In the container, change directory to the kernel source directory for the new version, e.g. `cd /linux-7.0.5`.
1. Copy the existing config file for the previous series, e.g. `cp /src/6.6.x/config-x86_64 .config`.
1. Run `make oldconfig` to create the config file for the new series from the old one. Answer any questions.
1. Save the newly generated config file `.config` to the source directory, e.g. `cp .config /src/7.0.x/config-x86_64`.
1. Repeat for other architectures.
1. Commit the new config files.
1. Test that you can build the kernel with that config as `make build-<version>`, e.g. `make build-7.0.5`.
In addition, there are tests that are applied to a specific kernel version, notably the tests in
[020_kernel](../test/cases/020_kernel/). You will need to add a new test case for the new series,
copying an existing one and modifying it as needed.
## Building and using custom kernels
@@ -149,7 +425,7 @@ appended. Then you can also override the Hub organisation to use the
image elsewhere with (and also disable image signing):
```sh
make ORG=<your hub org> NOTRUST=1
make ORG=<your hub org>
```
The image will be uploaded to Hub and can be use in a YAML file as
@@ -322,7 +598,7 @@ yourself:
```sh
cd kernel
make ORG=<foo> NOTRUST=1 push_zfs_4.9.x # or different kernel version
make ORG=<foo> push_zfs_4.9.x # or different kernel version
```
will build and push a `zfs-kmod-4.9.<version>` image to Docker Hub
@@ -347,3 +623,31 @@ Alpine `zfs` utilities are available in `linuxkit/alpine` and the
version of the kernel module should match the version of the
tools. The container where you run the `zfs` tools might also need
`CAP_SYS_MODULE` to be able to load the kernel modules.
## Kernels in examples and tests
All of the linuxkit `.yml` files use the images from `linuxkit/kernel:<tag>`.
When updating the kernel, you run commands to update the tests. The updates to any file that contains
references to `linuxkit/kernel` in this repository work as follows:
- Semver tags are replaced by the most recent kernel version. For example, `linuxkit/kernel:5.10.104` will become `6.6.13` when available, and then `6.6.15`, and then `7.0.1`, etc. The highest semver always is used.
- Semver+hash tags are replaced by the most recent hash and patch version for that series. For example, `linuxkit/kernel:5.10.104-abcdef1234` will become `5.10.104-aaaa54232` (same semver, newer hash), and then `5.10.105-bbbb12345` (newer semver, newer hash), etc. The highest semver+hash always is used.
This is not an inherent characteristic of `linuxkit` tool, which **never** will change your `.yml` files. It is part of
the update process for yml files _in this repository_.
The net of the above is the following rule:
* If you want a reference to a specific kernel series, e.g. a test or example that works only with `5.10.x`, then use a specific hash, e.g. `linuxkit/kernel:5.10.104-abcdef1234`. The hash and patch version will update, but not more. The most common use case for this is kernel version-specific tests.
* If you want a reference to the most recent kernel, whatever version it is, then use a semver tag, e.g. `linuxkit/kernel:6.6.13`. The most common use case for this is examples that work with any kernel version, which is the vast majority of cases.
You can get the current hash by executing the following:
```bash
$ cd kernel
$ make tag-plain-kernel-<version>
# for example:
$ make tag-plain-kernel-6.6.13
linuxkit/kernel:6.6.13-3a8b3faf92390265b1fbee792b9a3fe14d14c26e
```

View File

@@ -63,6 +63,21 @@ This hierarchy can then be used by individual containers, who can bind
mount the config sub-directory into their namespace where it is
needed.
## A note on SSH
Supported providers will extract public keys from metadata to a file
located at `/run/config/ssh/authorized_keys`. You must bind this path
into the `sshd` namespace in order to make use of these keys. Use a
configuration similar to the one shown below to enable root login
based on keys from the metadata service:
```
- name: sshd
image: linuxkit/sshd:4696ba61c3ec091328e1c14857d77e675802342f
binds.add:
- /run/config/ssh/authorized_keys:/root/.ssh/authorized_keys
```
# Metadata image creation
`linuxkit run` backends accept two options to pass metadata to the VM in a platform specific
@@ -101,9 +116,23 @@ hostname and populate the `/run/config/ssh/authorized_keys` from metadata.
AWS userdata is extracted from `http://169.254.169.254/latest/user-data` and
and made available in `/run/config/userdata`.
## Hetzner
Hetzner metadata is reached via the following URL
(`http://169.254.169.254/latest/meta-data/`) and currently we extract the
hostname and populate the `/run/config/ssh/authorized_keys` from metadata.
Hetzner userdata is extracted from `http://169.254.169.254/latest/user-data` and
and made available in `/run/config/userdata`.
## HyperKit
HyperKit does not distinguish metadata and userdata, it's simply
refered to as data, which is passed to the VM as a disk image
in ISO9660 format.
## Virtualization.Framework
Virtualization.Framework does not distinguish metadata and userdata, it's simply
refered to as data, which is passed to the VM as a disk image
in ISO9660 format.

View File

@@ -7,23 +7,37 @@ packages, as it's very easy. Packages are the unit of customisation
in a LinuxKit-based project, if you know how to build a container,
you should be able to build a LinuxKit package.
All LinuxKit packages are:
- Signed with Docker Content Trust.
- Enabled with multi-arch manifests to work on multiple architectures.
- Derived from well-known (and signed) sources for repeatable builds.
All official LinuxKit packages are:
- Enabled with multi-arch indexes to work on multiple architectures.
- Derived from well-known sources for repeatable builds.
- Built with multi-stage builds to minimise their size.
## CI and Package Builds
When building and merging packages, it is important to note that our CI process builds packages. The targets `make ci` and `make ci-pr` execute `make -C pkg build`. These in turn execute `linuxkit pkg build` for each package under `pkg/`. This in turn will try to pull the image whose tag matches the tree hash or, failing that, to build it.
We do not want the builds to happen with each CI run for two reasons:
Any released image, i.e. any package under `pkg/` that has _not_ changed as
part of a pull request,
already will be released to Docker Hub. This will cause it to download that image, rather
than try to build it.
Any non-releaed image, i.e. any package under `pkg/` that _has_ changed as part of
a pull request, will not be in Docker Hub until the PR has merged.
This will cause the download to fail, leading `linuxkit pkg build` to try and build the
image and save it in the cache.
This does have two downsides:
1. It is slower to do a package build than to just pull the latest image.
2. If any of the steps of the build fails, e.g. a `curl` download that depends on an intermittent target, it can cause all of CI to fail.
Thus, if, as a maintainer, you merge any commits into a `pkg/`, even if the change is documentation alone, please do a `linuxkit package push`.
In the past, each PR required a maintainer to build, and push to Docker Hub, every
changed package in `pkg/`. This placed the maintainer in the PR cycle, with the
following downsides:
1. A maintainer had to be involved in every PR, not just reviewing but actually building and pushing. This reduces the ability for others to contribute.
1. The actual package is pushed out by a person, violating good supply-chain practice.
## Package source
@@ -36,12 +50,14 @@ A package source consists of a directory containing at least two files:
- `image` _(string)_: *(mandatory)* The name of the image to build
- `org` _(string)_: The hub/registry organisation to which this package belongs
- `tag` _(string)_: The tag to use for the image, can be fixed string or template (default: `{{.Hash}}`)
- `dockerfile` _(string)_: The dockerfile to use to build this package, must be in this directory or below (default: `Dockerfile`)
- `arches` _(list of string)_: The architectures which this package should be built for (valid entries are `GOARCH` names)
- `extra-sources` _(list of strings)_: Additional sources for the package outside the package directory. The format is `src:dst`, where `src` can be relative to the package directory and `dst` is the destination in the build context. This is useful for sharing files, such as vendored go code, between packages.
- `gitrepo` _(string)_: The git repository where the package source is kept.
- `network` _(bool)_: Allow network access during the package build (default: no)
- `disable-content-trust` _(bool)_: Disable Docker content trust for this package (default: no)
- `disable-cache` _(bool)_: Disable build cache for this package (default: no)
- `buildArgs` will forward a list of build arguments down to docker. As if `--build-arg` was specified during `docker build`
- `config`: _(struct `github.com/moby/tool/src/moby.ImageConfig`)_: Image configuration, marshalled to JSON and added as `org.mobyproject.config` label on image (default: no label)
- `depends`: Contains information on prerequisites which must be satisfied in order to build the package. Has subfields:
- `docker-images`: Docker images to be made available (as `tar` files via `docker image save`) within the package build context. Contains the following nested fields:
@@ -53,9 +69,9 @@ A package source consists of a directory containing at least two files:
### Prerequisites
Before you can build packages you need:
- Docker version 17.06 or newer. If you are on a Mac you also need
`docker-credential-osxkeychain.bin`, which comes with Docker for Mac.
- `make`, `notary`, `base64`, `jq`, and `expect`
- Docker version 19.03 or newer.
- If you are on a Mac you also need `docker-credential-osxkeychain.bin`, which comes with Docker for Mac.
- `make`, `base64`, `jq`, and `expect`
- A *recent* version of `manifest-tool` which you can build with `make
bin/manifest-tool`, or `go get github.com:estesp/manifest-tool`, or
via the LinuxKit homebrew tap with `brew install --HEAD
@@ -66,68 +82,258 @@ Further, when building packages you need to be logged into hub with
`docker login` as some of the tooling extracts your hub credentials
during the build.
### Build Targets
LinuxKit builds packages as docker images. It deposits the built package as a docker image in one or both of two targets:
* the linuxkit cache, which is at `~/.linuxkit/cache/` (configurable)
* the docker image cache (optional)
The package _always_ is built and saved in the linuxkit cache. However, you _also_ can load the package for the current
architecture, if available, into the docker image cache.
If you want to build images and test and run them _in a standalone_ fashion locally, then you should add the docker image cache.
Otherwise, you don't need anything more than the default linuxkit cache. LinuxKit defaults to building OS images using docker
images from this cache, only looking in the docker cache if instructed to via `linuxkit build --docker`.
In the linuxkit cache, it creates all of the layers, the manifest that can be uploaded
to a registry, and the multi-architecture index. If an image already exists for a different architecture in the cache,
it updates the index to include additional manifests created.
The order of building is as follows:
1. Build the image to the linuxkit cache
1. If `--docker` is provided, load the image into the docker image cache
For example:
```bash
linuxkit pkg build pkg/foo # builds pkg/foo and places it in the linuxkit cache
linuxkit pkg build pkg/foo --docker # builds pkg/foo and places it in the linuxkit cache and also loads it into docker
```
#### Build Platforms
By default, `linuxkit pkg build` builds for all supported platforms in the package's `build.yml`, whose syntax is available
[here][Package source]. If no platforms are provided in the `build.yml`, it builds for all platforms that linuxkit supports.
As of this writing, those are:
* `linux/amd64`
* `linux/arm64`
* `linux/s390x`
You can choose to skip one of the platforms from `build.yml` or those selected
by default using the `--skip-platforms` flag.
For example:
```
linuxkit pkg build --skip-platforms linux/s390x ...
```
You can override the target build platform by passing it the `--platforms` option:
```
linuxkit pkg build --platforms <platform1,platform2,...platformN>
```
The options for `--platforms` are identical to those for [docker build](https://docs.docker.com/engine/reference/commandline/build/).
An example is available in the official [buildx documentation](https://docs.docker.com/buildx/working-with-buildx/#build-multi-platform-images).
Given that this is linuxkit, i.e. all builds are for linux, the `OS` part would seem redundant, and it should be sufficient to pass `--platform arm64`. However, for complete consistency, the _entire_ platform, e.g. `--platforms linux/amd64,linux/arm64`, must be provided.
#### Where it builds
You are running the `linuxkit pkg build` command on a single platform, e.g. your local linux cloud instance running on `amd64`, or
a MacBook with Apple Silicon running on `arm64`.
How does linuxkit determine where to build the target images?
linuxkit uses [buildkit](https://github.com/moby/buildkit) directly to build all images.
It uses docker contexts to determine _where_ to run those buildkit containers, based on the target
architecture.
When running a package build, linuxkit looks for a container named `linuxkit-builder`, running the appropriate
version of buildkit. If it cannot find a container with that name, it creates it.
If the container already exists but is not running buildkit, or if the version is incorrect, linuxkit stops and removes
the existing `linuxkit-builder` container and creates one running the correct version of buildkit.
When linuxkit needs to build a package for a particular architecture:
1. If a context for that architecture was provided, use that context, looking for and/or starting a buildkit container named `linuxkit-builder`.
1. If no context for that architecture was provided, use the `default` context.
The actual building then will be one of:
1. native, if the provided context has the same architecture as the target build architecture; else
1. cross-build, if the provided context has a different architecture, but the package's `Dockerfile` supports cross-building; else
1. emulated build, using docker's qemu binfmt capabilities
Cross-building, i.e. building on one platform using that platform's binaries to create outputs for a different platform,
depends on the package's `Dockerfile`. Details are available in the
[official Docker buildx docs](https://docs.docker.com/buildx/working-with-buildx/#build-multi-platform-images).
* if the image is just `FROM something`, then it runs it under qemu using binfmt
* if the image is `FROM --platform=$BUILDPLATFORM something`, then it runs it using the local architecture, invoking cross-builders
Read the official docs to learn more how to leverage cross-building with buildx.
**Important:** When building, if the local architecture is not one of those being build,
selecting `--docker` to load the images into the docker image cache will result in an error.
You _must_ be building for the local architecture - optionally for others as well - in order to
pass the `--docker` option.
#### Providing native builder nodes
linuxkit is capable of using native build nodes to do the build, even remotely. To do so, you must:
1. Create a [docker context](https://docs.docker.com/engine/context/working-with-contexts/) that references the build node
1. Tell linuxkit to use that context for that architecture
linuxkit will then use that provided context to look for and/or start a container in which to run buildkit for that architecture.
linuxkit looks for contexts in the following descending order of priority:
1. CLI option `--builders <platform>=<context>,<platform>=<context>`, e.g. `--builders linux/arm64=linuxkit-arm64,linux/amd64=default`
1. Environment variable `LINUXKIT_BUILDERS=<platform>=<context>,<platform>=<context>`, e.g. `LINUXKIT_BUILDERS=linux/arm64=linuxkit-arm64,linux/amd64=default`
1. Existing context named `linuxkit-<platform>`, e.g. `linuxkit-linux-arm64` or `linuxkit-linux-s390x`, with "/" replaced by "-", as "/" is an invalid character.
1. Default context
If a builder name is provided for a specific platform, and it doesn't exist, it will be treated as a fatal error.
#### Examples
##### Simple build
There are no contexts starting with `linuxkit-`, no environment variable `LINUXKIT_BUILDERS`, no command-line argument `--builders`.
linuxkit will build any requested packages using `default` context on the local platform, with a container (created, if necessary) named `linuxkit-builder`.
Builds for the same architecture will be native, builds for other platforms will use either qemu or cross-building.
##### Specified target
You create a context named `my-remote-arm64` and then run:
```bash
linuxkit pkg build --platforms=linux/arm64,linux/amd64 --builders linux/arm64=my-remote-arm64
```
linuxkit will build:
* for arm64 using the context `my-remote-arm64`, since you specified in `--builders` to use `my-remote-arm64` for `linux/arm64`
* for amd64 using the context `default`, as that is the default fallback
The same would happen if you used `LINUXKIT_BUILDERS=linux/arm64=my-remote-arm64` instead of the `--builders` flag.
In both cases - the remote context `my-remote-arm64` and the local `default` context - it will do the build inside
a container named `linuxkit-builder`.
##### Named context
You create a context named `linuxkit-linux-arm64` and then run:
```bash
linuxkit pkg build --platforms=linux/arm64,linux/amd64
```
linuxkit will build:
* for arm64 using the context `linuxkit-linux-arm64`, since there is a context with the name `linuxkit-<platform>`, and you did not override it using `--builders` or the environment variable `LINUXKIT_BUILDERS`
* for amd64 using the context `default` and the `linuxkit` builder, as that is the default fallback
##### Combination
You create a context named `linuxkit-linux-arm64`, and another named `my-remote-builder-amd64` and then run:
```bash
linuxkit pkg build --platforms=linux/arm64,linux/amd64 --builders linux/amd64=my-remote-builder-amd64
```
linuxkit will build:
* for arm64 using the context `linuxkit-linux-arm64`, since there is a context with the name `linuxkit-<platform>`, and you did not override that particular architecture using `--builders` or the environment variable `LINUXKIT_BUILDERS`
* for amd64 using the context `my-remote-builder-amd64`, since you specified for that architecture using `--builders`
The same would happen if you used `LINUXKIT_BUILDERS=linux/arm64=my-remote-builder-amd64` instead of the `--builders` flag.
##### Missing context
You do not have a context named `my-remote-arm64`, and run:
```bash
linuxkit pkg build --platforms=linux/arm64 --builders linux/arm64=my-remote-arm64
```
linuxkit will try to build for `linux/arm64` using the context `my-remote-arm64`. Since that context does not exist, you will get an error.
##### Preset build arguments
When building packages, the following build-args automatically are set for you:
* `SOURCE` - the source repository of the package
* `REVISION` - the git commit that was used for the build
* `GOPKGVERSION` - the go package version or pseudo-version per https://go.dev/ref/mod#glos-pseudo-version
* `PKG_HASH` - the git tree hash of the package directory, e.g. `45a1ad5919f0b6acf0f0cf730e9434abfae11fe6`; tag part of `linuxkit pkg show-tag`
* `PKG_IMAGE` - the name of the image that is being built, e.g. `linuxkit/init`; image name part of `linuxkit pkg show-tag`. Combine with `PKG_HASH` for the full tag.
Note that the above are set **only** if you do not set them in `build.yaml`. Your settings _always_
override these built-in ones.
To use them, simply address them in your `Dockerfile`:
```dockerfile
ARG SOURCE
```
### Build packages as a maintainer
If you have write access to the `linuxkit` organisation on hub, you
should also be set up with signing keys for packages and your signing
key should have a passphrase, which we call `<passphrase>` throughout.
All official LinuxKit packages are multi-arch manifests and most of
them are available for `amd64`, `arm64`, and `s390x`. Official images
*must* be build on both architectures and they must be build *in
sequence*, i.e., they can't be build in parallel.
them are available for the following platforms:
To build a package on an architecture:
* `linux/amd64`
* `linux/arm64`
* `linux/s390x`
```
DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE="<passphrase>" linuxkit pkg push «path-to-package»
```
Official images *must* be built for all architectures for which they are available.
`«path-to-package»` is the path to the package's source directory
Pushing out a package as a maintainer involves two stages:
1. Building and pushing out the platform-specific images
1. Creating and pushing out the multi-arch manifest, a.k.a. OCI image index
The `linuxkit pkg` command contains automation which performs all of the steps.
Note that `«path-to-package»` is the path to the package's source directory
(containing at least `build.yml` and `Dockerfile`). It can be `.` if
the package is in the current directory.
**Note:** You *must* be logged into hub (`docker login`) and the
passphrase for the key *must* be supplied as an environment
variable. The build process has to resort to using `expect` to drive
`notary` so none of the credentials can be entered interactively.
This will:
- Build a local images as `linuxkit/<image>:<hash>-<arch>`
- Push it to hub
- Sign it with your key
- Create a manifest called `linuxkit/<image>:<hash>` (note no `-<arch>`)
- Push the manifest to hub
- Sign the manifest
If you repeat the same on another architecture, a new manifest will be
pushed and signed containing the previous and the new
architecture. The YAML files should consume the package as:
`linuxkit/<image>:<hash>`.
Since it is not very good to have your passphrase in the clear (or
even stashed in your shell history), we recommend using a password
manager with a CLI interface, such as LastPass or `pass`. You can then
invoke the build like this (for LastPass):
```
DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE=$(lpass show <key> --password) linuxkit pkg push «path-to-package»
```
or alternatively you may add the command to `~/.moby/linuxkit/config.yml` e.g.:
```
pkg:
content-trust-passphrase-command: "lpass show <key> --password"
linuxkit pkg push «path-to-package»
```
This will do the following:
1. Determine the name and tag for the image as follows:
* The tag is from the hash of the git tree for that package. You can see it by doing `linuxkit pkg show-tag «path-to-package»`.
* The name for the image is from `«path-to-package»/build.yml`
* The organization for the package is given on the command-line, default to `linuxkit`.
1. Build the package in the given path using your local docker instance for all the platforms in `«path-to-package»/build.yml`
1. Save the built image in the linuxkit cache
1. Tag each built image as `«image-name»:«hash»-«arch»`
1. Create a multi-arch manifest called `«image-name»:«hash»` (note no `-«arch»`)
1. Push the manifest and all of the images to the hub
Note that for actual release images, these steps normally are performed as part
of CI, by the merge-to-master process.
#### Prerequisites
* For all of the steps, you *must* be logged into hub (`docker login`).
### Build packages as a developer
If you want to develop packages or test them locally, it is best to
override the hub organisation used. You may also want to disable
signing while developing. A typical example would be:
```
linuxkit pkg build -org=wombat -disable-content-trust «path-to-package»
linuxkit pkg build -org=wombat «path-to-package»
```
This will create a local image: `wombat/<image>:<hash>-<arch>` which
@@ -136,7 +342,7 @@ on other systems you can push the image to your hub account and pull
from a different system by issuing:
```
linuxkit pkg build -org=wombat -disable-content-trust push
linuxkit pkg build -org=wombat push
```
This will push both `wombat/<image>:<hash>-<arch>` and
@@ -146,8 +352,45 @@ Finally, if you are tired of the long hashes you can override the hash
with:
```
linuxkit pkg build -org=wombat -disable-content-trust -hash=foo push
linuxkit pkg build -org=wombat -hash=foo push
```
and this will create `wombat/<image>:foo-<arch>` and
`wombat/<image>:foo` for use in your YAML files.
### Proxies
If you are building packages from behind a proxy, `linuxkit pkg build` respects
the following environment variables, and will set them as `--build-arg` to
`docker build` when building a package.
* `http_proxy` / `HTTP_PROXY`
* `https_proxy` / `HTTPS_PROXY`
* `ftp_proxy` / `FTP_PROXY`
* `no_proxy` / `NO_PROXY`
* `all_proxy` / `ALL_PROXY`
Note that the first four of these are the standard built-in `build-arg` options available
for `docker build`; see the [docker build documentation](https://docs.docker.com/v17.09/engine/reference/builder/#arg).
The last, `all_proxy`, is a standard var used for socks proxying. Since it is not built into `docker build`,
if you want to use it, you will need to add the following line to the dockerfile:
```dockerfile
ARG all_proxy
```
LinuxKit does not judge between lower-cased or upper-cased variants of these options, e.g. `http_proxy` vs `HTTP_PROXY`,
as `docker build` does not either. It just passes them through "as-is".
## Releases
Normally, whenever a package is updated, CI will build and push the package to Docker Hub by calling `linuxkit pkg push`.
This automatically creates a tag based on the git tree hash of the package's directory.
For example, the package in `./pkg/init` is tagged as `linuxkit/init:45a1ad5919f0b6acf0f0cf730e9434abfae11fe6`.
In addition, you can release semver tags for packages by adding a tag to the git repository that begins with `pkg-` and is
followed by a valid semver tag. For example, `pkg-v1.0.0`. This will cause CI to build and push the package to Docker Hub
with the tag `v1.0.0`.
Pure semver tags, like `v1.0.0`, are not used for package releases. They are used for the linuxkit project itself and to
publish releases of the `linuxkit` binary.

View File

@@ -35,7 +35,7 @@ specified bucket, and create a bootable image from the stored image.
Alternatively, you can use the `AWS_BUCKET` environment variable to specify the bucket name.
**Note:** If the push times out before it finishes, you can use the `-timeout` flag to extend the timeout.
**Note:** If the push times out before it finishes, you can use the `-timeout` flag to extend the timeout. You may also want to consider passing `-ena` to enable enhanced networking in the AMI.
```
linuxkit push aws -bucket bucketname -timeout 1200 aws.raw
@@ -47,7 +47,7 @@ With the image created, we can now create an instance.
You won't be able to see the serial console output until after it has terminated.
```
linuxkit run aws aws
linuxkit run aws -security-group "<security_group_id>" aws
```
You can edit the AWS example to allow you to SSH to your instance in order to use it.

View File

@@ -0,0 +1,142 @@
# LinuxKit with bare metal on Equinix Metal
[Equinix Metal](http://deploy.equinix.com) is a bare metal hosting provider.
You will need to [create an Equinix Metal account] and a project to
put this new machine into. You will also need to [create an API key]
with appropriate read/write permissions to allow the image to boot.
[create an Equinix Metal account]:https://console.equinix.com/sign-up
[create an API key]:https://deploy.equinix.com/developers/docs/metal/identity-access-management/api-keys/
The `linuxkit run equinixmetal` command can mostly either be configured via
command line options or with environment variables. see `linuxkit run
equinixmetal --help` for the options and environment variables.
By default, `linuxkit run` will provision a new machine and remove it
once you are done. With the `-keep` option the provisioned machine
will not be removed. You can then use the `-device` option with the
device ID on subsequent `linuxkit run` invocations to re-use an
existing machine. These subsequent runs will update the iPXE data so
you can boot alternative kernels on an existing machine.
There is an example YAML file for [x86_64](../examples/equinixmetal.yml) and
an additional YAML for [arm64](../examples/equinixmetal.arm64.yml) servers
which provide both access to the serial console and via ssh and
configures bonding for network devices via metadata (if supported).
For x86_64 builds for Intel servers we strongly recommend adding
`ucode: intel-ucode.cpio` to the kernel section in the YAML. This
updates the Intel CPU microcode to the latest by prepending it to the
generated initrd file. The `ucode` entry is only recommended when
booting on baremetal. It should be omitted (but is harmless) when
building images to boot in VMs.
**Note**: The update of the iPXE configuration sometimes may take some
time and the first boot may fail. Hitting return on the console to
retry the boot typically fixes this.
## Boot
LinuxKit on Equinix Metal boots the `kernel+initrd` output from moby via
[iPXE](https://deploy.equinix.com/developers/docs/metal/operating-systems/custom-ipxe/)
which also requires a iPXE script. iPXE booting requires a HTTP server
on which you can store your images. The `-base-url` option specifies
the URL to a HTTP server from which `<name>-kernel`,
`<name>-initrd.img`, and `<name>-equinixmetal.ipxe` can be downloaded during
boot.
If you have your own HTTP server, you can use `linuxkit push equinixmetal`
to create the files (including the iPXE script) you need to make
available.
If you don't have a public HTTP server at hand, you can use the
`-serve` option. This will create a local HTTP server which can either
be run on another Equinix Metal machine or be made accessible with tools
like [ngrok](https://ngrok.com/).
For example, to boot the [example](../examples/platform-equinixmetal.yml)
with a local HTTP server:
```sh
linuxkit build platform-equinixmetal.yml
# run the web server
# run 'ngrok http 8080' in another window
METAL_AUTH_TOKEN=<API key> METAL_PROJECT_ID=<Project ID> \
linuxkit run equinixmetal -serve :8080 -base-url <ngrok url> equinixmetal
```
To boot a `arm64` image for Type 2a machine (`-machine baremetal_2a`)
you currently need to build using `linuxkit build equinixmetal.yml
equinixmetal.arm64.yml` and then un-compress both the kernel and the initrd
before booting, e.g:
```sh
mv equinixmetal-initrd.img equinixmetal-initrd.img.gz && gzip -d equinixmetal-initrd.img.gz
mv equinixmetal-kernel equinixmetal-kernel.gz && gzip -d equinixmetal-kernel.gz
```
The LinuxKit image can then be booted with:
```sh
METAL_API_TOKEN=<API key> METAL_PROJECT_ID=<Project ID> \
linuxkit run equinixmetal -machine baremetal_2a -serve :8080 -base-url -base-url <ngrok url> equinixmetal
```
Alternatively, `linuxkit push equinixmetal` will uncompress the kernel and
initrd images on arm machines (or explicitly via the `-decompress`
flag. There is also a `linuxkit serve` command which will start a
local HTTP server serving the specified directory.
**Note**: It may take several minutes to deploy a new server. If you
are attached to the console, you should see the BIOS and the boot
messages.
## Console
By default, `linuxkit run equinixmetal ...` will connect to the
Equinix Metal
[SOS ("Serial over SSH") console](https://deploy.equinix.com/developers/docs/metal/resilience-recovery/serial-over-ssh/). This
requires `ssh` access, i.e., you must have uploaded your SSH keys to
Equinix Metal beforehand.
You can exit the console vi `~.` on a new line once you are
disconnected from the serial, e.g. after poweroff.
**Note**: We also require that the Equinix Metal SOS host is in your
`known_hosts` file, otherwise the connection to the console will
fail. There is a Equinix Metal SOS host per zone.
You can disable the serial console access with the `-console=false`
command line option.
## Disks
At this moment the Linuxkit server boots from RAM, with no persistent
storage. We are working on adding persistent storage support on Equinix Metal.
## Networking
On the baremetal type 2a system (arm64 Cavium Thunder X) the network device driver does not get autoloaded by `mdev`. Please add:
```
- name: modprobe
image: linuxkit/modprobe:<hash>
command: ["modprobe", "nicvf"]
```
to your YAML files before any containers requiring the network to be up, e.g., the `dhcpcd` container.
Some Equinix Metal server types have bonded networks; the `metadata` package has support for setting
these up, and also for adding additional IP addresses.
## Integration services and Metadata
Equinix Metal supports [user state](https://deploy.equinix.com/developers/docs/metal/server-metadata/user-data/)
during system bringup, which enables the boot process to be more informative about the
current state of the boot process once the kernel has loaded but before the
system is ready for login.

View File

@@ -20,7 +20,7 @@ The HyperKit backend currently supports booting:
You need to select the boot method manually using the command line
options. The default is `kernel+initrd`. `kernel+squashfs` can be
selected using `-squashfs` and to boot a ISO with EFI you have to
specify `-iso -uefi`.
specify `--iso --uefi`.
The `kernel+initrd` uses a RAM disk for the root filesystem. If you
have RAM constraints or large images we recommend using either the

View File

@@ -8,7 +8,7 @@ manage the Hyper-V VMs.
Example:
```sh
linuxkit.exe run -disk size=1 linuxkit-efi.iso
linuxkit.exe run --disk size=1 linuxkit-efi.iso
```
The Hyper-V VM, by default, is named after the prefix of the ISO, ie

View File

@@ -11,17 +11,7 @@ Supported (tested) versions of the relevant OpenStack APIs are:
## Authentication
LinuxKit's support for OpenStack handles two ways of providing the endpoint and authentication details. You can either set the standard set of environment variables and the commands detailed below will inherit those, or you can explicitly provide them on the command-line as options to `push` and `run`. The examples below use the latter, but if you prefer the former then you'll need to set the following:
```shell
OS_USERNAME="admin"
OS_PASSWORD="xxx"
OS_TENANT_NAME="linuxkit"
OS_AUTH_URL="https://keystone.com:5000/v3"
OS_USER_DOMAIN_NAME=default
OS_CACERT=/path/to/cacert.pem
OS_INSECURE=false
```
LinuxKit's support for OpenStack includes configuring access to your cloud as detailed in the official [os-client-config](https://docs.openstack.org/os-client-config/latest/user/configuration.html) documentation.
## Push
@@ -40,32 +30,17 @@ Images generated with Moby can be uploaded into OpenStack's image service with `
```shell
./linuxkit push openstack \
-authurl=https://keystone.example.com:5000/v3 \
-username=admin \
-password=XXXXXXXXXXX \
-project=linuxkit \
-img-name=LinuxKitTest
./linuxkit.iso
```
If successful, this will return the image's UUID. If you've set your environment variables up as described above, this command can then be simplified:
```shell
./linuxkit push openstack \
-img-name "LinuxKitTest" \
~/Desktop/linuxkitmage.qcow2
```
## Run
Virtual machines can be launched using `linuxkit run openstack`. As an example:
```shell
linuxkit run openstack \
-authurl https://keystone.example.com:5000/v3 \
-username=admin \
-password=xxx \
-project=linuxkit \
-flavor=hotdog
-keyname=deadline_ed25519 \
-sec-groups=allow_ssh,nginx \
-network c5d02c5f-c625-4539-8aed-1dab3aa85a0a \

View File

@@ -1,151 +0,0 @@
# LinuxKit with bare metal on Packet
[Packet](http://packet.net) is a bare metal hosting provider.
You will need to [create a Packet account] and a project to
put this new machine into. You will also need to [create an API key]
with appropriate read/write permissions to allow the image to boot.
[create a Packet account]:https://app.packet.net/#/registration/
[create an API key]:https://help.packet.net/quick-start/api-integrations
Linuxkit is known to boot on the [Type 0]
and [Type 1] servers at Packet.
Support for other server types, including the [Type 2A] ARM server,
is a work in progress.
[Type 0]:https://www.packet.net/bare-metal/servers/type-0/
[Type 1]:https://www.packet.net/bare-metal/servers/type-1/
[Type 2A]:https://www.packet.net/bare-metal/servers/type-2a/
The `linuxkit run packet` command can mostly either be configured via
command line options or with environment variables. see `linuxkit run
packet --help` for the options and environment variables.
By default, `linuxkit run` will provision a new machine and remove it
once you are done. With the `-keep` option the provisioned machine
will not be removed. You can then use the `-device` option with the
device ID on subsequent `linuxkit run` invocations to re-use an
existing machine. These subsequent runs will update the iPXE data so
you can boot alternative kernels on an existing machine.
There is an example YAML file for [x86_64](../examples/packet.yml) and
an additional YAML for [arm64](../examples/packet.arm64.yml) servers
which provide both access to the serial console and via ssh and
configures bonding for network devices via metadata (if supported).
For x86_64 builds for Intel servers we strongly recommend adding
`ucode: intel-ucode.cpio` to the kernel section in the YAML. This
updates the Intel CPU microcode to the latest by prepending it to the
generated initrd file. The `ucode` entry is only recommended when
booting on baremetal. It should be omitted (but is harmless) when
building images to boot in VMs.
**Note**: The update of the iPXE configuration sometimes may take some
time and the first boot may fail. Hitting return on the console to
retry the boot typically fixes this.
## Boot
LinuxKit on Packet boots the `kernel+initrd` output from moby via
[iPXE](https://help.packet.net/technical/infrastructure/custom-ipxe)
which also requires a iPXE script. iPXE booting requires a HTTP server
on which you can store your images. The `-base-url` option specifies
the URL to a HTTP server from which `<name>-kernel`,
`<name>-initrd.img`, and `<name>-packet.ipxe` can be downloaded during
boot.
If you have your own HTTP server, you can use `linuxkit push packet`
to create the files (including the iPXE script) you need to make
available.
If you don't have a public HTTP server at hand, you can use the
`-serve` option. This will create a local HTTP server which can either
be run on another Packet machine or be made accessible with tools
like [ngrok](https://ngrok.com/).
For example, to boot the [example](../examples/packet.net)
with a local HTTP server:
```sh
linuxkit build packet.yml
# run the web server
# run 'ngrok http 8080' in another window
PACKET_API_KEY=<API key> PACKET_PROJECT_ID=<Project ID> \
linuxkit run packet -serve :8080 -base-url <ngrok url> packet
```
To boot a `arm64` image for Type 2a machine (`-machine baremetal_2a`)
you currently need to build using `linuxkit build packet.yml
packet.arm64.yml` and then un-compress both the kernel and the initrd
before booting, e.g:
```sh
mv packet-initrd.img packet-initrd.img.gz && gzip -d packet-initrd.img.gz
mv packet-kernel packet-kernel.gz && gzip -d packet-kernel.gz
```
The LinuxKit image can then be booted with:
```sh
PACKET_API_KEY=<API key> PACKET_PROJECT_ID=<Project ID> \
linuxkit run packet -machine baremetal_2a -serve :8080 -base-url -base-url <ngrok url> packet
```
Alternatively, `linuxkit push packet` will uncompress the kernel and
initrd images on arm machines (or explicitly via the `-decompress`
flag. There is also a `linuxkit serve` command which will start a
local HTTP server serving the specified directory.
**Note**: It may take several minutes to deploy a new server. If you
are attached to the console, you should see the BIOS and the boot
messages.
## Console
By default, `linuxkit run packet ...` will connect to the
Packet
[SOS ("Serial over SSH") console](https://help.packet.net/technical/networking/sos-rescue-mode). This
requires `ssh` access, i.e., you must have uploaded your SSH keys to
Packet beforehand.
You can exit the console vi `~.` on a new line once you are
disconnected from the serial, e.g. after poweroff.
**Note**: We also require that the Packet SOS host is in your
`known_hosts` file, otherwise the connection to the console will
fail. There is a Packet SOS host per zone.
You can disable the serial console access with the `-console=false`
command line option.
## Disks
At this moment the Linuxkit server boots from RAM, with no persistent
storage. We are working on adding persistent storage support on Packet.
## Networking
On the baremetal type 2a system (arm64 Cavium Thunder X) the network device driver does not get autoloaded by `mdev`. Please add:
```
- name: modprobe
image: linuxkit/modprobe:<hash>
command: ["modprobe", "nicvf"]
```
to your YAML files before any containers requiring the network to be up, e.g., the `dhcpcd` container.
Some Packet server types have bonded networks; the `metadata` package has support for setting
these up, and also for adding additional IP addresses.
## Integration services and Metadata
Packet supports [user state](https://help.packet.net/technical/infrastructure/user-state)
during system bringup, which enables the boot process to be more informative about the
current state of the boot process once the kernel has loaded but before the
system is ready for login.

View File

@@ -24,9 +24,9 @@ specified with `-arch` and currently accepts `x86_64`, `aarch64`, and
`linuxkit run qemu` can boot in different types of images:
- `kernel+initrd`: This is the default mode of `linuxkit run qemu` [`x86_64`, `arm64`, `s390x`]
- `kernel+squashfs`: `linuxkit run qemu -squashfs <path to directory>`. This expects a kernel and a squashfs image. [`x86_64`, `arm64`, `s390x`]
- `iso-bios`: `linuxkit run qemu -iso <path to iso>` [`x86_64`]
- `iso-efi`: `linuxkit run qemu -iso -uefi <path to iso>`. This looks in `/usr/share/ovmf/bios.bin` for the EFI firmware by default. Can be overwritten with `-fw`. [`x86_64`, `arm64`]
- `kernel+squashfs`: `linuxkit run qemu --squashfs <path to directory>`. This expects a kernel and a squashfs image. [`x86_64`, `arm64`, `s390x`]
- `iso-bios`: `linuxkit run qemu --iso <path to iso>` [`x86_64`]
- `iso-efi`: `linuxkit run qemu --iso --uefi <path to iso>`. This looks in `/usr/share/ovmf/bios.bin` for the EFI firmware by default. Can be overwritten with `-fw`. [`x86_64`, `arm64`]
- `qcow-bios`: `linuxkit run qemu disk.qcow2` [`x86_64`]
- `raw-bios`: `linuxkit run qemu disk.img` [`x86_64`]
- `aws`: `linuxkit run qemu disk.img` boots a raw AWS disk image. [`x86_64`]

View File

@@ -70,4 +70,11 @@ LinuxKit YAML file:
command: ["modprobe", "smsc95xx"]
```
For Raspberry Pi 3b+ use:
```
- name: netdev
image: linuxkit/modprobe:<hash>
command: ["modprobe", "lan78xx"]
```
**TODO:** Figure out why mdev is not loading the driver.

View File

@@ -3,14 +3,14 @@
This is a quick guide to run LinuxKit on Scaleway (only VPS x86_64 for now)
## Setup
Before you proceed it's recommanded that you set up the [Scaleway CLI](https://github.com/scaleway/scaleway-cli/)
and perform an `scw login`. This will create a `$HOME/.scwrc` file containing the required API token.
You can also use the `SCW_TOKEN` environment variable to set a Scaleway token.
The `-token` flag of the `linuxkit push scaleway` and `linuxkit run scaleway` can also be used.
You must create a Scaleway API Token (combination of Access and Secret Key), available at [Scaleway Console](https://console.scaleway.com/account/credentials), first.
Then you can use it either with the `SCW_ACCESS_KEY` and `SCW_SECRET_KEY` environment variables or the `-access-key` and `-secret-key` flags
of the `linuxkit push scaleway` and `linuxkit run scaleway` commands.
The environment variable `SCW_TARGET_REGION` is used to set the region (there is also the `-region` flag)
In addition, Organization ID value has to be set, either with the `SCW_DEFAULT_ORGANIZATION_ID` environment variable or the `-organization-id` command line flag.
The environment variable `SCW_DEFAULT_ZONE` is used to set the zone (there is also the `-zone` flag)
## Build an image
@@ -28,18 +28,18 @@ $ linuxkit build -format iso-efi examples/scaleway.yml
## Push image
You have to do `linuxkit push scaleway scaleway.iso` to upload it to your Scaleway images.
By default the image name is the name of the ISO file without the extension.
By default the image name is the name of the ISO file without the extension.
It can be overidden with the `-img-name` flag or the `SCW_IMAGE_NAME` environment variable.
**Note 1:** If an image (and snapshot) of the same name exists, it will be replaced.
**Note 2:** The image is region specific: if you create an image in `par1` you can't use is in `ams1`.
**Note 2:** The image is zone specific: if you create an image in `par1` you can't use is in `ams1`.
### Push process
Building a Scaleway image have a special process. Basically:
* Create an `image-builder` instance with an additional volume, based on Ubuntu Xenial (only x86_64 for now)
* Create an `image-builder` instance with an additional volume, based on Ubuntu Bionic (only x86_64 for now)
* Copy the ISO image on this instance
* Use `dd` to write the image on the additional volume (`/dev/vdb` by default)
* Terminate the instance, create a snapshot, and create an image from the snapshot

View File

@@ -0,0 +1,205 @@
# LinuxKit with Virtualization.Framework (macOS)
We recommend using LinuxKit in conjunction with
[Docker for Mac](https://docs.docker.com/docker-for-mac/install/). For
the time being it's best to be on the latest edge release. `linuxkit
run` uses [Virtualization.Framework](https://developer.apple.com/documentation/virtualization) and
[VPNKit](https://github.com/moby/vpnkit) and the edge release ships
with updated versions of both.
Alternatively, you can install Virtualization.Framework and VPNKit standalone and use it without Docker for Mac.
Virtualization.Framework is enabled on macOS only when built with CGO enabled.
## Boot
The Virtualization.Framework backend currently supports booting:
- `kernel+initrd` output from `linuxkit build`.
- `kernel+squashfs` output from `linuxkit build`.
- EFI ISOs using the EFI firmware.
You need to select the boot method manually using the command line
options. The default is `kernel+initrd`. `kernel+squashfs` can be
selected using `-squashfs` and to boot a ISO with EFI you have to
specify `--iso --uefi`.
The `kernel+initrd` uses a RAM disk for the root filesystem. If you
have RAM constraints or large images we recommend using either the
`kernel+squashfs` or the EFI ISO boot.
## Console
With `linuxkit run` on Virtualization.Framework the serial console is redirected to
stdio, providing interactive access to the VM. The output of the VM
can be re-directed to a file or pipe, but then stdin is not available.
Virtualization.Framework does not provide a console device.
## Disks
The Virtualization.Framework backend support configuring a persistent disk using the
standard `linuxkit` `-disk` syntax. Multiple disks are
supported and the disks are in raw format.
## Power management
Virtualization.Framework sends an ACPI power event when it receives SIGTERM to allow the VM to
shut down properly. The VM has to be able to receive ACPI events to initiate the
shutdown. This is provided by the [`acpid` package](../pkg/acpid). An example
is available in the [Docker for Mac example](../examples/docker-for-mac.yml).
## Networking
By default, `linuxkit run` creates a VM with a single network
interface which, logically, is attached to a L2 bridge. The bridge
also has the VM used by Docker for Mac attached to it. This means that
the LinuxKit VMs, created with `linuxkit run`, can be accessed from
containers running on Docker for Mac.
The LinuxKit VMs have IP addresses on the `192.168.65.0/24` subnet
assigned by a DHCP server part of VPNKit. `192.168.65.1` is reserved
for VPNKit as the default gateway and `192.168.65.2` is used by the
Docker for Mac VM.
By default, LinuxKit VMs get incrementally increasing IP addresses,
but you can assign a fixed IP address with `linuxkit run -ip`. It's
best to choose an IP address from the DHCP address range above, but
care must be taken to avoid clashes of IP address.
*NOTE:* The LinuxKit VMs can *not* be directly accessed by IP address
from the host. Enabling this would require use of the macOS `vmnet`
framework, which requires the VMs to run as `root`. We don't consider
this option palatable, and provide alternative options to access the
VMs over the network below.
### Accessing network services
Virtualization.Framework offers a number of ways for accessing network services
running inside the LinuxKit VM from the host. These depend on the
networking mode selected via `-networking`. The default mode is
`vmnet`, where it sets up a network bridge. We intend to add support for
`docker-for-mac`, where the same VPNkit instance is shared between
LinuxKit VMs and the VM running as part of Docker for Mac, in the future.
#### Access from the Docker for Mac VM (`-networking docker-for-mac`)
The simplest way to access networking services exposed by a LinuxKit
VM is to use a Docker for Mac container. For example, to access an ssh
server in a LinuxKit VM, create a ssh client container from:
```
FROM alpine:edge
RUN apk add --no-cache openssh-client
```
and then run
```
docker build -t ssh .
docker run --rm -ti -v ~/.ssh:/root/.ssh ssh ssh <IP address of VM>
```
#### Forwarding ports with `socat` (`-networking docker-for-mac`)
A `socat` container on Docker for Mac can be used to proxy between the
LinuxKit VM's ports and localhost. For example, to expose the redis
port from the [RedisOS example](../examples/redis-os.yml), use this
Dockerfile:
```
FROM alpine:edge
RUN apk add --no-cache socat
ENTRYPOINT [ "/usr/bin/socat" ]
```
and then:
```
docker build -t socat .
docker run --rm -t -d -p 6379:6379 socat tcp-listen:6379,reuseaddr,fork tcp:<IP address of VM>:6379
```
#### Port forwarding with VPNKit (`-networking docker-for-mac`)
There is **experimental** support for exposing selected ports of the
guest on `localhost` using the `-publish` command line option. For
example, using `-publish 2222:22/tcp` exposes the guest TCP port 22 on
localhost on port 2222. Multiple `-publish` options can be
specified. For example, the image build from the [`sshd
example`](../examples/sshd.yml) can be started with:
```
linuxkit run -publish 2222:22/tcp sshd
```
and then you can log into the LinuxKit VM with `ssh -p 2222
root@localhost`.
Note, this mode is **experimental** and may cause the VPNKit instance
shared with Docker for Mac being confused about which ports are
currently in use, in particular if the LinuxKit VM does not exit
gracefully. This can typically be fixed by restarting Docker for Mac.
#### Port forwarding with VPNKit (`-networking vpnkit`)
An alternative to the previous method is to start your own copy of
`vpnkit` (or connect to an already running instance). This can be done
using the `-networking vpnkit` command line option.
VPNKit uses a 9P mount in `/port` for coordination between
components. The first VM on a VPNKit instance currently needs mount
the 9P filesystem and also needs to run the `vpnkit-forwarder` service
to enable port forwarding to localhost. A full example with `vpnkit`
forwarding of `sshd` is available in
[examples/vpnkit-forwarder.yml](/examples/vpnkit-forwarder.yml).
To run this example with its own instance of VPNKit, use:
```
linuxkit run -networking vpnkit -publish 2222:22/tcp vpnkit-forwarder
```
You can then access it via:
```
ssh -p 2222 root@localhost
```
More details about the VPNKit forwarding mechanism is available in the
[VPNKit
documentation](https://github.com/moby/vpnkit/blob/master/docs/ports.md#signalling-from-the-vm-to-the-host).
## Integration services and Metadata
There are no special integration services available for Virtualization.Framework, but
there are a number of packages, such as `vsudd`, which enable
tighter integration of the VM with the host (see below).
The Virtualization.Framework backend also allows passing custom userdata into the
[metadata package](./metadata.md) using either the `-data` or `-data-file` command-line
option. This attaches a CD device with the data on.
### `vsudd` unix domain socket forwarding
The [`vsudd` package](/pkg/vsudd) provides a daemon that exposes unix
domain socket inside the VM to the host via virtio or Hyper-V sockets.
With Virtualization.Framework, the virtio sockets can be exposed as unix domain
sockets on the host, enabling access to other daemons, like
`containerd` and `dockerd`, from the host. An example configuration
file is available in [examples/vsudd-containerd.yml](/examples/vsudd-containerd.yml).
After building the example, run it with `linuxkit run virtualization.framework
-vsock-ports 2374 vsudd`. This will create a unix domain socket in the state directory that maps to the `containerd` control socket. The socket is called `guest.00000946`.
If you install the `ctr` tool on the host you should be able to access the
`containerd` running in the VM:
```
$ go get -u -ldflags -s github.com/containerd/containerd/cmd/ctr
...
$ ctr -a vsudd-state/guest.00000946 list
ID IMAGE PID STATUS
vsudd 466 RUNNING
```

View File

@@ -37,207 +37,18 @@ As a starting point you have to be on the update to date master branch
and be in the root directory of your local git clone. You should also
have the same setup on all build machines used.
To make the release steps below cut-and-pastable, define the following
environment variables:
```sh
LK_RELEASE=v0.4
LK_ROOT=$(pwd)
LK_REMOTE=origin
```
On one of the build machines (preferably the `x86_64` machine), create
the release branch:
```sh
git checkout -b rel_$LK_RELEASE
```
Also make sure that you have a recent version of the `linuxkit`
utility in the path. Either a previous release or compiled from
master.
### Update `linuxkit/alpine`
This step is not necessarily required if the alpine base image has
recently been updated, but it is good to pick up any recent bug
fixes. Updating the alpine base image is different to other packages
and it must be performed on `x86_64` first:
fixes. Follow the process in [alpine-base-update.md](./alpine-base-update.md)
```sh
cd $LK_ROOT/tools/alpine
make push
```
There are several important notes to consider when updating alpine base:
This will update `linuxkit/alpine` and change the `versions.x86_64`
file. Check it in and push to GitHub:
```sh
git commit -a -s -m "tools/alpine: Update to latest"
git push $LK_REMOTE rel_$LK_RELEASE
```
Now, on each build machine for the other supported architectures, in turn:
```sh
git fetch
git checkout rel_$LK_RELEASE
cd $LK_ROOT/tools/alpine
make push
git commit -a --amend
git push --force $LK_REMOTE rel_$LK_RELEASE
```
With all supported architectures updated, head back to the `x86_64`
machine and update the release branch:
```sh
git fetch && git reset --hard $LK_REMOTE/rel_$LK_RELEASE
```
Stash the tag of the alpine base image in an environment variable:
```sh
LK_ALPINE=$(head -1 alpine/versions.x86_64 | sed 's,[#| ]*,,' | sed 's,\-.*$,,' | cut -d':' -f2)
```
### Update tools packages
On the `x86_64` machine, get the `linuxkit/alpine` tag and update the
other packages:
```sh
cd $LK_ROOT/tools
../scripts/update-component-sha.sh --image linuxkit/alpine:$LK_ALPINE
git checkout alpine/versions.aarch64 alpine/versions.s390x
git commit -a -s -m "tools: Update to the latest linuxkit/alpine"
git push $LK_REMOTE rel_$LK_RELEASE
make forcepush
```
Note, the `git checkout` reverts the changes made by
`update-component-sha.sh` to files which are accidentally updated and
the `make forcepush` will skip building the alpine base.
Then, on the other build machines in turn:
```sh
cd $LK_ROOT/tools
git fetch && git reset --hard $LK_REMOTE/rel_$LK_RELEASE
make forcepush
```
Back on the `x86_64` machine:
```sh
cd $LK_ROOT
for img in $(cd tools; make show-tag); do
./scripts/update-component-sha.sh --image $img
done
git commit -a -s -m "Update use of tools to latest"
```
### Update test packages
Next, we update the test packages to the updated alpine base on the `x86_64` system:
```sh
cd $LK_ROOT/test/pkg
../../scripts/update-component-sha.sh --image linuxkit/alpine:$LK_ALPINE
git commit -a -s -m "tests: Update packages to the latest linuxkit/alpine"
git push $LK_REMOTE rel_$LK_RELEASE
make push
```
Then, on the other build machines in turn:
```sh
cd $LK_ROOT/test/pkg
git fetch && git reset --hard $LK_REMOTE/rel_$LK_RELEASE
make push
```
Back on the `x86_64` machine:
```sh
cd $LK_ROOT
for img in $(cd test/pkg; make show-tag); do
./scripts/update-component-sha.sh --image $img
done
git commit -a -s -m "Update use of test packages to latest"
```
Some tests also use `linuxkit/alpine`. Update them as well:
```sh
cd $LK_ROOT/test/cases
../../scripts/update-component-sha.sh --image linuxkit/alpine:$LK_ALPINE
git commit -a -s -m "tests: Update tests cases to the latest linuxkit/alpine"
```
### Update packages
Next, we update the LinuxKit packages. This is really the core of the
release. The other steps above are just there to ensure consistency
across packages.
```sh
cd $LK_ROOT/pkg
../scripts/update-component-sha.sh --image linuxkit/alpine:$LK_ALPINE
git commit -a -s -m "pkgs: Update packages to the latest linuxkit/alpine"
git push $LK_REMOTE rel_$LK_RELEASE
```
Most of the packages are build from `linuxkit/alpine` and source code
in the `linuxkit` repository, but some packages wrap external
tools. The time of a release is a good opportunity to check if there
have been updates. Specifically:
- `pkg/cadvisor`: Check for [new releases](https://github.com/google/cadvisor/releases).
- `pkg/firmware` and `pkg/firmware-all`: Use latest commit from [here](https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git).
- `pkg/node_exporter`: Check for [new releases](https://github.com/prometheus/node_exporter/releases).
- Check [docker hub](https://hub.docker.com/r/library/docker/tags/) for the latest `dind` tags. and update `examples/docker.yml`, `examples/docker-for-mac.yml`, `examples/cadvisor.yml`, and `test/cases/030_security/000_docker-bench/test.yml` if necessary.
The build/push the packages:
```sh
cd $LK_ROOT/pkg
make OPTIONS="-release $LK_RELEASE" push
```
Note, the `OPTIONS` argument. This adds the release tag to the
packages.
Then, on the other build machines in turn:
```sh
cd $LK_ROOT/pkg
git fetch && git reset --hard $LK_REMOTE/rel_$LK_RELEASE
make OPTIONS="-release $LK_RELEASE" push
```
Update the package tags in the YAML files:
```sh
cd $LK_ROOT
for img in $(cd pkg; make show-tag | cut -d ':' -f1); do
./scripts/update-component-sha.sh --image $img:$LK_RELEASE
done
git commit -a -s -m "Update package tags to $LK_RELEASE"
```
* `LK_BRANCH` is set to `rel_$LK_RELEASE`, when cutting a release, for e.g. `LK_BRANCH=rel_v0.9`
* It not necessarily required to update the alpine base image if it has recently been updated, but it is good to pick up any recent bug
fixes. However, you do need to update the tools, packages and tests.
* Releases are a particularly good time to check for updates in wrapped external dependencies, as highlighted in [alpine-base-update.md#External Tools](./alpine-base-update.md#External_Tools)
### Final preparation steps
@@ -275,5 +86,3 @@ This completes the release, but you are not done, one more step is required.
Create a PR which bumps the version number in the top-level `Makefile`
to `$LK_RELEASE+` to make sure that the version reported by `linuxkit
version` gets updated.

72
docs/sbom.md Normal file
View File

@@ -0,0 +1,72 @@
# Software Bill-of-Materials
LinuxKit bootable images are composed of existing OCI images.
OCI images, when built, often are scanned to create a
software bill-of-materials (SBoM). The buildkit builder
system itself contains the [ability to integrate SBoM scanning and generation into the build process](https://docs.docker.com/build/attestations/sbom/).
When LinuxKit composes an operating system image using `linuxkit build`,
it will, by default, combine the SBoMs of all the OCI images used to create
the final image.
It looks for SBoMs in the following locations:
* [image attestation storage](https://docs.docker.com/build/attestations/attestation-storage/)
Future support for [OCI Image-Spec v1.1 Artifacts](https://github.com/opencontainers/image-spec)
is under consideration, and will be reviewed when it is generally available.
When building packages with `linuxkit pkg build`, it also has the ability to generate an SBoM for the
package, which later can be consumed by `linuxkit build`.
## Consuming SBoM From Packages
When `linuxkit build` is run, it does the following for dealing with SBoMs:
1. For each OCI image that it processes:
1. check if the image contains an SBoM attestation; it not, skip this step.
1. Retrieve the SBoM attestation.
1. After generating the root filesystem, combine all of the individual SBoMs into a single unified SBoM.
1. Save the output single SBoM into the root of the image as `sbom.spdx.json`.
Currently, only SPDX json format is supported.
### SBoM Scanner and Output Format
By default, linuxkit combines the SBoMs into a file with output format SPDX json,
and the file saved to the filename `sbom.spdx.json`.
In addition, in order to assist with reproducible builds, the creation date/time of the SBoM is
a fixed date/time set by linuxkit, rather than the current date/time. Note, however, that even
with a fixed date/time, reproducible builds depends on reproducible SBoMs on the underlying container images.
This is not always the case, as the unique IDs for each package and file might be deterministic, but it might not.
This can be overridden by using the CLI flags:
* `--no-sbom`: do not find and consolidate the SBoMs
* `--sbom-output <filename>`: the filename to save the output to in the image.
* `--sbom-current-time true|false`: whether or not to use the current time for the SBoM creation date/time (default `false`)
### Disable SBoM for Images
To disable SBoM generation when running `linuxkit build`, use the CLI flag `--sbom false`.
## Generating SBoM For Packages
When `linuxkit pkg build` is run, by default it enables generating an SBoM using the
[SBoM generating capabilities of buildkit](https://www.docker.com/blog/generate-sboms-with-buildkit/).
This means that it inherits all of those capabilities as well, and saves the SBoM in the same location,
as an attestation on the image.
### SBoM Scanner
By default, buildkit runs [syft](http://hub.docker.com/r/anchore/syft) with output format SPDX json,
specifically via its integration image [buildkit-syft-scanner](docker.io/docker/buildkit-syft-scanner).
You can select a different image to run a scanner, provided it complies with the
[buildkit SBoM protocol](https://github.com/moby/buildkit/blob/master/docs/attestations/sbom-protocol.md),
by passing the CLI flag `--sbom-scanner <image>`.
### Disable SBoM for Packages
To disable SBoM generation when running `linuxkit pkg build`, use the CLI flag `--sbom-scanner=false`.

View File

@@ -50,8 +50,6 @@ and namespaced separately from the host as appropriate.
LinuxKit's build process heavily leverages Docker images for packaging. Of note, all intermediate build images
are referenced by digest to ensures reproducibility across LinuxKit builds. Tags are mutable, and thus subject to override
(intentionally or maliciously) - referencing by digest mitigates classes of registry poisoning attacks in LinuxKit's buildchain.
Certain images, such as the kernel image, will be signed by LinuxKit maintainers using [Docker Content Trust](https://docs.docker.com/engine/security/trust/content_trust/),
which guarantees authenticity, integrity, and freshness of the image.
Moreover, LinuxKit's build process leverages [Alpine Linux's](https://alpinelinux.org/) hardened userspace tools such as
Musl libc, and compiler options that include `-fstack-protector` and position-independent executable output. Go binaries

View File

@@ -1,49 +0,0 @@
# Signing LinuxKit Hub Images
We sign and verify LinuxKit component images, such as `linuxkit/kernel`, using [Notary](https://github.com/docker/notary).
This document details the process for setting this up, intended for maintainers.
## Initialize a New Repository
Let's say we're publishing a new `linuxkit/foo` image that we want to sign and verify in LinuxKit.
We first need to initialize the Notary repository:
```
notary -s https://notary.docker.io -d ~/.docker/trust init -p docker.io/linuxkit/foo
```
This command will generate some private keys in `~/.docker/trust` and ask you for passphrases such that they are encrypted at rest.
All linuxkit repositories are currently using the same root key so we can pin trust on key ID `1908a0cf4f55710138e63f65ab2a97e8fa3948e5ca3b8857a29f235a3b61ea1b`.
We'll also let the notary server take control of the snapshot key, for easier delegation collaboration:
```
notary -s https://notary.docker.io -d ~/.docker/trust key rotate docker.io/linuxkit/foo snapshot -r
```
## Add maintainers to delegation roles:
Maintainers are to sign with `delegation` keys, which are adminstered by a non-root key.
Thusly, they are easily rotated without having to bring the root key online.
Additionally, maintainers can be added to separate roles for auditing purposes: the current setup is to add maintainers to both the `targets/releases` role that is intended
for release consumption, as well as an individual `targets/<maintainer_name>` role for auditing.
Docker will automatically sign into both roles when pushing with Docker Content Trust.
Here's what the command looks like to add all maintainers to the `targets/releases` role:
```
notary -s https://notary.docker.io -d ~/.docker/trust delegation add -p docker.io/linuxkit/foo targets/releases alice.crt bob.crt charlie.crt --all-paths
```
Here's what the commands look like to add all maintainers to their individually named roles:
```
notary -s https://notary.docker.io -d ~/.docker/trust delegation add -p docker.io/linuxkit/foo targets/alice alice.crt --all-paths
notary -s https://notary.docker.io -d ~/.docker/trust delegation add -p docker.io/linuxkit/foo targets/bob bob.crt --all-paths
notary -s https://notary.docker.io -d ~/.docker/trust delegation add -p docker.io/linuxkit/foo targets/charlie charlie.crt --all-paths
```
## Maintainers import their private keys
It's important that each maintainer imports their private key into Docker's key storage, so Docker can use it to sign:
```
notary -d ~/.docker/trust key import alice.key -r user
```

View File

@@ -50,7 +50,7 @@ You must copy an existing `group.sh` in to this folder and adjust as required or
[example](https://github.com/linuxkit/rtf/tree/master/etc/templates/group.sh)
To write your test, create a folder within the group using the `000_name` format as described above.
You should then copy an existing `test.sh` in to this directory and amdend it,
You should then copy an existing `test.sh` in to this directory and amend it,
or start from an [example](http://github.com/linuxkit/rtf/tree/master/etc/templates/test.sh)
If your test can only be run when certain conditions are met, you should consider adding a label to

36
docs/troubleshooting.md Normal file
View File

@@ -0,0 +1,36 @@
# Troubleshooting
This document contains a list of known issues related to using, building or testing linuxkit.
## Images
## Packages
### Invalid MediaType
**Problem**
```
Error: error building and pushing "linuxkit/mkimage-iso-efi-initrd:0e66171ffde9bb735b0e014f811f9626fc8b9bc9": PUT https://index.docker.io/v2/linuxkit/mkimage-iso-efi-initrd/manifests/0e66171ffde9bb735b0e014f811f9626fc8b9bc9: MANIFEST_INVALID: manifest invalid; if present, mediaType in image index should be 'application/vnd.oci.image.index.v1+json' not 'application/vnd.docker.distribution.manifest.list.v2+json'
```
The above message is caused by registries, notably docker hub, refusing to accept indexes with the
docker media type of `application/vnd.docker.distribution.manifest.list.v2+json`, rather than the OCI
one `application/vnd.oci.image.index.v1+json`.
Linuxkit _does_ use the OCI media type, however, if the image _already_ exists in the registry, linuxkit will
pull the index down, update it, and push it back up. The above error occurs because the index that exists in
the hub, the one that is pulled down, has the older media type, from when the registry accepted it.
**Solution**
The solution is to force an entirely new build, which will generate the images and index with the correct media
type.
```
linuxkit pkg build --force <path>
linuxkit pkg push <path>
```
## Testing

View File

@@ -2,16 +2,24 @@ Vendoring
=========
The Go code in this repo depends on a number of Go libraries.
These are vendored in to the `src/cmd/linuxkit/vendor` directory using [`vndr`](https://github.com/lk4d4/vndr)
The `vendor.conf` file contains a list of the repositories and the git SHA or branch name that should be vendored
These are vendored in to the `src/cmd/linuxkit/vendor` directory using [go modules](https://golang.org/ref/mod)
## Updating dependencies
Update `src/cmd/linuxkit/vendor.conf` with the dependency that you would like to add.
Details of usage of the `vndr` tool and the format of `vendor.conf` can be found [here](https://github.com/LK4D4/vndr/blob/master/README.md)
Go modules should install any required dependencies to `go.mod` and `go.sum` when running normal go commands such as `go build`,
`go vet`, etc. To install specific versions, use `go get <dependency>@<reference>`.
Once done, you must run the `vndr` tool to add the necessary files to the `vendor` directory.
The easiest way to do this is in a container.
See the [go modules](https://golang.org/ref/mod) documentation for more information.
LinuxKit vendors all dependencies to make it completely self-contained. Once `go.mod` is up to date,
you must update the dependencies, either using your local go toolchain or in a container.
## Updating locally
To vendor all dependencies:
1. `cd src/cmd/linuxkit`
1. Run `go mod vendor`
## Updating in a container
@@ -21,39 +29,7 @@ To update all dependencies:
docker run -it --rm \
-v $(pwd):/go/src/github.com/linuxkit/linuxkit \
-w /go/src/github.com/linuxkit/linuxkit/src/cmd/linuxkit \
--entrypoint /go/bin/vndr \
linuxkit/go-compile:8de0e27a38498389e43b3a5b520d943a2b3be5ba
```
To update a single dependency:
```
docker run -it --rm \
-v $(pwd):/go/src/github.com/linuxkit/linuxkit \
-w /go/src/github.com/linuxkit/linuxkit/src/cmd/linuxkit \
--entrypoint /go/bin/vndr \
linuxkit/go-compile:8de0e27a38498389e43b3a5b520d943a2b3be5ba
github.com/docker/docker
```
## Updating locally
First you must install `vndr` and ensure that `$GOPATH/bin` is on your `$PATH`
```
go get -u github.com/LK4D4/vndr
```
To update all dependencies:
```
cd src/cmd/linuxkit
vndr
```
To update a single dependency:
```
cd /src/cmd/linuxkit
vndr github.com/docker/docker
--entrypoint=go
linuxkit/go-compile:7b1f5a37d2a93cd4a9aa2a87db264d8145944006
mod vendor
```

View File

@@ -3,7 +3,7 @@
The `linuxkit build` command assembles a set of containerised components into in image. The simplest
type of image is just a `tar` file of the contents (useful for debugging) but more useful
outputs add a `Dockerfile` to build a container, or build a full disk image that can be
booted as a linuxKit VM. The main use case is to build an assembly that includes
booted as a linuxkit VM. The main use case is to build an assembly that includes
`containerd` to run a set of containers, but the tooling is very generic.
The yaml configuration specifies the components used to build up an image . All components
@@ -11,12 +11,24 @@ are downloaded at build time to create an image. The image is self-contained and
so it can be tested reliably for continuous delivery.
Components are specified as Docker images which are pulled from a registry during build if they
are not available locally. The Docker images are optionally verified with Docker Content Trust.
are not available locally. See [image-cache](./image-cache.md) for more details on local caching.
The Docker images are optionally verified with Docker Content Trust.
For private registries or private repositories on a registry credentials provided via
`docker login` are re-used.
`docker login` are re-used.
The configuration file is processed in the order `kernel`, `init`, `onboot`, `onshutdown`,
`services`, `files`. Each section adds files to the root file system. Sections may be omitted.
## Sections
The configuration file is processed in the order:
1. `kernel`
1. `init`
1. `volumes`
1. `onboot`
1. `onshutdown`
1. `services`
1. `files`
Each section adds files to the root file system. Sections may be omitted.
Each container that is specified is allocated a unique `uid` and `gid` that it may use if it
wishes to run as an isolated user (or user namespace). Anywhere you specify a `uid` or `gid`
@@ -39,7 +51,7 @@ files:
mode: "0600"
```
## `kernel`
### `kernel`
The `kernel` section is only required if booting a VM. The files will be put into the `boot/`
directory, where they are used to build bootable images.
@@ -49,6 +61,9 @@ which should contain a `kernel` file that will be booted (eg a `bzImage` for `am
called `kernel.tar` which is a tarball that is unpacked into the root, which should usually
contain a kernel modules directory. `cmdline` specifies the kernel command line options if required.
The contents of `cmdline` are passed to the kernel as-is. There are several special values that are
used to control the behaviour of linuxkit packages. See [kernel command line options](../docs/cmdline.md).
To override the names, you can specify the kernel image name with `binary: bzImage` and the tar image
with `tar: kernel.tar` or the empty string or `none` if you do not want to use a tarball at all.
@@ -56,7 +71,7 @@ Kernel packages may also contain a cpio archive containing CPU microcode which n
the initrd. To select this option, recommended when booting on bare metal, add `ucode: intel-ucode.cpio`
to the kernel section.
## `init`
### `init`
The `init` section is a list of images that are used for the `init` system and are unpacked directly
into the root filesystem. This should bring up `containerd`, start the system and daemon containers,
@@ -64,14 +79,14 @@ and set up basic filesystem mounts. in the case of a LinuxKit system. For ease o
modification `runc` and `containerd` images, which just contain these programs are added here
rather than bundled into the `init` container.
## `onboot`
### `onboot`
The `onboot` section is a list of images. These images are run before any other
images. They are run sequentially and each must exit before the next one is run.
These images can be used to configure one shot settings. See [Image
specification](#image-specification) for a list of supported fields.
## `onshutdown`
### `onshutdown`
This is a list of images to run on a clean shutdown. Note that you must not rely on these
being run at all, as machines may be be powered off or shut down without having time to run
@@ -80,18 +95,149 @@ run and when they are not. Most systems are likely to be "crash only" and not ha
but you can attempt to deregister cleanly from a network service here, rather than relying
on timeouts, for example.
## `services`
### `services`
The `services` section is a list of images for long running services which are
run with `containerd`. Startup order is undefined, so containers should wait
on any resources, such as networking, that they need. See [Image
specification](#image-specification) for a list of supported fields.
## `files`
### `volumes`
The volumes section is a list of named volumes that can be used by other containers,
including those in `services`, `onboot` and `onshutdown`. The volumes are created in a directory
chosen by linuxkit at build-time. The volumes then can be referenced by other containers and
mounted into them.
Volumes can be in one of several formats:
* Blank directory: This is the default, and is an empty directory that is created at build-time. It is an overlayfs mount, and can be shared among multiple containers.
* Image laid out as filesystem: The contents of the image are used to populate the volume. Default format when an image is provided.
* Image as OCI v1-layout: The image is used as an [OCI v1-layout](https://github.com/opencontainers/image-spec/blob/main/image-layout.md). Indicated by `format: oci`.
Examples of each are given later in this section.
The `volumes` section can declare a volume to be read-write or read-only. If the volume is read-write,
a volume that is mounted into a container can be mounted read-only or read-write. If the volume is read-only,
it can be mounted into a container read-only; attempting to do so read-write will generate a build-time error.
By default, volumes are created read-write, and are mounted read-write.
Volume names **must** be unique, and must contain only lower-case alphanumeric characters, hyphens, and
underscores.
#### Samples of `volumes`
##### Empty directory
Yaml showing both read-only and read-write:
```yml
volumes:
- name: dira
readonly: true
- name: dirb
readonly: true
```
Contents:
```sh
$ cd dir && ls -la
drwxr-xr-x 19 root wheel 608 Sep 30 15:03 .
drwxrwxrwt 130 root wheel 4160 Sep 30 15:03 ..
```
In the above example:
* `dira` is empty and is read-only.
* `volb` is empty and is read-write.
##### Image directory
Yaml showing both read-only and read-write:
```yml
volumes:
- name: vola
image: alpine:latest
readonly: true
- name: volb
image: alpine:latest
format: filesystem # optional, as this is the default format
readonly: false
```
In the above example:
* `vola` is populated by the contents of `alpine:latest` and is read-only.
* `volb` is populated by the contents of `alpine:latest` and is read-write.
Contents:
```sh
$ cd dir && ls -la
drwxr-xr-x 19 root wheel 608 Sep 30 15:03 .
drwxrwxrwt 130 root wheel 4160 Sep 30 15:03 ..
drwxr-xr-x 84 root wheel 2688 Sep 6 14:34 bin
drwxr-xr-x 2 root wheel 64 Sep 6 14:34 dev
drwxr-xr-x 37 root wheel 1184 Sep 6 14:34 etc
drwxr-xr-x 2 root wheel 64 Sep 6 14:34 home
drwxr-xr-x 13 root wheel 416 Sep 6 14:34 lib
drwxr-xr-x 5 root wheel 160 Sep 6 14:34 media
drwxr-xr-x 2 root wheel 64 Sep 6 14:34 mnt
drwxr-xr-x 2 root wheel 64 Sep 6 14:34 opt
dr-xr-xr-x 2 root wheel 64 Sep 6 14:34 proc
drwx------ 2 root wheel 64 Sep 6 14:34 root
drwxr-xr-x 2 root wheel 64 Sep 6 14:34 run
drwxr-xr-x 63 root wheel 2016 Sep 6 14:34 sbin
drwxr-xr-x 2 root wheel 64 Sep 6 14:34 srv
drwxr-xr-x 2 root wheel 64 Sep 6 14:34 sys
drwxr-xr-x 2 root wheel 64 Sep 6 14:34 tmp
drwxr-xr-x 7 root wheel 224 Sep 6 14:34 usr
drwxr-xr-x 13 root wheel 416 Sep 6 14:34 var
```
##### Image OCI Layout
Yaml showing both read-only and read-write, and both all architectures and a limited subset:
```yml
volumes:
- name: volo
image: alpine:latest
format: oci
readonly: true
- name: volp
image: alpine:latest
readonly: false
format: oci
platforms:
- linux/amd64
```
In the above example:
* `volo` is populated by the contents of `alpine:latest` as an OCI v1-layout for all architectures and is read-only.
* `volb` is populated by the contents of `alpine:latest` as an OCI v1-layout just for linux/amd64 and is read-write.
##### Volumes in `services`
Sample usage of volumes in `services` section:
```yml
services:
- name: myservice
image: alpine:latest
binds:
- volA:/mnt/volA:ro
- volB:/mnt/volB
```
### `files`
The files section can be used to add files inline in the config, or from an external file.
```
```yml
files:
- path: dir
directory: true
@@ -117,34 +263,27 @@ user's home directory.
In addition there is a `metadata` option that will generate the file. Currently the only value
supported here is `"yaml"` which will output the yaml used to generate the image into the specified
file:
```
```yml
- path: etc/linuxkit.yml
metadata: yaml
```
Note that if you use templates in the yaml, the final resolved version will be included in the image,
and not the original input template.
Because a `tmpfs` is mounted onto `/var`, `/run`, and `/tmp` by default, the `tmpfs` mounts will shadow anything specified in `files` section for those directories.
## `trust`
The `trust` section specifies which build components are to be cryptographically verified with
[Docker Content Trust](https://docs.docker.com/engine/security/trust/content_trust/) prior to pulling.
Trust is a central concern in any build system, and LinuxKit's is no exception: Docker Content Trust provides authenticity,
integrity, and freshness guarantees for the components it verifies. The LinuxKit maintainers are responsible for signing
`linuxkit` components, though collaborators can sign their own images with Docker Content Trust or [Notary](https://github.com/docker/notary).
- `image` lists which individual images to enforce pulling with Docker Content Trust.
The image name may include tag or digest, but the matching also succeeds if the base image name is the same.
- `org` lists which organizations for which Docker Content Trust is to be enforced across all images,
for example `linuxkit` is the org for `linuxkit/kernel`
## Image specification
Entries in the `onboot` and `services` sections specify an OCI image and
Entries in the `onboot`, `onshutdown`, `volumes` and `services` sections specify an OCI image and
options. Default values may be specified using the `org.mobyproject.config` image label.
For more details see the [OCI specification](https://github.com/opencontainers/runtime-spec/blob/master/spec.md).
If the `org.mobylinux.config` label is set in the image, that specifies default values for these fields if they
are not set in the yaml file. You can override the label by setting the value, or setting it to be empty to remove
are not set in the yaml file. While most fields are _replaced_ if they are specified in the yaml file,
some support _add_ via the format `<field>.add`; see below.
You can override the label entirely by setting the value, or setting it to be empty to remove
the specification for that value in the label.
If you need an OCI option that is not specified here please open an issue or pull request as the list is not yet
@@ -159,6 +298,7 @@ bind mounted into a container.
extracted from this so they need not be filled in.
- `capabilities` the Linux capabilities required, for example `CAP_SYS_ADMIN`. If there is a single
capability `all` then all capabilities are added.
- `capabilities.add` the Linux capabilities required, but these are added to the defaults, rather than overriding them.
- `ambient` the Linux ambient capabilities (capabilities passed to non root users) that are required.
- `mounts` is the full form for specifying a mount, which requires `type`, `source`, `destination`
and a list of `options`. If any fields are omitted, sensible defaults are used if possible, for example
@@ -166,6 +306,7 @@ bind mounted into a container.
can be replaced by specifying a mount with new options here at the same mount point.
- `binds` is a simpler interface to specify bind mounts, accepting a string like `/src:/dest:opt1,opt2`
similar to the `-v` option for bind mounts in Docker.
- `binds.add` is a simpler interface to specify bind mounts, but these are added to the defaults, rather than overriding them.
- `tmpfs` is a simpler interface to mount a `tmpfs`, like `--tmpfs` in Docker, taking `/dest:opt1,opt2`.
- `command` will override the command and entrypoint in the image with a new list of commands.
- `env` will override the environment in the image with a new environment list. Specify variables as `VAR=value`.
@@ -210,7 +351,8 @@ which specifies some actions to take place when the container is being started.
- `namespace` overrides the LinuxKit default containerd namespace to put the container in; only applicable to services.
An example of using the `runtime` config to configure a network namespace with `wireguard` and then run `nginx` in that namespace is shown below:
```
```yml
onboot:
- name: dhcpcd
image: linuxkit/dhcpcd:<hash>
@@ -240,6 +382,31 @@ services:
- CAP_DAC_OVERRIDE
```
## `devices`
To access the console, it's necessary to explicitly add a "device" definition, for example:
```
devices:
- path: "/dev/console"
type: c
major: 5
minor: 1
mode: 0666
```
See the [getty package](../pkg/getty/build.yml) for a more complete example
and see [runc](https://github.com/opencontainers/runc/commit/60e21ec26e15945259d4b1e790e8fd119ee86467) for context.
To grant access to all block devices use:
```
devices:
- path: all
type: b
```
See the [format package](../pkg/format/build.yml) for an example.
### Mount Options
When mounting filesystem paths into a container - whether as part of `onboot` or `services` - there are several options of which you need to be aware. Using them properly is necessary for your containers to function properly.
@@ -276,3 +443,43 @@ binds:
- /var:/var:rshared,rbind
rootfsPropagation: shared
```
## Templates
The `yaml` file supports templates for the names of images. Anyplace an image is used in a file and begins
with the character `@`, it indicates that it is not an actual name, but a template. The first word after
the `@` indicates the type of template, and the rest of the line is the argument to the template. The
templates currently supported are:
* `@pkg:` - the argument is the path to a linuxkit package. For example, `@pkg:./pkg/init`.
For `pkg`, linuxkit will resolve the path to the package, and then run the equivalent of `linuxkit pkg show-tag <dir>`.
For example:
```yaml
init:
- "@pkg:../pkg/init"
```
Will cause linuxkit to resolve `../pkg/init` to a package, and then run `linuxkit pkg show-tag ../pkg/init`.
The paths are relative to the directory of the yaml file.
You can specify absolute paths, although it is not recommended, as that can make the yaml file less portable.
The `@pkg:` templating is supported **only** when the yaml file is being read from a local filesystem. It does not
support when using via stdin, e.g. `cat linuxkit.yml | linuxkit build -`, or URLs, e.g. `linuxkit build https://example.com/foo.yml`.
The `@pkg:` template currently supports only default `linuxkit pkg` options, i.e. `build.yml` and `tag` options. There
are no command-line options to override them.
**Note:** The character `@` is reserved in yaml. To use it in the beginning of a string, you must put the entire string in
quotes.
If you use the template, the actual derived value, and not the initial template, is what will be stored in the final
image when adding it via:
```yaml
files:
- path: etc/linuxkit.yml
metadata: yaml
```

26
examples/addbinds.yml Normal file
View File

@@ -0,0 +1,26 @@
kernel:
image: linuxkit/kernel:6.6.71
cmdline: "console=tty0 console=ttyS0 console=ttyAMA0 console=ttysclp0"
init:
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
- linuxkit/ca-certificates:7b32a26ca9c275d3ef32b11fe2a83dbd2aee2fdb
onboot:
- name: sysctl
image: linuxkit/sysctl:5f56434b81004b50b47ed629b222619168c2bcdf
- name: dhcpcd
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
services:
- name: getty
image: linuxkit/getty:05eca453695984a69617f1f1f0bcdae7f7032967
binds.add:
# this will keep all of the existing ones as well
- /var/tmp:/var/tmp
- name: rngd
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032
files:
- path: etc/getty.shadow
# sample sets password for root to "abcdefgh" (without quotes)
contents: 'root:$6$6tPd2uhHrecCEKug$8mKfcgfwguP7f.BLdZsT1Wz7WIIJOBY1oUFHzIv9/O71M2J0EPdtFqFGTxB1UK5ejqQxRFQ.ZSG9YXR0SNsc11:17322:0:::::'

View File

@@ -1,37 +0,0 @@
kernel:
image: linuxkit/kernel:4.19.34
cmdline: "console=ttyS0"
init:
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/ca-certificates:v0.7
onboot:
- name: sysctl
image: linuxkit/sysctl:v0.7
- name: dhcpcd
image: linuxkit/dhcpcd:v0.7
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
- name: metadata
image: linuxkit/metadata:v0.7
services:
- name: rngd
image: linuxkit/rngd:v0.7
- name: sshd
image: linuxkit/sshd:v0.7
binds:
- /run/config/ssh/authorized_keys:/root/.ssh/authorized_keys
- name: nginx
image: nginx:1.13.8-alpine
capabilities:
- CAP_NET_BIND_SERVICE
- CAP_CHOWN
- CAP_SETUID
- CAP_SETGID
- CAP_DAC_OVERRIDE
binds:
- /etc/resolv.conf:/etc/resolv.conf
trust:
org:
- linuxkit
- library

View File

@@ -1,26 +0,0 @@
kernel:
image: linuxkit/kernel:4.19.34
cmdline: "console=ttyS0"
init:
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/ca-certificates:v0.7
onboot:
- name: sysctl
image: linuxkit/sysctl:v0.7
services:
- name: rngd
image: linuxkit/rngd:v0.7
- name: dhcpcd
image: linuxkit/dhcpcd:v0.7
- name: sshd
image: linuxkit/sshd:v0.7
files:
- path: root/.ssh/authorized_keys
source: ~/.ssh/id_rsa.pub
mode: "0600"
optional: true
trust:
org:
- linuxkit

View File

@@ -1,37 +1,37 @@
kernel:
image: linuxkit/kernel:4.19.34
image: linuxkit/kernel:6.6.71
cmdline: "console=tty0 console=ttyS0 console=ttyAMA0 console=ttysclp0"
init:
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/ca-certificates:v0.7
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
- linuxkit/ca-certificates:7b32a26ca9c275d3ef32b11fe2a83dbd2aee2fdb
onboot:
- name: sysctl
image: linuxkit/sysctl:v0.7
image: linuxkit/sysctl:5f56434b81004b50b47ed629b222619168c2bcdf
- name: dhcpcd
image: linuxkit/dhcpcd:v0.7
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
- name: sysfs
image: linuxkit/sysfs:v0.7
image: linuxkit/sysfs:7345172dbf4d436c861adfc27150af474194289b
- name: format
image: linuxkit/format:v0.7
image: linuxkit/format:3fb088f60ed73ba4a15be41e44654b74112fd3f9
- name: mount
image: linuxkit/mount:v0.7
image: linuxkit/mount:cb8caa72248f7082fc2074ce843d53cdc15df04a
command: ["/usr/bin/mountie", "/var/lib/docker"]
services:
- name: getty
image: linuxkit/getty:v0.7
image: linuxkit/getty:05eca453695984a69617f1f1f0bcdae7f7032967
env:
- INSECURE=true
- name: rngd
image: linuxkit/rngd:v0.7
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032
- name: ntpd
image: linuxkit/openntpd:v0.7
image: linuxkit/openntpd:f99c4117763480815553b72022b426639a13ce86
- name: docker
image: docker:18.06.0-ce-dind
image: docker:20.10.6-dind
capabilities:
- all
net: host
@@ -46,14 +46,10 @@ services:
- /etc/docker/daemon.json:/etc/docker/daemon.json
command: ["/usr/local/bin/docker-init", "/usr/local/bin/dockerd"]
- name: cadvisor
image: linuxkit/cadvisor:v0.7
image: linuxkit/cadvisor:8dfefe0f9593ba21aca5d08fadac16de907d470d
files:
- path: var/lib/docker
directory: true
- path: etc/docker/daemon.json
contents: '{"debug": true, "hosts": ["unix:///var/run/docker.sock"]}'
mode: "0644"
trust:
org:
- linuxkit
- library

View File

@@ -0,0 +1,4 @@
cliopts="--log-level trace"
stderr="/var/log/containerd.err.log"
stdout="/var/log/containerd.out.log"

View File

@@ -0,0 +1,42 @@
# example with volumes, both blank and populated
kernel:
image: linuxkit/kernel:6.6.71
cmdline: "console=tty0 console=ttyS0 console=ttyAMA0"
init:
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
- linuxkit/ca-certificates:7b32a26ca9c275d3ef32b11fe2a83dbd2aee2fdb
onboot:
- name: sysctl
image: linuxkit/sysctl:5f56434b81004b50b47ed629b222619168c2bcdf
- name: dhcpcd
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
onshutdown:
- name: shutdown
image: busybox:latest
command: ["/bin/echo", "so long and thanks for all the fish"]
services:
- name: getty
image: linuxkit/getty:05eca453695984a69617f1f1f0bcdae7f7032967
env:
- INSECURE=true
- name: rngd
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032
- name: nginx
image: nginx:1.19.5-alpine
capabilities:
- CAP_NET_BIND_SERVICE
- CAP_CHOWN
- CAP_SETUID
- CAP_SETGID
- CAP_DAC_OVERRIDE
binds:
- /etc/resolv.conf:/etc/resolv.conf
files:
- path: etc/linuxkit-config
metadata: yaml
- path: /etc/containerd/runtime-config.toml
source: "containerd-debug-runtime-config.toml" # must include the file runtime-config.toml in this directory
mode: "0644"

View File

@@ -1,31 +1,31 @@
kernel:
image: linuxkit/kernel:4.14.88
image: linuxkit/kernel:6.6.71
cmdline: "console=tty0 console=ttyS0"
init:
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/ca-certificates:v0.7
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
- linuxkit/ca-certificates:7b32a26ca9c275d3ef32b11fe2a83dbd2aee2fdb
onboot:
- name: sysctl
image: linuxkit/sysctl:v0.7
image: linuxkit/sysctl:5f56434b81004b50b47ed629b222619168c2bcdf
- name: dhcpcd
image: linuxkit/dhcpcd:v0.7
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
- name: format
image: linuxkit/format:v0.7
image: linuxkit/format:3fb088f60ed73ba4a15be41e44654b74112fd3f9
command: ["/usr/bin/format", "/dev/sda"]
- name: mount
image: linuxkit/mount:v0.7
image: linuxkit/mount:cb8caa72248f7082fc2074ce843d53cdc15df04a
command: ["/usr/bin/mountie", "/dev/sda1", "/var/external"]
- name: loop
image: linuxkit/losetup:v0.7
image: linuxkit/losetup:095ff80d8e8fad1707741ea2584a36f3b80e787d
command: ["/usr/bin/loopy", "--create", "/var/external/storage_file"]
- name: dm-crypt
image: linuxkit/dm-crypt:v0.7
image: linuxkit/dm-crypt:981fde241bb84616a5ba94c04cdefa1489431a25
command: ["/usr/bin/crypto", "crypt_loop_dev", "/dev/loop0"]
- name: mount
image: linuxkit/mount:v0.7
image: linuxkit/mount:cb8caa72248f7082fc2074ce843d53cdc15df04a
command: ["/usr/bin/mountie", "/dev/mapper/crypt_loop_dev", "/var/secure_storage"]
- name: bbox
image: busybox
@@ -34,16 +34,13 @@ onboot:
- /var:/var
services:
- name: getty
image: linuxkit/getty:v0.7
image: linuxkit/getty:05eca453695984a69617f1f1f0bcdae7f7032967
env:
- INSECURE=true
- name: rngd
image: linuxkit/rngd:v0.7
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032
files:
- path: etc/dm-crypt/key
# the below key is just to keep the example self-contained
# !!! provide a proper key for production use here !!!
contents: "abcdefghijklmnopqrstuvwxyz123456"
trust:
org:
- linuxkit

View File

@@ -1,25 +1,25 @@
kernel:
image: linuxkit/kernel:4.14.88
image: linuxkit/kernel:6.6.71
cmdline: "console=tty0 console=ttyS0"
init:
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/ca-certificates:v0.7
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
- linuxkit/ca-certificates:7b32a26ca9c275d3ef32b11fe2a83dbd2aee2fdb
onboot:
- name: sysctl
image: linuxkit/sysctl:v0.7
image: linuxkit/sysctl:5f56434b81004b50b47ed629b222619168c2bcdf
- name: dhcpcd
image: linuxkit/dhcpcd:v0.7
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
- name: format
image: linuxkit/format:v0.7
image: linuxkit/format:3fb088f60ed73ba4a15be41e44654b74112fd3f9
command: ["/usr/bin/format", "/dev/sda"]
- name: dm-crypt
image: linuxkit/dm-crypt:v0.7
image: linuxkit/dm-crypt:981fde241bb84616a5ba94c04cdefa1489431a25
command: ["/usr/bin/crypto", "crypt_dev", "/dev/sda1"]
- name: mount
image: linuxkit/mount:v0.7
image: linuxkit/mount:cb8caa72248f7082fc2074ce843d53cdc15df04a
command: ["/usr/bin/mountie", "/dev/mapper/crypt_dev", "/var/secure_storage"]
- name: bbox
image: busybox
@@ -28,16 +28,13 @@ onboot:
- /var:/var
services:
- name: getty
image: linuxkit/getty:v0.7
image: linuxkit/getty:05eca453695984a69617f1f1f0bcdae7f7032967
env:
- INSECURE=true
- name: rngd
image: linuxkit/rngd:v0.7
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032
files:
- path: etc/dm-crypt/key
# the below key is just to keep the example self-contained
# !!! provide a proper key for production use here !!!
contents: "abcdefghijklmnopqrstuvwxyz123456"
trust:
org:
- linuxkit

View File

@@ -16,7 +16,7 @@ $ linuxkit build -format iso-efi docker-for-mac.yml
To run the VM with a 4G disk:
```
linuxkit run hyperkit -networking=vpnkit -vsock-ports=2376 -disk size=4096M -data-file ./metadata.json -iso -uefi docker-for-mac-efi
linuxkit run hyperkit --networking=vpnkit --vsock-ports=2376 --disk size=4096M --data-file ./metadata.json --iso --uefi docker-for-mac-efi
```
Where the file `./metadata.json` should contain the desired docker daemon

View File

@@ -1,36 +1,36 @@
# This is an example for building the open source components of Docker for Mac
kernel:
image: linuxkit/kernel:4.19.34
image: linuxkit/kernel:6.6.71
cmdline: "console=ttyS0 page_poison=1"
init:
- linuxkit/vpnkit-expose-port:v0.7 # install vpnkit-expose-port and vpnkit-iptables-wrapper on host
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/ca-certificates:v0.7
- linuxkit/vpnkit-expose-port:b30e8456ac128b2ac360329898368b309ea6e477 # install vpnkit-expose-port and vpnkit-iptables-wrapper on host
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
- linuxkit/ca-certificates:7b32a26ca9c275d3ef32b11fe2a83dbd2aee2fdb
onboot:
# support metadata for optional config in /run/config
- name: metadata
image: linuxkit/metadata:v0.7
image: linuxkit/metadata:4f81c0c3a2b245567fd7d32d799018c9614a9907
- name: sysctl
image: linuxkit/sysctl:v0.7
image: linuxkit/sysctl:5f56434b81004b50b47ed629b222619168c2bcdf
- name: sysfs
image: linuxkit/sysfs:v0.7
image: linuxkit/sysfs:7345172dbf4d436c861adfc27150af474194289b
- name: binfmt
image: linuxkit/binfmt:v0.7
image: linuxkit/binfmt:ce9509ccfa25002227ccd7ed8dd48d6947854427
# Format and mount the disk image in /var/lib/docker
- name: format
image: linuxkit/format:v0.7
image: linuxkit/format:3fb088f60ed73ba4a15be41e44654b74112fd3f9
- name: mount
image: linuxkit/mount:v0.7
image: linuxkit/mount:cb8caa72248f7082fc2074ce843d53cdc15df04a
command: ["/usr/bin/mountie", "/var/lib"]
# make a swap file on the mounted disk
- name: swap
image: linuxkit/swap:v0.7
image: linuxkit/swap:f4b8ffef87c8c72165bd8a92b790ac252ccf1821
command: ["/swap.sh", "--path", "/var/lib/swap", "--size", "1024M"]
# mount-vpnkit mounts the 9p share used by vpnkit to coordinate port forwarding
- name: mount-vpnkit
image: alpine:3.9
image: alpine:3.13
binds:
- /var/:/host_var:rbind,rshared
capabilities:
@@ -39,51 +39,51 @@ onboot:
command: ["sh", "-c", "mkdir -p /host_var/vpnkit/port && mount -v -t 9p -o trans=virtio,dfltuid=1001,dfltgid=50,version=9p2000 port /host_var/vpnkit"]
# move logs to the mounted disk (this is a temporary fix until we can limit the log sizes)
- name: move-logs
image: alpine:3.9
image: alpine:3.13
binds:
- /var:/host_var
command: ["sh", "-c", "mv -v /host_var/log /host_var/lib && ln -vs /var/lib/log /host_var/log"]
- name: dhcpcd
image: linuxkit/dhcpcd:v0.7
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
services:
# Enable acpi to shutdown on power events
- name: acpid
image: linuxkit/acpid:v0.7
image: linuxkit/acpid:6cb5575e487a8fcbd4c3eb6721c23299e6ea452f
# Enable getty for easier debugging
- name: getty
image: linuxkit/getty:v0.7
image: linuxkit/getty:05eca453695984a69617f1f1f0bcdae7f7032967
env:
- INSECURE=true
# Run ntpd to keep time synchronised in the VM
- name: ntpd
image: linuxkit/openntpd:v0.7
image: linuxkit/openntpd:f99c4117763480815553b72022b426639a13ce86
# VSOCK to unix domain socket forwarding. Forwards guest /var/run/docker.sock
# to a socket on the host.
- name: vsudd
image: linuxkit/vsudd:v0.7
image: linuxkit/vsudd:127acd1453f7bfda791491ac4c55be0d2b9223cc
binds:
- /var/run:/var/run
command: ["/vsudd", "-inport", "2376:unix:/var/run/docker.sock"]
# vpnkit-forwarder forwards network traffic to/from the host via VSOCK port 62373.
# It needs access to the vpnkit 9P coordination share
- name: vpnkit-forwarder
image: linuxkit/vpnkit-forwarder:v0.7
image: linuxkit/vpnkit-forwarder:e22bb70abdb5550c369f91ae7068c24e19beff73
binds:
- /var/vpnkit:/port
net: host
command: ["/vpnkit-forwarder", "-vsockPort", "62373"]
# Monitor for image deletes and invoke a TRIM on the container filesystem
- name: trim-after-delete
image: linuxkit/trim-after-delete:v0.7
image: linuxkit/trim-after-delete:fe73247abd4ab7584a75e95083543af97fe90d4d
# When the host resumes from sleep, force a clock resync
- name: host-timesync-daemon
image: linuxkit/host-timesync-daemon:v0.7
image: linuxkit/host-timesync-daemon:548bfe9d35c930ee42d6c0485bb4bf25d2729bad
# Run dockerd with the vpnkit userland proxy from the vpnkit-forwarder container.
# Bind mounts /var/run to allow vsudd to connect to docker.sock, /var/vpnkit
# for vpnkit coordination and /run/config/docker for the configuration file.
- name: docker-dfm
image: docker:18.06.0-ce-dind
image: docker:20.10.6-dind
capabilities:
- all
net: host
@@ -106,8 +106,3 @@ services:
"--storage-driver", "overlay2" ]
runtime:
mkdir: ["/var/lib/docker"]
trust:
org:
- linuxkit
- library

View File

@@ -1,34 +1,34 @@
kernel:
image: linuxkit/kernel:4.19.34
image: linuxkit/kernel:6.6.71
cmdline: "console=tty0 console=ttyS0 console=ttyAMA0 console=ttysclp0"
init:
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/ca-certificates:v0.7
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
- linuxkit/ca-certificates:7b32a26ca9c275d3ef32b11fe2a83dbd2aee2fdb
onboot:
- name: sysctl
image: linuxkit/sysctl:v0.7
image: linuxkit/sysctl:5f56434b81004b50b47ed629b222619168c2bcdf
- name: sysfs
image: linuxkit/sysfs:v0.7
image: linuxkit/sysfs:7345172dbf4d436c861adfc27150af474194289b
- name: format
image: linuxkit/format:v0.7
image: linuxkit/format:3fb088f60ed73ba4a15be41e44654b74112fd3f9
- name: mount
image: linuxkit/mount:v0.7
image: linuxkit/mount:cb8caa72248f7082fc2074ce843d53cdc15df04a
command: ["/usr/bin/mountie", "/var/lib/docker"]
services:
- name: getty
image: linuxkit/getty:v0.7
image: linuxkit/getty:05eca453695984a69617f1f1f0bcdae7f7032967
env:
- INSECURE=true
- name: rngd
image: linuxkit/rngd:v0.7
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032
- name: dhcpcd
image: linuxkit/dhcpcd:v0.7
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
- name: ntpd
image: linuxkit/openntpd:v0.7
image: linuxkit/openntpd:f99c4117763480815553b72022b426639a13ce86
- name: docker
image: docker:18.06.0-ce-dind
image: docker:20.10.6-dind
capabilities:
- all
net: host
@@ -46,7 +46,3 @@ files:
directory: true
- path: etc/docker/daemon.json
contents: '{"debug": true}'
trust:
org:
- linuxkit
- library

View File

@@ -1,41 +0,0 @@
kernel:
image: linuxkit/kernel:4.19.34
cmdline: "console=ttyS0"
init:
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/ca-certificates:v0.7
onboot:
- name: sysctl
image: linuxkit/sysctl:v0.7
- name: dhcpcd
image: linuxkit/dhcpcd:v0.7
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
- name: metadata
image: linuxkit/metadata:v0.7
services:
- name: getty
image: linuxkit/getty:v0.7
env:
- INSECURE=true
- name: rngd
image: linuxkit/rngd:v0.7
- name: sshd
image: linuxkit/sshd:v0.7
binds:
- /run/config/ssh/authorized_keys:/root/.ssh/authorized_keys
- name: nginx
image: nginx:1.13.8-alpine
capabilities:
- CAP_NET_BIND_SERVICE
- CAP_CHOWN
- CAP_SETUID
- CAP_SETGID
- CAP_DAC_OVERRIDE
binds:
- /etc/resolv.conf:/etc/resolv.conf
trust:
org:
- linuxkit
- library

View File

@@ -1,29 +1,26 @@
kernel:
image: linuxkit/kernel:4.19.34
image: linuxkit/kernel:6.6.71
cmdline: "console=tty0 console=ttyS0 console=ttyAMA0 console=ttysclp0"
init:
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/ca-certificates:v0.7
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
- linuxkit/ca-certificates:7b32a26ca9c275d3ef32b11fe2a83dbd2aee2fdb
onboot:
- name: sysctl
image: linuxkit/sysctl:v0.7
image: linuxkit/sysctl:5f56434b81004b50b47ed629b222619168c2bcdf
- name: dhcpcd
image: linuxkit/dhcpcd:v0.7
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
services:
- name: getty
image: linuxkit/getty:v0.7
image: linuxkit/getty:05eca453695984a69617f1f1f0bcdae7f7032967
# to make insecure with passwordless root login, uncomment following lines
#env:
# - INSECURE=true
- name: rngd
image: linuxkit/rngd:v0.7
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032
files:
- path: etc/getty.shadow
# sample sets password for root to "abcdefgh" (without quotes)
contents: 'root:$6$6tPd2uhHrecCEKug$8mKfcgfwguP7f.BLdZsT1Wz7WIIJOBY1oUFHzIv9/O71M2J0EPdtFqFGTxB1UK5ejqQxRFQ.ZSG9YXR0SNsc11:17322:0:::::'
trust:
org:
- linuxkit

View File

@@ -1,16 +1,16 @@
kernel:
image: linuxkit/kernel:4.19.34
image: linuxkit/kernel:6.6.71
cmdline: "console=tty0 console=ttyS0 console=ttyAMA0 console=ttysclp0"
init:
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/ca-certificates:v0.7
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
- linuxkit/ca-certificates:7b32a26ca9c275d3ef32b11fe2a83dbd2aee2fdb
onboot:
- name: sysctl
image: linuxkit/sysctl:v0.7
image: linuxkit/sysctl:5f56434b81004b50b47ed629b222619168c2bcdf
- name: dhcpcd
image: linuxkit/dhcpcd:v0.7
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
onshutdown:
- name: shutdown
@@ -18,7 +18,7 @@ onshutdown:
command: ["/bin/echo", "so long and thanks for all the fish"]
services:
- name: getty
image: linuxkit/getty:v0.7
image: linuxkit/getty:05eca453695984a69617f1f1f0bcdae7f7032967
env:
- INSECURE=true
runtime:
@@ -30,7 +30,7 @@ services:
destination: writeable-host-etc
options: ["rw", "lowerdir=/etc", "upperdir=/run/hostetc/upper", "workdir=/run/hostetc/work"]
- name: rngd
image: linuxkit/rngd:v0.7
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032
- name: nginx
image: nginx:1.13.8-alpine
capabilities:
@@ -41,7 +41,3 @@ services:
- CAP_DAC_OVERRIDE
binds:
- /etc/resolv.conf:/etc/resolv.conf
trust:
org:
- linuxkit
- library

View File

@@ -1,18 +1,18 @@
kernel:
image: linuxkit/kernel:4.19.34
image: linuxkit/kernel:6.6.71
cmdline: "console=tty0 console=ttyS0 console=ttyAMA0"
init:
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/ca-certificates:v0.7
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
- linuxkit/ca-certificates:7b32a26ca9c275d3ef32b11fe2a83dbd2aee2fdb
onboot:
- name: dhcpcd
image: linuxkit/dhcpcd:v0.7
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
services:
- name: getty
image: linuxkit/getty:v0.7
image: linuxkit/getty:05eca453695984a69617f1f1f0bcdae7f7032967
env:
- INSECURE=true
- name: influxdb
@@ -42,7 +42,3 @@ services:
env:
- INFLUXDB_URL=http://127.0.0.1:8086
- KAPACITOR_URL=http://127.0.0.1:9092
trust:
org:
- linuxkit
- library

View File

@@ -1,34 +1,30 @@
# Simple example of using an external logging service
kernel:
image: linuxkit/kernel:4.19.34
image: linuxkit/kernel:6.6.71
cmdline: "console=tty0 console=ttyS0 console=ttyAMA0"
init:
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/ca-certificates:v0.7
- linuxkit/memlogd:v0.7
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
- linuxkit/ca-certificates:7b32a26ca9c275d3ef32b11fe2a83dbd2aee2fdb
- linuxkit/memlogd:e28ecaa23a3693ae96575fb3bc421bc1d9f46c4f
onboot:
- name: sysctl
image: linuxkit/sysctl:v0.7
image: linuxkit/sysctl:5f56434b81004b50b47ed629b222619168c2bcdf
- name: dhcpcd
image: linuxkit/dhcpcd:v0.7
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
services:
# Inside the getty type `/proc/1/root/usr/bin/logread -F` to follow the log
- name: getty
image: linuxkit/getty:v0.7
image: linuxkit/getty:05eca453695984a69617f1f1f0bcdae7f7032967
env:
- INSECURE=true
# A service which generates log messages for testing
- name: write-to-the-logs
image: alpine:3.9
image: alpine:3.13
command: ["/bin/sh", "-c", "while /bin/true; do echo hello $(date); sleep 1; done" ]
- name: write-and-rotate-logs
image: linuxkit/logwrite:v0.7
image: linuxkit/logwrite:3f138a010098862845b7270fc3715a03d0e3871e
- name: kmsg
image: linuxkit/kmsg:v0.7
trust:
org:
- linuxkit
- library
image: linuxkit/kmsg:9b0a33abebde8de005a3bfaf8dc06f183a9ba7b8

View File

@@ -1,19 +1,16 @@
kernel:
image: linuxkit/kernel:4.19.34
image: linuxkit/kernel:6.6.71
cmdline: "console=tty0 console=ttyS0 console=ttyAMA0"
init:
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
onboot:
- name: dhcpcd
image: linuxkit/dhcpcd:v0.7
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
services:
- name: getty
image: linuxkit/getty:v0.7
image: linuxkit/getty:05eca453695984a69617f1f1f0bcdae7f7032967
env:
- INSECURE=true
trust:
org:
- linuxkit

View File

@@ -1,21 +1,18 @@
kernel:
image: linuxkit/kernel:4.19.34
image: linuxkit/kernel:6.6.71
cmdline: "console=tty0 console=ttyS0"
init:
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
services:
- name: getty
image: linuxkit/getty:v0.7
image: linuxkit/getty:05eca453695984a69617f1f1f0bcdae7f7032967
env:
- INSECURE=true
- name: rngd
image: linuxkit/rngd:v0.7
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032
- name: dhcpcd
image: linuxkit/dhcpcd:v0.7
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
- name: node_exporter
image: linuxkit/node_exporter:v0.7
trust:
org:
- linuxkit
image: linuxkit/node_exporter:1415b52c08ddc5799b2fc83cf3f080c56c3ff5a9

View File

@@ -1,26 +1,26 @@
kernel:
image: linuxkit/kernel:4.19.34
image: linuxkit/kernel:6.6.71
cmdline: "console=ttyS0"
init:
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/ca-certificates:v0.7
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
- linuxkit/ca-certificates:7b32a26ca9c275d3ef32b11fe2a83dbd2aee2fdb
onboot:
- name: sysctl
image: linuxkit/sysctl:v0.7
image: linuxkit/sysctl:5f56434b81004b50b47ed629b222619168c2bcdf
- name: dhcpcd
image: linuxkit/dhcpcd:v0.7
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
- name: metadata
image: linuxkit/metadata:v0.7
image: linuxkit/metadata:4f81c0c3a2b245567fd7d32d799018c9614a9907
command: ["/usr/bin/metadata", "openstack"]
services:
- name: rngd
image: linuxkit/rngd:v0.7
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032
- name: sshd
image: linuxkit/sshd:v0.7
binds:
image: linuxkit/sshd:9bdd85427ef99640276d97a32a7a3cc31bb017b3
binds.add:
- /run/config/ssh/authorized_keys:/root/.ssh/authorized_keys
- name: nginx
image: nginx:1.13.8-alpine
@@ -32,7 +32,3 @@ services:
- CAP_DAC_OVERRIDE
binds:
- /etc/resolv.conf:/etc/resolv.conf
trust:
org:
- linuxkit
- library

View File

@@ -1,14 +0,0 @@
# This YAML snippet is to be used in conjunction with packet.yml to
# build a arm64 image for packet.net. It adds a modprobe of the NIC
# driver and overrides the kernel section to disable prepending the
# Intel CPU microcode to the initrd. If writing a YAML specifically
# for arm64 then the 'ucode' line in the kernel section can be left
# out.
kernel:
image: linuxkit/kernel:4.19.34
cmdline: "console=ttyAMA0"
ucode: ""
onboot:
- name: modprobe
image: linuxkit/modprobe:v0.7
command: ["modprobe", "nicvf"]

View File

@@ -1,39 +0,0 @@
kernel:
image: linuxkit/kernel:4.19.34
cmdline: console=ttyS1
ucode: intel-ucode.cpio
init:
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/ca-certificates:v0.7
- linuxkit/firmware:v0.7
onboot:
- name: rngd1
image: linuxkit/rngd:v0.7
command: ["/sbin/rngd", "-1"]
- name: sysctl
image: linuxkit/sysctl:v0.7
- name: dhcpcd
image: linuxkit/dhcpcd:v0.7
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
- name: metadata
image: linuxkit/metadata:v0.7
command: ["/usr/bin/metadata", "packet"]
services:
- name: rngd
image: linuxkit/rngd:v0.7
- name: getty
image: linuxkit/getty:v0.7
env:
- INSECURE=true
- name: sshd
image: linuxkit/sshd:v0.7
files:
- path: root/.ssh/authorized_keys
source: ~/.ssh/id_rsa.pub
mode: "0600"
optional: true
trust:
org:
- linuxkit

36
examples/platform-aws.yml Normal file
View File

@@ -0,0 +1,36 @@
kernel:
image: linuxkit/kernel:6.6.71
cmdline: "console=ttyS0"
init:
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
- linuxkit/ca-certificates:7b32a26ca9c275d3ef32b11fe2a83dbd2aee2fdb
onboot:
- name: sysctl
image: linuxkit/sysctl:5f56434b81004b50b47ed629b222619168c2bcdf
- name: dhcpcd
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
- name: metadata
image: linuxkit/metadata:4f81c0c3a2b245567fd7d32d799018c9614a9907
services:
- name: rngd
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032
- name: dhcpcd2
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf"]
- name: sshd
image: linuxkit/sshd:9bdd85427ef99640276d97a32a7a3cc31bb017b3
binds.add:
- /run/config/ssh/authorized_keys:/root/.ssh/authorized_keys
- name: nginx
image: nginx:1.13.8-alpine
capabilities:
- CAP_NET_BIND_SERVICE
- CAP_CHOWN
- CAP_SETUID
- CAP_SETGID
- CAP_DAC_OVERRIDE
binds:
- /etc/resolv.conf:/etc/resolv.conf

View File

@@ -0,0 +1,25 @@
kernel:
image: linuxkit/kernel:6.6.71
cmdline: "console=ttyS0"
init:
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
- linuxkit/ca-certificates:7b32a26ca9c275d3ef32b11fe2a83dbd2aee2fdb
onboot:
- name: sysctl
image: linuxkit/sysctl:5f56434b81004b50b47ed629b222619168c2bcdf
services:
- name: rngd
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032
- name: dhcpcd
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
- name: sshd
image: linuxkit/sshd:9bdd85427ef99640276d97a32a7a3cc31bb017b3
binds.add:
- /root/.ssh:/root/.ssh
files:
- path: root/.ssh/authorized_keys
source: ~/.ssh/id_rsa.pub
mode: "0600"
optional: true

View File

@@ -0,0 +1,14 @@
# This YAML snippet is to be used in conjunction with equinixmetal.yml to
# build a arm64 image for Equinix Metal. It adds a modprobe of the NIC
# driver and overrides the kernel section to disable prepending the
# Intel CPU microcode to the initrd. If writing a YAML specifically
# for arm64 then the 'ucode' line in the kernel section can be left
# out.
kernel:
image: linuxkit/kernel:6.6.71
cmdline: "console=ttyAMA0"
ucode: ""
onboot:
- name: modprobe
image: linuxkit/modprobe:773ee174006ecbb412830e48889795bae40b62f9
command: ["modprobe", "nicvf"]

View File

@@ -0,0 +1,38 @@
kernel:
image: linuxkit/kernel:6.6.71
cmdline: console=ttyS1
ucode: intel-ucode.cpio
init:
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
- linuxkit/ca-certificates:7b32a26ca9c275d3ef32b11fe2a83dbd2aee2fdb
- linuxkit/firmware:bfc7802f909c4b760de5dd2bc02a7f52e86b78f7
onboot:
- name: rngd1
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032
command: ["/sbin/rngd", "-1"]
- name: sysctl
image: linuxkit/sysctl:5f56434b81004b50b47ed629b222619168c2bcdf
- name: dhcpcd
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
- name: metadata
image: linuxkit/metadata:4f81c0c3a2b245567fd7d32d799018c9614a9907
command: ["/usr/bin/metadata", "equinixmetal"]
services:
- name: rngd
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032
- name: getty
image: linuxkit/getty:05eca453695984a69617f1f1f0bcdae7f7032967
env:
- INSECURE=true
- name: sshd
image: linuxkit/sshd:9bdd85427ef99640276d97a32a7a3cc31bb017b3
binds.add:
- /root/.ssh:/root/.ssh
files:
- path: root/.ssh/authorized_keys
source: ~/.ssh/id_rsa.pub
mode: "0600"
optional: true

37
examples/platform-gcp.yml Normal file
View File

@@ -0,0 +1,37 @@
kernel:
image: linuxkit/kernel:6.6.71
cmdline: "console=ttyS0"
init:
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
- linuxkit/ca-certificates:7b32a26ca9c275d3ef32b11fe2a83dbd2aee2fdb
onboot:
- name: sysctl
image: linuxkit/sysctl:5f56434b81004b50b47ed629b222619168c2bcdf
- name: dhcpcd
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
- name: metadata
image: linuxkit/metadata:4f81c0c3a2b245567fd7d32d799018c9614a9907
services:
- name: getty
image: linuxkit/getty:05eca453695984a69617f1f1f0bcdae7f7032967
env:
- INSECURE=true
- name: rngd
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032
- name: sshd
image: linuxkit/sshd:9bdd85427ef99640276d97a32a7a3cc31bb017b3
binds.add:
- /run/config/ssh/authorized_keys:/root/.ssh/authorized_keys
- name: nginx
image: nginx:1.13.8-alpine
capabilities:
- CAP_NET_BIND_SERVICE
- CAP_CHOWN
- CAP_SETUID
- CAP_SETGID
- CAP_DAC_OVERRIDE
binds:
- /etc/resolv.conf:/etc/resolv.conf

View File

@@ -0,0 +1,38 @@
kernel:
image: linuxkit/kernel:6.6.71
cmdline: console=ttyS1
ucode: intel-ucode.cpio
init:
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
- linuxkit/ca-certificates:7b32a26ca9c275d3ef32b11fe2a83dbd2aee2fdb
- linuxkit/firmware:bfc7802f909c4b760de5dd2bc02a7f52e86b78f7
onboot:
- name: rngd1
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032
command: ["/sbin/rngd", "-1"]
- name: sysctl
image: linuxkit/sysctl:5f56434b81004b50b47ed629b222619168c2bcdf
- name: dhcpcd
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
- name: metadata
image: linuxkit/metadata:4f81c0c3a2b245567fd7d32d799018c9614a9907
command: ["/usr/bin/metadata", "hetzner"]
services:
- name: rngd
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032
- name: getty
image: linuxkit/getty:05eca453695984a69617f1f1f0bcdae7f7032967
env:
- INSECURE=true
- name: sshd
image: linuxkit/sshd:9bdd85427ef99640276d97a32a7a3cc31bb017b3
binds.add:
- /root/.ssh:/root/.ssh
files:
- path: root/.ssh/authorized_keys
source: ~/.ssh/id_rsa.pub
mode: "0600"
optional: true

View File

@@ -0,0 +1,32 @@
kernel:
image: linuxkit/kernel:6.6.71-rt
cmdline: "console=tty0"
init:
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
- linuxkit/ca-certificates:7b32a26ca9c275d3ef32b11fe2a83dbd2aee2fdb
onboot:
- name: sysctl
image: linuxkit/sysctl:5f56434b81004b50b47ed629b222619168c2bcdf
services:
- name: getty
image: linuxkit/getty:05eca453695984a69617f1f1f0bcdae7f7032967
env:
- INSECURE=true
- name: rngd
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032
- name: dhcpcd
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
- name: open-vm-tools
image: linuxkit/open-vm-tools:8a320f7453711f0544f4b03558aaf0b80c7c23f1
- name: nginx
image: nginx:1.13.8-alpine
capabilities:
- CAP_NET_BIND_SERVICE
- CAP_CHOWN
- CAP_SETUID
- CAP_SETGID
- CAP_DAC_OVERRIDE
binds:
- /etc/resolv.conf:/etc/resolv.conf

View File

@@ -0,0 +1,26 @@
kernel:
image: linuxkit/kernel:6.6.71
cmdline: "console=tty0 console=ttyS0 console=ttyAMA0 console=ttysclp0 root=/dev/vda"
init:
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
- linuxkit/ca-certificates:7b32a26ca9c275d3ef32b11fe2a83dbd2aee2fdb
onboot:
- name: sysctl
image: linuxkit/sysctl:5f56434b81004b50b47ed629b222619168c2bcdf
- name: rngd1
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032
command: ["/sbin/rngd", "-1"]
- name: dhcpcd
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
- name: metadata
image: linuxkit/metadata:4f81c0c3a2b245567fd7d32d799018c9614a9907
services:
- name: getty
image: linuxkit/getty:05eca453695984a69617f1f1f0bcdae7f7032967
env:
- INSECURE=true
- name: rngd
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032

View File

@@ -0,0 +1,30 @@
kernel:
image: linuxkit/kernel:6.6.71
cmdline: "console=tty0"
init:
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
- linuxkit/ca-certificates:7b32a26ca9c275d3ef32b11fe2a83dbd2aee2fdb
onboot:
- name: sysctl
image: linuxkit/sysctl:5f56434b81004b50b47ed629b222619168c2bcdf
services:
- name: getty
image: linuxkit/getty:05eca453695984a69617f1f1f0bcdae7f7032967
env:
- INSECURE=true
- name: rngd
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032
- name: dhcpcd
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
- name: nginx
image: nginx:1.13.8-alpine
capabilities:
- CAP_NET_BIND_SERVICE
- CAP_CHOWN
- CAP_SETUID
- CAP_SETGID
- CAP_DAC_OVERRIDE
binds:
- /etc/resolv.conf:/etc/resolv.conf

View File

@@ -0,0 +1,38 @@
kernel:
image: linuxkit/kernel:6.6.71
cmdline: "console=ttyS0"
init:
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
- linuxkit/ca-certificates:7b32a26ca9c275d3ef32b11fe2a83dbd2aee2fdb
onboot:
- name: sysctl
image: linuxkit/sysctl:5f56434b81004b50b47ed629b222619168c2bcdf
- name: dhcpcd
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
- name: metadata
image: linuxkit/metadata:4f81c0c3a2b245567fd7d32d799018c9614a9907
command: ["/usr/bin/metadata", "vultr"]
services:
- name: getty
image: linuxkit/getty:05eca453695984a69617f1f1f0bcdae7f7032967
env:
- INSECURE=true
- name: rngd
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032
- name: sshd
image: linuxkit/sshd:9bdd85427ef99640276d97a32a7a3cc31bb017b3
binds.add:
- /run/config/ssh/authorized_keys:/root/.ssh/authorized_keys
- name: nginx
image: nginx:1.13.8-alpine
capabilities:
- CAP_NET_BIND_SERVICE
- CAP_CHOWN
- CAP_SETUID
- CAP_SETGID
- CAP_DAC_OVERRIDE
binds:
- /etc/resolv.conf:/etc/resolv.conf

View File

@@ -1,19 +1,19 @@
# Minimal YAML to run a redis server (used at DockerCon'17)
# connect: nc localhost 6379
kernel:
image: linuxkit/kernel:4.19.34
image: linuxkit/kernel:6.6.71
cmdline: "console=tty0 console=ttyS0 console=ttyAMA0 console=ttysclp0"
init:
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
onboot:
- name: dhcpcd
image: linuxkit/dhcpcd:v0.7
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
services:
- name: getty
image: linuxkit/getty:v0.7
image: linuxkit/getty:05eca453695984a69617f1f1f0bcdae7f7032967
env:
- INSECURE=true
# Currently redis:4.0.6-alpine has trust issue with multi-arch
@@ -27,7 +27,3 @@ services:
- CAP_SETGID
- CAP_DAC_OVERRIDE
net: host
trust:
org:
- linuxkit
- library

View File

@@ -1,36 +0,0 @@
kernel:
image: linuxkit/kernel:4.19.25-rt
cmdline: "console=tty0"
init:
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/ca-certificates:v0.7
onboot:
- name: sysctl
image: linuxkit/sysctl:v0.7
services:
- name: getty
image: linuxkit/getty:v0.7
env:
- INSECURE=true
- name: rngd
image: linuxkit/rngd:v0.7
- name: dhcpcd
image: linuxkit/dhcpcd:v0.7
- name: open-vm-tools
image: linuxkit/open-vm-tools:v0.7
- name: nginx
image: nginx:1.13.8-alpine
capabilities:
- CAP_NET_BIND_SERVICE
- CAP_CHOWN
- CAP_SETUID
- CAP_SETGID
- CAP_DAC_OVERRIDE
binds:
- /etc/resolv.conf:/etc/resolv.conf
trust:
org:
- linuxkit
- library

View File

@@ -1,29 +0,0 @@
kernel:
image: linuxkit/kernel:4.19.34
cmdline: "console=tty0 console=ttyS0 console=ttyAMA0 console=ttysclp0 root=/dev/vda"
init:
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/ca-certificates:v0.7
onboot:
- name: sysctl
image: linuxkit/sysctl:v0.7
- name: rngd1
image: linuxkit/rngd:v0.7
command: ["/sbin/rngd", "-1"]
- name: dhcpcd
image: linuxkit/dhcpcd:v0.7
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
- name: metadata
image: linuxkit/metadata:v0.7
services:
- name: getty
image: linuxkit/getty:v0.7
env:
- INSECURE=true
- name: rngd
image: linuxkit/rngd:v0.7
trust:
org:
- linuxkit

View File

@@ -1,33 +1,32 @@
kernel:
image: linuxkit/kernel:4.19.34
image: linuxkit/kernel:6.6.71
cmdline: "console=tty0 console=ttyS0 console=ttyAMA0 console=ttysclp0"
init:
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/ca-certificates:v0.7
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
- linuxkit/ca-certificates:7b32a26ca9c275d3ef32b11fe2a83dbd2aee2fdb
onboot:
- name: sysctl
image: linuxkit/sysctl:v0.7
image: linuxkit/sysctl:5f56434b81004b50b47ed629b222619168c2bcdf
- name: rngd1
image: linuxkit/rngd:v0.7
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032
command: ["/sbin/rngd", "-1"]
services:
- name: getty
image: linuxkit/getty:v0.7
image: linuxkit/getty:05eca453695984a69617f1f1f0bcdae7f7032967
env:
- INSECURE=true
- name: rngd
image: linuxkit/rngd:v0.7
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032
- name: dhcpcd
image: linuxkit/dhcpcd:v0.7
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
- name: sshd
image: linuxkit/sshd:v0.7
image: linuxkit/sshd:9bdd85427ef99640276d97a32a7a3cc31bb017b3
binds.add:
- /root/.ssh:/root/.ssh
files:
- path: root/.ssh/authorized_keys
source: ~/.ssh/id_rsa.pub
mode: "0600"
optional: true
trust:
org:
- linuxkit

View File

@@ -1,19 +1,19 @@
kernel:
image: linuxkit/kernel:4.19.34
image: linuxkit/kernel:6.6.71
cmdline: "console=tty0 console=ttyS0 console=ttyAMA0"
init:
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
onboot:
- name: ip
image: linuxkit/ip:v0.7
image: linuxkit/ip:9696394a7d57b384ae919662ae162c9152029156
binds:
- /etc/ip:/etc/ip
command: ["ip", "-b", "/etc/ip/eth0.conf"]
services:
- name: getty
image: linuxkit/getty:v0.7
image: linuxkit/getty:05eca453695984a69617f1f1f0bcdae7f7032967
env:
- INSECURE=true
files:
@@ -27,6 +27,3 @@ files:
# domain test.local
nameserver 10.10.1.101
nameserver 10.10.1.100
trust:
org:
- linuxkit

View File

@@ -1,35 +1,31 @@
kernel:
image: linuxkit/kernel:4.19.34
image: linuxkit/kernel:6.6.71
cmdline: "console=tty0 console=ttyS0 console=ttyAMA0 console=ttysclp0"
init:
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/ca-certificates:v0.7
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
- linuxkit/ca-certificates:7b32a26ca9c275d3ef32b11fe2a83dbd2aee2fdb
onboot:
- name: sysctl
image: linuxkit/sysctl:v0.7
image: linuxkit/sysctl:5f56434b81004b50b47ed629b222619168c2bcdf
- name: dhcpcd
image: linuxkit/dhcpcd:v0.7
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
- name: format
image: linuxkit/format:v0.7
image: linuxkit/format:3fb088f60ed73ba4a15be41e44654b74112fd3f9
- name: mount
image: linuxkit/mount:v0.7
image: linuxkit/mount:cb8caa72248f7082fc2074ce843d53cdc15df04a
command: ["/usr/bin/mountie", "/var/external"]
- name: swap
image: linuxkit/swap:v0.7
image: linuxkit/swap:f4b8ffef87c8c72165bd8a92b790ac252ccf1821
# to use unencrypted swap, use:
# command: ["/swap.sh", "--path", "/var/external/swap", "--size", "1G"]
command: ["/swap.sh", "--path", "/var/external/swap", "--size", "1G", "--encrypt"]
services:
- name: getty
image: linuxkit/getty:v0.7
image: linuxkit/getty:05eca453695984a69617f1f1f0bcdae7f7032967
env:
- INSECURE=true
- name: rngd
image: linuxkit/rngd:v0.7
trust:
org:
- linuxkit
- library
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032

View File

@@ -1,30 +1,27 @@
kernel:
image: linuxkit/kernel:4.9.38
image: linuxkit/kernel:6.6.71
cmdline: "console=tty0 console=ttyS0"
init:
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/ca-certificates:v0.7
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
- linuxkit/ca-certificates:7b32a26ca9c275d3ef32b11fe2a83dbd2aee2fdb
onboot:
- name: sysctl
image: linuxkit/sysctl:v0.7
image: linuxkit/sysctl:5f56434b81004b50b47ed629b222619168c2bcdf
- name: dhcpcd
image: linuxkit/dhcpcd:v0.7
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
services:
- name: getty
image: linuxkit/getty:v0.7
image: linuxkit/getty:05eca453695984a69617f1f1f0bcdae7f7032967
env:
- INSECURE=true
- name: tss
image: linuxkit/tss:v0.7
image: linuxkit/tss:dbdcce4c3a840f8337d20991807439b2096a1457
- name: rngd
image: linuxkit/rngd:v0.7
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032
files:
- path: etc/getty.shadow
# sample sets password for root to "abcdefgh" (without quotes)
contents: 'root:$6$6tPd2uhHrecCEKug$8mKfcgfwguP7f.BLdZsT1Wz7WIIJOBY1oUFHzIv9/O71M2J0EPdtFqFGTxB1UK5ejqQxRFQ.ZSG9YXR0SNsc11:17322:0:::::'
trust:
org:
- linuxkit

View File

@@ -1,34 +0,0 @@
kernel:
image: linuxkit/kernel:4.19.34
cmdline: "console=tty0"
init:
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/ca-certificates:v0.7
onboot:
- name: sysctl
image: linuxkit/sysctl:v0.7
services:
- name: getty
image: linuxkit/getty:v0.7
env:
- INSECURE=true
- name: rngd
image: linuxkit/rngd:v0.7
- name: dhcpcd
image: linuxkit/dhcpcd:v0.7
- name: nginx
image: nginx:1.13.8-alpine
capabilities:
- CAP_NET_BIND_SERVICE
- CAP_CHOWN
- CAP_SETUID
- CAP_SETGID
- CAP_DAC_OVERRIDE
binds:
- /etc/resolv.conf:/etc/resolv.conf
trust:
org:
- linuxkit
- library

45
examples/volumes.yml Normal file
View File

@@ -0,0 +1,45 @@
# example with volumes, both blank and populated
kernel:
image: linuxkit/kernel:6.6.71
cmdline: "console=tty0 console=ttyS0 console=ttyAMA0"
init:
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
- linuxkit/ca-certificates:7b32a26ca9c275d3ef32b11fe2a83dbd2aee2fdb
onboot:
- name: sysctl
image: linuxkit/sysctl:5f56434b81004b50b47ed629b222619168c2bcdf
- name: dhcpcd
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
onshutdown:
- name: shutdown
image: busybox:latest
command: ["/bin/echo", "so long and thanks for all the fish"]
services:
- name: getty
image: linuxkit/getty:05eca453695984a69617f1f1f0bcdae7f7032967
env:
- INSECURE=true
- name: rngd
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032
- name: nginx
image: nginx:1.19.5-alpine
capabilities:
- CAP_NET_BIND_SERVICE
- CAP_CHOWN
- CAP_SETUID
- CAP_SETGID
- CAP_DAC_OVERRIDE
binds:
- /etc/resolv.conf:/etc/resolv.conf
- blank:/blank
- alpine:/alpine
volumes:
- name: blank # blank volume
- name: alpine # populated volume
image: alpine:3.21
files:
- path: etc/linuxkit-config
metadata: yaml

View File

@@ -1,16 +1,16 @@
kernel:
image: linuxkit/kernel:4.19.34
image: linuxkit/kernel:6.6.71
cmdline: "console=ttyS0"
init:
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
onboot:
- name: dhcpcd
image: linuxkit/dhcpcd:v0.7
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
- name: mount-vpnkit
image: alpine:3.9
image: alpine:3.13
binds:
- /var/:/host_var:rbind,rshared
capabilities:
@@ -19,9 +19,11 @@ onboot:
command: ["sh", "-c", "mkdir /host_var/vpnkit && mount -v -t 9p -o trans=virtio,dfltuid=1001,dfltgid=50,version=9p2000 port /host_var/vpnkit"]
services:
- name: sshd
image: linuxkit/sshd:v0.7
image: linuxkit/sshd:9bdd85427ef99640276d97a32a7a3cc31bb017b3
binds.add:
- /root/.ssh:/root/.ssh
- name: vpnkit-forwarder
image: linuxkit/vpnkit-forwarder:v0.7
image: linuxkit/vpnkit-forwarder:e22bb70abdb5550c369f91ae7068c24e19beff73
binds:
- /var/vpnkit:/port
net: host
@@ -32,7 +34,3 @@ files:
source: ~/.ssh/id_rsa.pub
mode: "0600"
optional: true
trust:
org:
- linuxkit

View File

@@ -1,22 +1,18 @@
kernel:
image: linuxkit/kernel:4.19.34
image: linuxkit/kernel:6.6.71
cmdline: "console=ttyS0"
init:
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
onboot:
- name: dhcpcd
image: linuxkit/dhcpcd:v0.7
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
services:
- name: vsudd
image: linuxkit/vsudd:v0.7
image: linuxkit/vsudd:127acd1453f7bfda791491ac4c55be0d2b9223cc
binds:
- /run/containerd/containerd.sock:/run/containerd/containerd.sock
command: ["/vsudd",
"-inport", "2374:unix:/run/containerd/containerd.sock"]
trust:
org:
- linuxkit

View File

@@ -1,41 +0,0 @@
kernel:
image: linuxkit/kernel:4.19.34
cmdline: "console=ttyS0"
init:
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/ca-certificates:v0.7
onboot:
- name: sysctl
image: linuxkit/sysctl:v0.7
- name: dhcpcd
image: linuxkit/dhcpcd:v0.7
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
- name: metadata
image: linuxkit/metadata:v0.7
services:
- name: getty
image: linuxkit/getty:v0.7
env:
- INSECURE=true
- name: rngd
image: linuxkit/rngd:v0.7
- name: sshd
image: linuxkit/sshd:v0.7
binds:
- /run/config/ssh/authorized_keys:/root/.ssh/authorized_keys
- name: nginx
image: nginx:1.13.8-alpine
capabilities:
- CAP_NET_BIND_SERVICE
- CAP_CHOWN
- CAP_SETUID
- CAP_SETGID
- CAP_DAC_OVERRIDE
binds:
- /etc/resolv.conf:/etc/resolv.conf
trust:
org:
- linuxkit
- library

View File

@@ -1,19 +1,19 @@
kernel:
image: linuxkit/kernel:4.19.34
image: linuxkit/kernel:6.6.71
cmdline: "console=tty0 console=ttyS0 console=ttyAMA0"
init:
- linuxkit/init:v0.7
- linuxkit/runc:v0.7
- linuxkit/containerd:v0.7
- linuxkit/ca-certificates:v0.7
- linuxkit/init:8eea386739975a43af558eec757a7dcb3a3d2e7b
- linuxkit/runc:667e7ea2c426a2460ca21e3da065a57dbb3369c9
- linuxkit/containerd:a988a1a8bcbacc2c0390ca0c08f949e2b4b5915d
- linuxkit/ca-certificates:7b32a26ca9c275d3ef32b11fe2a83dbd2aee2fdb
onboot:
- name: sysctl
image: linuxkit/sysctl:v0.7
image: linuxkit/sysctl:5f56434b81004b50b47ed629b222619168c2bcdf
- name: dhcpcd
image: linuxkit/dhcpcd:v0.7
image: linuxkit/dhcpcd:157df9ef45a035f1542ec2270e374f18efef98a5
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
- name: wg0
image: linuxkit/ip:v0.7
image: linuxkit/ip:9696394a7d57b384ae919662ae162c9152029156
net: new
binds:
- /etc/wireguard:/etc/wireguard
@@ -26,7 +26,7 @@ onboot:
bindNS:
net: /run/netns/wg0
- name: wg1
image: linuxkit/ip:v0.7
image: linuxkit/ip:9696394a7d57b384ae919662ae162c9152029156
net: new
binds:
- /etc/wireguard:/etc/wireguard
@@ -40,12 +40,12 @@ onboot:
net: /run/netns/wg1
services:
- name: getty
image: linuxkit/getty:v0.7
image: linuxkit/getty:05eca453695984a69617f1f1f0bcdae7f7032967
env:
- INSECURE=true
net: /run/netns/wg1
- name: rngd
image: linuxkit/rngd:v0.7
image: linuxkit/rngd:1a18f2149e42a0a1cb9e7d37608a494342c26032
- name: nginx
image: nginx:1.13.8-alpine
net: /run/netns/wg0
@@ -77,7 +77,3 @@ files:
PublicKey = AcS5t3PC5nL/oj0sYhc3yFpDlRaXoJ0mfEq6iq0rFF4=
AllowedIPs = 0.0.0.0/0
Endpoint = 127.0.0.1:51820
trust:
org:
- linuxkit
- library

5180
kernel/5.10.x/config-aarch64 Normal file

File diff suppressed because it is too large Load Diff

4796
kernel/5.10.x/config-x86_64 Normal file

File diff suppressed because it is too large Load Diff

0
kernel/5.10.x/deprecated Normal file
View File

View File

@@ -0,0 +1,55 @@
From 3635a8090f2271103511b68a5853b1d7e0a925b5 Mon Sep 17 00:00:00 2001
From: Matt Redfearn <matt.redfearn@mips.com>
Date: Wed, 3 Jan 2018 09:57:30 +0000
Subject: [PATCH] include/uapi/linux/swab: Fix potentially missing
__always_inline
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Commit bc27fb68aaad ("include/uapi/linux/byteorder, swab: force inlining
of some byteswap operations") added __always_inline to swab functions
and commit 283d75737837 ("uapi/linux/stddef.h: Provide __always_inline to
userspace headers") added a definition of __always_inline for use in
exported headers when the kernel's compiler.h is not available.
However, since swab.h does not include stddef.h, if the header soup does
not indirectly include it, the definition of __always_inline is missing,
resulting in a compilation failure, which was observed compiling the
perf tool using exported headers containing this commit:
In file included from /usr/include/linux/byteorder/little_endian.h:12:0,
from /usr/include/asm/byteorder.h:14,
from tools/include/uapi/linux/perf_event.h:20,
from perf.h:8,
from builtin-bench.c:18:
/usr/include/linux/swab.h:160:8: error: unknown type name __always_inline
static __always_inline __u16 __swab16p(const __u16 *p)
Fix this by replacing the inclusion of linux/compiler.h with
linux/stddef.h to ensure that we pick up that definition if required,
without relying on it's indirect inclusion. compiler.h is then included
indirectly, via stddef.h.
Fixes: 283d75737837 ("uapi/linux/stddef.h: Provide __always_inline to userspace headers")
Signed-off-by: Matt Redfearn <matt.redfearn@mips.com>
---
include/uapi/linux/swab.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/uapi/linux/swab.h b/include/uapi/linux/swab.h
index 7272f85d6d6a..3736f2fe1541 100644
--- a/include/uapi/linux/swab.h
+++ b/include/uapi/linux/swab.h
@@ -3,7 +3,7 @@
#define _UAPI_LINUX_SWAB_H
#include <linux/types.h>
-#include <linux/compiler.h>
+#include <linux/stddef.h>
#include <asm/bitsperlong.h>
#include <asm/swab.h>
--
2.26.2

View File

View File

@@ -0,0 +1,77 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 30 Oct 2020 13:59:06 +0100
Subject: [PATCH] highmem: Don't disable preemption on RT in kmap_atomic()
Disabling preemption makes it impossible to acquire sleeping locks within
kmap_atomic() section.
For PREEMPT_RT it is sufficient to disable migration.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
include/linux/highmem-internal.h | 27 ++++++++++++++++++++++-----
1 file changed, 22 insertions(+), 5 deletions(-)
--- a/include/linux/highmem-internal.h
+++ b/include/linux/highmem-internal.h
@@ -90,7 +90,11 @@ static inline void __kunmap_local(void *
static inline void *kmap_atomic_prot(struct page *page, pgprot_t prot)
{
- preempt_disable();
+ if (IS_ENABLED(CONFIG_PREEMPT_RT))
+ migrate_disable();
+ else
+ preempt_disable();
+
pagefault_disable();
return __kmap_local_page_prot(page, prot);
}
@@ -102,7 +106,11 @@ static inline void *kmap_atomic(struct p
static inline void *kmap_atomic_pfn(unsigned long pfn)
{
- preempt_disable();
+ if (IS_ENABLED(CONFIG_PREEMPT_RT))
+ migrate_disable();
+ else
+ preempt_disable();
+
pagefault_disable();
return __kmap_local_pfn_prot(pfn, kmap_prot);
}
@@ -111,7 +119,10 @@ static inline void __kunmap_atomic(void
{
kunmap_local_indexed(addr);
pagefault_enable();
- preempt_enable();
+ if (IS_ENABLED(CONFIG_PREEMPT_RT))
+ migrate_enable();
+ else
+ preempt_enable();
}
unsigned int __nr_free_highpages(void);
@@ -184,7 +195,10 @@ static inline void __kunmap_local(void *
static inline void *kmap_atomic(struct page *page)
{
- preempt_disable();
+ if (IS_ENABLED(CONFIG_PREEMPT_RT))
+ migrate_disable();
+ else
+ preempt_disable();
pagefault_disable();
return page_address(page);
}
@@ -205,7 +219,10 @@ static inline void __kunmap_atomic(void
kunmap_flush_on_unmap(addr);
#endif
pagefault_enable();
- preempt_enable();
+ if (IS_ENABLED(CONFIG_PREEMPT_RT))
+ migrate_enable();
+ else
+ preempt_enable();
}
static inline unsigned int nr_free_highpages(void) { return 0; }

View File

@@ -0,0 +1,55 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 6 Dec 2020 22:40:07 +0100
Subject: [PATCH] timers: Move clearing of base::timer_running under base::lock
syzbot reported KCSAN data races vs. timer_base::timer_running being set to
NULL without holding base::lock in expire_timers().
This looks innocent and most reads are clearly not problematic but for a
non-RT kernel it's completely irrelevant whether the store happens before
or after taking the lock. For an RT kernel moving the store under the lock
requires an extra unlock/lock pair in the case that there is a waiter for
the timer. But that's not the end of the world and definitely not worth the
trouble of adding boatloads of comments and annotations to the code. Famous
last words...
Reported-by: syzbot+aa7c2385d46c5eba0b89@syzkaller.appspotmail.com
Reported-by: syzbot+abea4558531bae1ba9fe@syzkaller.appspotmail.com
Link: https://lkml.kernel.org/r/87lfea7gw8.fsf@nanos.tec.linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: stable-rt@vger.kernel.org
---
kernel/time/timer.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
--- a/kernel/time/timer.c
+++ b/kernel/time/timer.c
@@ -1263,8 +1263,10 @@ static inline void timer_base_unlock_exp
static void timer_sync_wait_running(struct timer_base *base)
{
if (atomic_read(&base->timer_waiters)) {
+ raw_spin_unlock_irq(&base->lock);
spin_unlock(&base->expiry_lock);
spin_lock(&base->expiry_lock);
+ raw_spin_lock_irq(&base->lock);
}
}
@@ -1455,14 +1457,14 @@ static void expire_timers(struct timer_b
if (timer->flags & TIMER_IRQSAFE) {
raw_spin_unlock(&base->lock);
call_timer_fn(timer, fn, baseclk);
- base->running_timer = NULL;
raw_spin_lock(&base->lock);
+ base->running_timer = NULL;
} else {
raw_spin_unlock_irq(&base->lock);
call_timer_fn(timer, fn, baseclk);
+ raw_spin_lock_irq(&base->lock);
base->running_timer = NULL;
timer_sync_wait_running(base);
- raw_spin_lock_irq(&base->lock);
}
}
}

View File

@@ -0,0 +1,245 @@
From: Tian Tao <tiantao6@hisilicon.com>
Date: Sat, 13 Feb 2021 20:58:30 +1300
Subject: [PATCH 1/2] mm/zswap: add a flag to indicate if zpool can do sleep
map
Patch series "Fix the compatibility of zsmalloc and zswap".
The compatibility of zsmalloc and zswap was broken by commit 1ec3b5fe6eec
("mm/zswap: move to use crypto_acomp API for hardware acceleration").
Patch #1 adds a flag to zpool, then zswap used it to determine if zpool
drivers such as zbud/z3fold/zsmalloc will enter an atomic context after
mapping.
The difference between zbud/z3fold and zsmalloc is that zsmalloc requires
an atomic context that since its map function holds a preempt-disabled
lock, but zbud/z3fold don't require an atomic context. So patch #2 sets
flag sleep_mapped to true indicating that zbud/z3fold can sleep after
mapping. zsmalloc didn't support sleep after mapping, so don't set that
flag to true.
This patch (of 2):
Add a flag to zpool, named as "sleep_mapped", and have it set true for
zbud/z3fold, not set this flag for zsmalloc, so its default value is
false. Then zswap could go the current path if the flag is true; and if
it's false, copy data from src to a temporary buffer, then unmap the
handle, take the mutex, process the buffer instead of src to avoid
sleeping function called from atomic context.
[natechancellor@gmail.com: add return value in zswap_frontswap_load]
Link: https://lkml.kernel.org/r/20210121214804.926843-1-natechancellor@gmail.com
[tiantao6@hisilicon.com: fix potential memory leak]
Link: https://lkml.kernel.org/r/1611538365-51811-1-git-send-email-tiantao6@hisilicon.com
[colin.king@canonical.com: fix potential uninitialized pointer read on tmp]
Link: https://lkml.kernel.org/r/20210128141728.639030-1-colin.king@canonical.com
[tiantao6@hisilicon.com: fix variable 'entry' is uninitialized when used]
Link: https://lkml.kernel.org/r/1611223030-58346-1-git-send-email-tiantao6@hisilicon.com
Link: https://lkml.kernel.org/r/1611035683-12732-1-git-send-email-tiantao6@hisilicon.com
Link: https://lkml.kernel.org/r/1611035683-12732-2-git-send-email-tiantao6@hisilicon.com
[song.bao.hua@hisilicon.com: Rewrote changelog]
Fixes: 1ec3b5fe6e ("mm/zswap: move to use crypto_acomp API for hardware acceleration")
Signed-off-by: Tian Tao <tiantao6@hisilicon.com>
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Reviewed-by: Vitaly Wool <vitaly.wool@konsulko.com>
Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Reported-by: Mike Galbraith <efault@gmx.de>
Cc: Dan Streetman <ddstreet@ieee.org>
Cc: Seth Jennings <sjenning@redhat.com>
Cc: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Barry Song <song.bao.hua@hisilicon.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
include/linux/zpool.h | 3 ++
mm/zpool.c | 13 ++++++++++++
mm/zswap.c | 51 +++++++++++++++++++++++++++++++++++++++++++++-----
3 files changed, 62 insertions(+), 5 deletions(-)
--- a/include/linux/zpool.h
+++ b/include/linux/zpool.h
@@ -73,6 +73,7 @@ u64 zpool_get_total_size(struct zpool *p
* @malloc: allocate mem from a pool.
* @free: free mem from a pool.
* @shrink: shrink the pool.
+ * @sleep_mapped: whether zpool driver can sleep during map.
* @map: map a handle.
* @unmap: unmap a handle.
* @total_size: get total size of a pool.
@@ -100,6 +101,7 @@ struct zpool_driver {
int (*shrink)(void *pool, unsigned int pages,
unsigned int *reclaimed);
+ bool sleep_mapped;
void *(*map)(void *pool, unsigned long handle,
enum zpool_mapmode mm);
void (*unmap)(void *pool, unsigned long handle);
@@ -112,5 +114,6 @@ void zpool_register_driver(struct zpool_
int zpool_unregister_driver(struct zpool_driver *driver);
bool zpool_evictable(struct zpool *pool);
+bool zpool_can_sleep_mapped(struct zpool *pool);
#endif
--- a/mm/zpool.c
+++ b/mm/zpool.c
@@ -23,6 +23,7 @@ struct zpool {
void *pool;
const struct zpool_ops *ops;
bool evictable;
+ bool can_sleep_mapped;
struct list_head list;
};
@@ -183,6 +184,7 @@ struct zpool *zpool_create_pool(const ch
zpool->pool = driver->create(name, gfp, ops, zpool);
zpool->ops = ops;
zpool->evictable = driver->shrink && ops && ops->evict;
+ zpool->can_sleep_mapped = driver->sleep_mapped;
if (!zpool->pool) {
pr_err("couldn't create %s pool\n", type);
@@ -393,6 +395,17 @@ bool zpool_evictable(struct zpool *zpool
return zpool->evictable;
}
+/**
+ * zpool_can_sleep_mapped - Test if zpool can sleep when do mapped.
+ * @zpool: The zpool to test
+ *
+ * Returns: true if zpool can sleep; false otherwise.
+ */
+bool zpool_can_sleep_mapped(struct zpool *zpool)
+{
+ return zpool->can_sleep_mapped;
+}
+
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Dan Streetman <ddstreet@ieee.org>");
MODULE_DESCRIPTION("Common API for compressed memory storage");
--- a/mm/zswap.c
+++ b/mm/zswap.c
@@ -935,13 +935,19 @@ static int zswap_writeback_entry(struct
struct scatterlist input, output;
struct crypto_acomp_ctx *acomp_ctx;
- u8 *src;
+ u8 *src, *tmp = NULL;
unsigned int dlen;
int ret;
struct writeback_control wbc = {
.sync_mode = WB_SYNC_NONE,
};
+ if (!zpool_can_sleep_mapped(pool)) {
+ tmp = kmalloc(PAGE_SIZE, GFP_ATOMIC);
+ if (!tmp)
+ return -ENOMEM;
+ }
+
/* extract swpentry from data */
zhdr = zpool_map_handle(pool, handle, ZPOOL_MM_RO);
swpentry = zhdr->swpentry; /* here */
@@ -955,6 +961,7 @@ static int zswap_writeback_entry(struct
/* entry was invalidated */
spin_unlock(&tree->lock);
zpool_unmap_handle(pool, handle);
+ kfree(tmp);
return 0;
}
spin_unlock(&tree->lock);
@@ -979,6 +986,14 @@ static int zswap_writeback_entry(struct
dlen = PAGE_SIZE;
src = (u8 *)zhdr + sizeof(struct zswap_header);
+ if (!zpool_can_sleep_mapped(pool)) {
+
+ memcpy(tmp, src, entry->length);
+ src = tmp;
+
+ zpool_unmap_handle(pool, handle);
+ }
+
mutex_lock(acomp_ctx->mutex);
sg_init_one(&input, src, entry->length);
sg_init_table(&output, 1);
@@ -1033,7 +1048,11 @@ static int zswap_writeback_entry(struct
spin_unlock(&tree->lock);
end:
- zpool_unmap_handle(pool, handle);
+ if (zpool_can_sleep_mapped(pool))
+ zpool_unmap_handle(pool, handle);
+ else
+ kfree(tmp);
+
return ret;
}
@@ -1235,7 +1254,7 @@ static int zswap_frontswap_load(unsigned
struct zswap_entry *entry;
struct scatterlist input, output;
struct crypto_acomp_ctx *acomp_ctx;
- u8 *src, *dst;
+ u8 *src, *dst, *tmp;
unsigned int dlen;
int ret;
@@ -1253,15 +1272,33 @@ static int zswap_frontswap_load(unsigned
dst = kmap_atomic(page);
zswap_fill_page(dst, entry->value);
kunmap_atomic(dst);
+ ret = 0;
goto freeentry;
}
+ if (!zpool_can_sleep_mapped(entry->pool->zpool)) {
+
+ tmp = kmalloc(entry->length, GFP_ATOMIC);
+ if (!tmp) {
+ ret = -ENOMEM;
+ goto freeentry;
+ }
+ }
+
/* decompress */
dlen = PAGE_SIZE;
src = zpool_map_handle(entry->pool->zpool, entry->handle, ZPOOL_MM_RO);
if (zpool_evictable(entry->pool->zpool))
src += sizeof(struct zswap_header);
+ if (!zpool_can_sleep_mapped(entry->pool->zpool)) {
+
+ memcpy(tmp, src, entry->length);
+ src = tmp;
+
+ zpool_unmap_handle(entry->pool->zpool, entry->handle);
+ }
+
acomp_ctx = raw_cpu_ptr(entry->pool->acomp_ctx);
mutex_lock(acomp_ctx->mutex);
sg_init_one(&input, src, entry->length);
@@ -1271,7 +1308,11 @@ static int zswap_frontswap_load(unsigned
ret = crypto_wait_req(crypto_acomp_decompress(acomp_ctx->req), &acomp_ctx->wait);
mutex_unlock(acomp_ctx->mutex);
- zpool_unmap_handle(entry->pool->zpool, entry->handle);
+ if (zpool_can_sleep_mapped(entry->pool->zpool))
+ zpool_unmap_handle(entry->pool->zpool, entry->handle);
+ else
+ kfree(tmp);
+
BUG_ON(ret);
freeentry:
@@ -1279,7 +1320,7 @@ static int zswap_frontswap_load(unsigned
zswap_entry_put(tree, entry);
spin_unlock(&tree->lock);
- return 0;
+ return ret;
}
/* frees an entry in zswap */

View File

@@ -0,0 +1,45 @@
From: Tian Tao <tiantao6@hisilicon.com>
Date: Sat, 13 Feb 2021 20:58:31 +1300
Subject: [PATCH 2/2] mm: set the sleep_mapped to true for zbud and z3fold
zpool driver adds a flag to indicate whether the zpool driver can enter
an atomic context after mapping. This patch sets it true for z3fold and
zbud.
Link: https://lkml.kernel.org/r/1611035683-12732-3-git-send-email-tiantao6@hisilicon.com
[song.bao.hua@hisilicon.com: Rewrote changelog]
Fixes: 1ec3b5fe6e ("mm/zswap: move to use crypto_acomp API for hardware acceleration")
Signed-off-by: Tian Tao <tiantao6@hisilicon.com>
Reviewed-by: Vitaly Wool <vitaly.wool@konsulko.com>
Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Reported-by: Mike Galbraith <efault@gmx.de>
Cc: Seth Jennings <sjenning@redhat.com>
Cc: Dan Streetman <ddstreet@ieee.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Barry Song <song.bao.hua@hisilicon.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
mm/z3fold.c | 1 +
mm/zbud.c | 1 +
2 files changed, 2 insertions(+)
--- a/mm/z3fold.c
+++ b/mm/z3fold.c
@@ -1778,6 +1778,7 @@ static u64 z3fold_zpool_total_size(void
static struct zpool_driver z3fold_zpool_driver = {
.type = "z3fold",
+ .sleep_mapped = true,
.owner = THIS_MODULE,
.create = z3fold_zpool_create,
.destroy = z3fold_zpool_destroy,
--- a/mm/zbud.c
+++ b/mm/zbud.c
@@ -203,6 +203,7 @@ static u64 zbud_zpool_total_size(void *p
static struct zpool_driver zbud_zpool_driver = {
.type = "zbud",
+ .sleep_mapped = true,
.owner = THIS_MODULE,
.create = zbud_zpool_create,
.destroy = zbud_zpool_destroy,

View File

@@ -0,0 +1,42 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Sat, 23 Jan 2021 21:10:26 +0100
Subject: [PATCH] blk-mq: Always complete remote completions requests in
softirq
Controllers with multiple queues have their IRQ-handelers pinned to a
CPU. The core shouldn't need to complete the request on a remote CPU.
Remove this case and always raise the softirq to complete the request.
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Daniel Wagner <dwagner@suse.de>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
block/blk-mq.c | 14 +-------------
1 file changed, 1 insertion(+), 13 deletions(-)
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -628,19 +628,7 @@ static void __blk_mq_complete_request_re
{
struct request *rq = data;
- /*
- * For most of single queue controllers, there is only one irq vector
- * for handling I/O completion, and the only irq's affinity is set
- * to all possible CPUs. On most of ARCHs, this affinity means the irq
- * is handled on one specific CPU.
- *
- * So complete I/O requests in softirq context in case of single queue
- * devices to avoid degrading I/O performance due to irqsoff latency.
- */
- if (rq->q->nr_hw_queues == 1)
- blk_mq_trigger_softirq(rq);
- else
- rq->q->mq_ops->complete(rq);
+ blk_mq_trigger_softirq(rq);
}
static inline bool blk_mq_complete_need_ipi(struct request *rq)

View File

@@ -0,0 +1,188 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Sat, 23 Jan 2021 21:10:27 +0100
Subject: [PATCH] blk-mq: Use llist_head for blk_cpu_done
With llist_head it is possible to avoid the locking (the irq-off region)
when items are added. This makes it possible to add items on a remote
CPU without additional locking.
llist_add() returns true if the list was previously empty. This can be
used to invoke the SMP function call / raise sofirq only if the first
item was added (otherwise it is already pending).
This simplifies the code a little and reduces the IRQ-off regions.
blk_mq_raise_softirq() needs a preempt-disable section to ensure the
request is enqueued on the same CPU as the softirq is raised.
Some callers (USB-storage) invoke this path in preemptible context.
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Daniel Wagner <dwagner@suse.de>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
block/blk-mq.c | 97 ++++++++++++++++++++-----------------------------
include/linux/blkdev.h | 2 -
2 files changed, 42 insertions(+), 57 deletions(-)
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -41,7 +41,7 @@
#include "blk-mq-sched.h"
#include "blk-rq-qos.h"
-static DEFINE_PER_CPU(struct list_head, blk_cpu_done);
+static DEFINE_PER_CPU(struct llist_head, blk_cpu_done);
static void blk_mq_poll_stats_start(struct request_queue *q);
static void blk_mq_poll_stats_fn(struct blk_stat_callback *cb);
@@ -567,68 +567,29 @@ void blk_mq_end_request(struct request *
}
EXPORT_SYMBOL(blk_mq_end_request);
-/*
- * Softirq action handler - move entries to local list and loop over them
- * while passing them to the queue registered handler.
- */
-static __latent_entropy void blk_done_softirq(struct softirq_action *h)
+static void blk_complete_reqs(struct llist_head *list)
{
- struct list_head *cpu_list, local_list;
-
- local_irq_disable();
- cpu_list = this_cpu_ptr(&blk_cpu_done);
- list_replace_init(cpu_list, &local_list);
- local_irq_enable();
-
- while (!list_empty(&local_list)) {
- struct request *rq;
+ struct llist_node *entry = llist_reverse_order(llist_del_all(list));
+ struct request *rq, *next;
- rq = list_entry(local_list.next, struct request, ipi_list);
- list_del_init(&rq->ipi_list);
+ llist_for_each_entry_safe(rq, next, entry, ipi_list)
rq->q->mq_ops->complete(rq);
- }
}
-static void blk_mq_trigger_softirq(struct request *rq)
+static __latent_entropy void blk_done_softirq(struct softirq_action *h)
{
- struct list_head *list;
- unsigned long flags;
-
- local_irq_save(flags);
- list = this_cpu_ptr(&blk_cpu_done);
- list_add_tail(&rq->ipi_list, list);
-
- /*
- * If the list only contains our just added request, signal a raise of
- * the softirq. If there are already entries there, someone already
- * raised the irq but it hasn't run yet.
- */
- if (list->next == &rq->ipi_list)
- raise_softirq_irqoff(BLOCK_SOFTIRQ);
- local_irq_restore(flags);
+ blk_complete_reqs(this_cpu_ptr(&blk_cpu_done));
}
static int blk_softirq_cpu_dead(unsigned int cpu)
{
- /*
- * If a CPU goes away, splice its entries to the current CPU
- * and trigger a run of the softirq
- */
- local_irq_disable();
- list_splice_init(&per_cpu(blk_cpu_done, cpu),
- this_cpu_ptr(&blk_cpu_done));
- raise_softirq_irqoff(BLOCK_SOFTIRQ);
- local_irq_enable();
-
+ blk_complete_reqs(&per_cpu(blk_cpu_done, cpu));
return 0;
}
-
static void __blk_mq_complete_request_remote(void *data)
{
- struct request *rq = data;
-
- blk_mq_trigger_softirq(rq);
+ __raise_softirq_irqoff(BLOCK_SOFTIRQ);
}
static inline bool blk_mq_complete_need_ipi(struct request *rq)
@@ -657,6 +618,30 @@ static inline bool blk_mq_complete_need_
return cpu_online(rq->mq_ctx->cpu);
}
+static void blk_mq_complete_send_ipi(struct request *rq)
+{
+ struct llist_head *list;
+ unsigned int cpu;
+
+ cpu = rq->mq_ctx->cpu;
+ list = &per_cpu(blk_cpu_done, cpu);
+ if (llist_add(&rq->ipi_list, list)) {
+ INIT_CSD(&rq->csd, __blk_mq_complete_request_remote, rq);
+ smp_call_function_single_async(cpu, &rq->csd);
+ }
+}
+
+static void blk_mq_raise_softirq(struct request *rq)
+{
+ struct llist_head *list;
+
+ preempt_disable();
+ list = this_cpu_ptr(&blk_cpu_done);
+ if (llist_add(&rq->ipi_list, list))
+ raise_softirq(BLOCK_SOFTIRQ);
+ preempt_enable();
+}
+
bool blk_mq_complete_request_remote(struct request *rq)
{
WRITE_ONCE(rq->state, MQ_RQ_COMPLETE);
@@ -669,15 +654,15 @@ bool blk_mq_complete_request_remote(stru
return false;
if (blk_mq_complete_need_ipi(rq)) {
- INIT_CSD(&rq->csd, __blk_mq_complete_request_remote, rq);
- smp_call_function_single_async(rq->mq_ctx->cpu, &rq->csd);
- } else {
- if (rq->q->nr_hw_queues > 1)
- return false;
- blk_mq_trigger_softirq(rq);
+ blk_mq_complete_send_ipi(rq);
+ return true;
}
- return true;
+ if (rq->q->nr_hw_queues == 1) {
+ blk_mq_raise_softirq(rq);
+ return true;
+ }
+ return false;
}
EXPORT_SYMBOL_GPL(blk_mq_complete_request_remote);
@@ -3892,7 +3877,7 @@ static int __init blk_mq_init(void)
int i;
for_each_possible_cpu(i)
- INIT_LIST_HEAD(&per_cpu(blk_cpu_done, i));
+ init_llist_head(&per_cpu(blk_cpu_done, i));
open_softirq(BLOCK_SOFTIRQ, blk_done_softirq);
cpuhp_setup_state_nocalls(CPUHP_BLOCK_SOFTIRQ_DEAD,
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -153,7 +153,7 @@ struct request {
*/
union {
struct hlist_node hash; /* merge hash */
- struct list_head ipi_list;
+ struct llist_node ipi_list;
};
/*

View File

@@ -0,0 +1,79 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 9 Nov 2020 21:30:41 +0100
Subject: [PATCH 1/2] kthread: Move prio/affinite change into the newly created
thread
With enabled threaded interrupts the nouveau driver reported the
following:
| Chain exists of:
| &mm->mmap_lock#2 --> &device->mutex --> &cpuset_rwsem
|
| Possible unsafe locking scenario:
|
| CPU0 CPU1
| ---- ----
| lock(&cpuset_rwsem);
| lock(&device->mutex);
| lock(&cpuset_rwsem);
| lock(&mm->mmap_lock#2);
The device->mutex is nvkm_device::mutex.
Unblocking the lockchain at `cpuset_rwsem' is probably the easiest thing
to do.
Move the priority reset to the start of the newly created thread.
Fixes: 710da3c8ea7df ("sched/core: Prevent race condition between cpuset and __sched_setscheduler()")
Reported-by: Mike Galbraith <efault@gmx.de>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Link: https://lkml.kernel.org/r/a23a826af7c108ea5651e73b8fbae5e653f16e86.camel@gmx.de
---
kernel/kthread.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
--- a/kernel/kthread.c
+++ b/kernel/kthread.c
@@ -243,6 +243,7 @@ EXPORT_SYMBOL_GPL(kthread_parkme);
static int kthread(void *_create)
{
+ static const struct sched_param param = { .sched_priority = 0 };
/* Copy data: it's on kthread's stack */
struct kthread_create_info *create = _create;
int (*threadfn)(void *data) = create->threadfn;
@@ -273,6 +274,13 @@ static int kthread(void *_create)
init_completion(&self->parked);
current->vfork_done = &self->exited;
+ /*
+ * The new thread inherited kthreadd's priority and CPU mask. Reset
+ * back to default in case they have been changed.
+ */
+ sched_setscheduler_nocheck(current, SCHED_NORMAL, &param);
+ set_cpus_allowed_ptr(current, housekeeping_cpumask(HK_FLAG_KTHREAD));
+
/* OK, tell user we're spawned, wait for stop or wakeup */
__set_current_state(TASK_UNINTERRUPTIBLE);
create->result = current;
@@ -370,7 +378,6 @@ struct task_struct *__kthread_create_on_
}
task = create->result;
if (!IS_ERR(task)) {
- static const struct sched_param param = { .sched_priority = 0 };
char name[TASK_COMM_LEN];
/*
@@ -379,13 +386,6 @@ struct task_struct *__kthread_create_on_
*/
vsnprintf(name, sizeof(name), namefmt, args);
set_task_comm(task, name);
- /*
- * root may have changed our (kthreadd's) priority or CPU mask.
- * The kernel thread should not inherit these properties.
- */
- sched_setscheduler_nocheck(task, SCHED_NORMAL, &param);
- set_cpus_allowed_ptr(task,
- housekeeping_cpumask(HK_FLAG_KTHREAD));
}
kfree(create);
return task;

Some files were not shown because too many files have changed in this diff Show More