Commit Graph

322 Commits

Author SHA1 Message Date
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
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
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
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
b3f276f8f9 update linuxkit/init dependencies
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2022-03-21 14:15:28 +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
David Scott
f14ad44ce4 update shas for pkg/init
Signed-off-by: David Scott <dave@recoil.org>
2022-03-13 19:57:25 +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
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
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
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
Avi Deitcher
260cc85b52 Update package tags
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-11-09 14:02:43 +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
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
David Scott
e8f8a409e8 Update hashes for pkg/init
Signed-off-by: David Scott <dave@recoil.org>
2021-10-26 19:52:22 +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
d4c6ab742b Update hashes for pkg/...
Signed-off-by: David Scott <dave@recoil.org>
2021-10-18 21:02:44 +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
David Scott
c3642dd089 Update hashes for pkg/mount
Signed-off-by: David Scott <dave@recoil.org>
2021-10-15 08:19:03 +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
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
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
031e130c8c Update default kernel to 5.10.x
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2021-05-03 22:06:31 +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
711720e0d5 Update use of test packages to latest
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-04-28 09:12:07 +03: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
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
Avi Deitcher
9633d23d37 write to cache
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2021-02-12 16:18:21 +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
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
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
279ee46f39 update hashes for pkg/init
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2020-10-19 20:54:16 +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
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
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
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
13dd8a7e9e Update YAMLs to latest kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-05-09 11:57:08 +01: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
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
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
1e768f56eb Update YAMLs to latest kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-04-10 18:06:58 +01: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
6938fe5aa8 Update default kernel to 5.4.x
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-03-28 11:58:57 +00:00
Avi Deitcher
7c1df34c38 update hashes
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2020-03-24 12:13:41 +02: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
57034d8a49 Update YAMLs to latest kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2020-01-30 09:11:32 +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
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
54a2654501 Update YAMLs to latest kernels
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2019-12-18 23:41:09 +00:00