ostree/tests
Jonathan Lebon 81b13da8e3 lib/deploy: Add support for overlay initrds
In FCOS and RHCOS, the need to configure software in the initramfs has
come up multiple times. Sometimes, using kernel arguments suffices.
Other times, it really must be a configuration file. Rebuilding the
initramfs on the client-side however is a costly operation. Not only
does it add complexity to the update workflow, it also erodes a lot of
the value obtained from using the baked "blessed" initramfs from the
tree itself.

One elegant way to address this is to allow specifying multiple
initramfses. This is supported by most bootloaders (notably GRUB) and
results in each initrd being overlayed on top of each other.

This patch allows libostree clients to leverage this so that they can
avoid regenerating the initramfs entirely. libostree itself is agnostic
as to what kind and how much data overlay initrds contain. It's up to
the clients to enforce such boundaries.

To implement this, we add a new ostree_sysroot_stage_overlay_initrd
which takes a file descriptor and returns a checksum. Then users can
pass these checksums when calling the deploy APIs via the new array
option `overlay_initrds`. We copy these files into `/boot` and add them
to the BLS as another `initrd` entry.
2020-09-30 13:29:32 -04:00
..
coccinelle Add Coccinelle usage: one for blacklisting, one for patch collection 2017-03-30 19:19:54 +00:00
gpg-verify-data tests/gpg-verify-data: Empty out trustdb.gpg 2020-01-24 13:02:09 -07:00
gpghome tests/gpghome: Create revocation certificates for keys 2020-01-24 13:02:09 -07:00
inst tests/inst: Update to published sh-inline crate 2020-08-26 17:00:19 +00:00
kola/nondestructive Add new Rust-based tests 2020-05-27 21:59:23 +00:00
kolainst lib/deploy: Add support for overlay initrds 2020-09-30 13:29:32 -04:00
.gitignore lib/kargs: Make API public and upstream new rpm-ostree APIs 2019-06-18 14:29:14 +00:00
admin-test.sh tests/admin-test: Fix --allow-downgrade check 2020-05-22 13:59:36 -04:00
archive-test.sh commit: Add --base argument 2020-04-06 19:28:51 +00:00
basic-test.sh Add new Rust-based tests 2020-05-27 21:59:23 +00:00
bootloader-entries-crosscheck.py sysroot: Support /boot on root or as seperate filesystem for syslinux and u-boot 2020-07-15 20:37:49 +01:00
coccinelle.sh Add Coccinelle usage: one for blacklisting, one for patch collection 2017-03-30 19:19:54 +00:00
corrupt-repo-ref.js Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
fah-deltadata-new.tar.xz tests: Add a "pull-test2" that uses slightly more realistic content 2017-11-01 17:38:26 +00:00
fah-deltadata-old.tar.xz tests: Add a "pull-test2" that uses slightly more realistic content 2017-11-01 17:38:26 +00:00
get-byte-order.c tests: Assert that byte-order is swapped on LE but not BE CPUs 2018-01-04 12:32:47 +00:00
glib.supp glib.supp: Suppress g_task -> thread leaks 2016-07-28 10:10:17 +00:00
grub2-entries-crosscheck.py tests: Port the last python2 script to python3 2018-04-23 18:33:45 +00:00
libostreetest.c tests: [scan-build] Initialize a variable 2019-10-18 15:07:39 +00:00
libostreetest.h Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
libtest-core.sh tests/kola: Move to tests/kolainst 2020-05-27 15:16:50 +00:00
libtest.sh tests/libtest.sh: Add skip_without_sign_ed25519() function 2020-09-14 09:27:19 +02:00
ostree-grub-generator Introducing ostree-grub-generator 2016-04-04 14:19:35 +00:00
ostree-path-traverse.tar.gz tests: Add a test case for path traversal in a dirtree 2018-01-12 19:38:34 +00:00
ostree.supp tests: Modernize valgrind infrastructure 2016-06-09 21:10:35 +00:00
pre-endian-deltas-repo-big.tar.xz deltas: Heuristically detect endianness for older deltas 2016-02-26 08:19:01 -05:00
pre-endian-deltas-repo-little.tar.xz deltas: Heuristically detect endianness for older deltas 2016-02-26 08:19:01 -05:00
pre-signed-pull-data.tar.gz tests: Add a pre-signed-pull.sh test 2020-06-11 18:56:35 +00:00
pull-test.sh Merge pull request #2152 from cgwalters/pull-fdatasync 2020-07-20 13:55:26 -04:00
pull-test2.sh tests: use option "--no-sign-verify" for adding remote 2020-03-25 15:23:54 +03:00
readdir-rand.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
repo-finder-mount.c Avoid shadowing local variables 2020-09-13 10:08:02 -07:00
runkola Add new Rust-based tests 2020-05-27 21:59:23 +00:00
test-admin-deploy-2.sh admin/pin: Enforce that index is a number 2020-08-19 13:11:55 +00:00
test-admin-deploy-bootid-gc.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-admin-deploy-clean.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-admin-deploy-etcmerge-cornercases.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-admin-deploy-grub2.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-admin-deploy-karg.sh lib/kernel-args: Store kernel args as key/value entries 2019-11-07 23:39:10 -05:00
test-admin-deploy-nomerge.sh deploy: Add --no-merge 2020-04-22 14:09:54 +00:00
test-admin-deploy-none.sh lib/deploy: Also install HMAC file into /boot 2019-10-29 16:45:29 -04:00
test-admin-deploy-switch.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-admin-deploy-syslinux.sh deploy: Change BootLoaderSpec filenames so they can be used for sorting 2018-06-27 18:08:28 +00:00
test-admin-deploy-uboot.sh deploy: support devicetree directory 2020-05-29 19:56:11 +02:00
test-admin-gpg.sh tests: Avoid musl failure with `cp -a` 2019-11-01 05:05:53 +00:00
test-admin-instutil-set-kargs.sh lib/kargs: allow empty-list arguments 2018-12-10 19:39:23 +00:00
test-admin-locking.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-admin-pull-deploy-commit.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-admin-pull-deploy-split.sh tests: Escape periods when appropriate 2019-04-11 14:28:32 +00:00
test-admin-upgrade-endoflife.sh deploy: Change BootLoaderSpec filenames so they can be used for sorting 2018-06-27 18:08:28 +00:00
test-admin-upgrade-not-backwards.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-admin-upgrade-systemd-update.sh deploy: Delete .updated file from /etc and /var on new deployments 2018-06-18 13:21:52 +00:00
test-admin-upgrade-unconfigured.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-archivez.sh commit: Add --base argument 2020-04-06 19:28:51 +00:00
test-auto-summary.sh lib/config: Rename change-update-summary to auto-... 2018-08-01 19:59:07 +00:00
test-basic-c.c Only verify OSTREE_MAX_METADATA_SIZE for HTTP fetches 2018-10-01 13:23:50 +00:00
test-basic-root.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-basic-user-only.sh lib/commit: Try checksum+hardlink for untrusted local same-uid repos 2018-12-04 20:38:41 +00:00
test-basic-user.sh checkout: Ensure copies of unreadable usermode checkouts are readable 2020-09-16 15:14:54 +00:00
test-basic.sh lib/commit: Try checksum+hardlink for untrusted local same-uid repos 2018-12-04 20:38:41 +00:00
test-bloom.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-bsdiff.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-checksum.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-commit-sign.sh tests: Always cleanup gpg-agent when exiting 2019-06-19 17:30:24 +00:00
test-concurrency.py lib/repo: Enable locking by default, but drop external API 2018-04-30 17:24:51 +00:00
test-config.sh bin: Better handle -- 2019-08-14 12:31:10 +00:00
test-core.js Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-corruption.sh fsck: Add --all to print all corrupted object 2018-05-24 21:00:52 +00:00
test-create-usb.sh tests/gpg: fix GPG-dependent shell tests if no GPG support 2019-08-01 02:06:47 +00:00
test-delta-ed25519.sh tests/delta: Add new tests for applying signed deltas 2020-09-14 09:27:19 +02:00
test-delta-sign.sh tests/delta: Add new tests for applying signed deltas 2020-09-14 09:27:19 +02:00
test-delta.sh static-delta: Change `show` to display from/to commits 2019-03-11 13:59:27 +00:00
test-demo-buildsystem.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-export.sh tests/export: Guard with check for libarchive 2019-10-24 19:08:59 +01:00
test-find-remotes.sh tests/gpg: fix GPG-dependent shell tests if no GPG support 2019-08-01 02:06:47 +00:00
test-fsck-collections.sh tests: Escape periods when appropriate 2019-04-11 14:28:32 +00:00
test-fsck-delete.sh fsck: Add test for --delete corruption, fix repair, and partial commit checks 2019-09-09 13:40:36 +00:00
test-gpg-signed-commit.sh tests/gpg: Skip tests when subkeys can't be expired 2019-07-27 03:20:21 +00:00
test-gpg-verify-result.c tests/gpg: Test ostree_gpg_verify_result_require_valid_signature 2020-01-24 13:02:17 -07:00
test-help.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-include-ostree-h.c tests: Add test for including ostree.h 2018-06-07 17:28:49 +00:00
test-init-collections.sh tests: Escape periods when appropriate 2019-04-11 14:28:32 +00:00
test-kargs.c lib/kernel-args: Store kernel args as key/value entries 2019-11-07 23:39:10 -05:00
test-keyfile-utils.c lib/keyfile: Treat "group not found" the same as "key not found" 2019-11-07 21:15:41 +00:00
test-libarchive-import.c ci: Replace PAPR with CoreOS CI 2020-02-06 23:14:42 +00:00
test-libarchive.sh libarchive: Support commit sizes metadata 2020-01-20 20:42:27 -07:00
test-local-pull-depth.sh lib/pull: Don't leave commits pulled by depth as partial 2020-03-19 10:10:50 -04:00
test-local-pull.sh pull: Only have API to disable signapi for local pulls 2020-05-17 13:52:24 +00:00
test-lzma.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-mock-gio.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-mock-gio.h Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-mutable-tree.c OstreeMutableTree: Invalidate parent contents checksum when metadata changes 2018-06-29 21:31:08 +00:00
test-no-initramfs.sh tests: Escape periods when appropriate 2019-04-11 14:28:32 +00:00
test-oldstyle-partial.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-osupdate-dtb.sh deploy: Remove deployment bootcsum assertion 2020-09-24 21:24:48 +00:00
test-ot-opt-utils.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-ot-tool-util.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-ot-unix-utils.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-parent.sh tests/gpg: fix GPG-dependent shell tests if no GPG support 2019-08-01 02:06:47 +00:00
test-pre-signed-pull.sh sign/ed25519: Output failed signatures in error message 2020-06-16 18:20:54 +03:00
test-prune-collections.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-prune.sh prune: Error if --static-deltas-only without --delete-commit 2018-03-05 17:39:35 +00:00
test-pull-bare.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-bareuser.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-bareuseronly.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-basicauth.sh pull: Add support for basic auth 2019-12-02 22:48:33 +00:00
test-pull-c.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-collections.sh Don't copy summary for collection-ref mirror subset pulls 2020-03-28 10:35:19 -07:00
test-pull-commit-only.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-contenturl.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-corruption.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-depth.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-large-metadata.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-localcache.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-metalink.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-mirror-summary.sh tests/gpg: fix GPG-dependent shell tests if no GPG support 2019-08-01 02:06:47 +00:00
test-pull-mirrorlist.sh tests: use option "--no-sign-verify" for adding remote 2020-03-25 15:23:54 +03:00
test-pull-override-url.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-repeated.sh tests/pull-repeated: Bump up retries to match max fails 2020-03-24 12:24:46 +00:00
test-pull-resume.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-sizes.sh tests/pull-sizes: Disable xattrs everywhere 2020-04-05 18:38:26 +00:00
test-pull-subpath.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-summary-sigs.sh lib/gpg: Add more specific OstreeGpgError codes 2020-01-24 13:02:17 -07:00
test-pull-untrusted.sh lib/commit: Try checksum+hardlink for untrusted local same-uid repos 2018-12-04 20:38:41 +00:00
test-pull2-bareuseronly.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-refs-collections.sh tests: use option "--no-sign-verify" for adding remote 2020-03-25 15:23:54 +03:00
test-refs.sh bin/refs: Allow overwriting existing ref 2019-06-12 15:00:19 +00:00
test-remote-add-collections.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-remote-add.sh tests: use option "--no-sign-verify" for adding remote 2020-03-25 15:23:54 +03:00
test-remote-cookies.sh lib/fetcher: Allow clients to append to User-Agent 2018-03-16 19:21:31 +00:00
test-remote-gpg-import.sh tests/gpg: Add tests for importing updated remote GPG keys 2020-01-24 13:02:17 -07:00
test-remote-headers.sh tests: Move assert_fail function to tests/libtest.sh 2018-07-05 17:59:09 +00:00
test-remotes-config-dir.js tests/gpg: skip test in JS if GPG is not supported 2020-03-25 15:23:54 +03:00
test-repo-finder-avahi.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-repo-finder-config.c Avoid shadowing local variables 2020-09-13 10:08:02 -07:00
test-repo-finder-mount-integration.sh tests/libtest: Allow appending actions to be run on EXIT 2019-06-19 17:30:24 +00:00
test-repo-finder-mount.c Avoid shadowing local variables 2020-09-13 10:08:02 -07:00
test-repo.c tests: Update tests for ostree_repo_get_min_free_space_bytes() 2018-09-21 15:09:12 +00:00
test-reset-nonlinear.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-rofiles-fuse.sh tests/libtest: Allow appending actions to be run on EXIT 2019-06-19 17:30:24 +00:00
test-rollsum-cli.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-rollsum.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-signed-commit.sh signapi: Change API to also return a success message 2020-06-17 00:33:47 +00:00
test-signed-pull-summary.sh sign/ed25519: Output failed signatures in error message 2020-06-16 18:20:54 +03:00
test-signed-pull.sh pull: Add support for sign-verify=<list> 2020-05-22 19:10:32 +00:00
test-sizes.js lib/commit: Include object type in sizes metadata 2020-01-20 20:42:27 -07:00
test-summary-collections.sh tests: use option "--no-sign-verify" for adding remote 2020-03-25 15:23:54 +03:00
test-summary-update.sh tests/gpg: fix GPG-dependent shell tests if no GPG support 2019-08-01 02:06:47 +00:00
test-summary-view.sh tests/gpg: fix GPG-dependent shell tests if no GPG support 2019-08-01 02:06:47 +00:00
test-switchroot.sh Merge pull request #1987 from akiernan/us-switchroot-tests 2020-01-16 16:47:41 +01:00
test-symbols.sh lib: Minor versioning related fixes 2020-09-25 15:30:20 -04:00
test-sysroot-c.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-sysroot.js Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-varint.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-xattrs.sh tests: Escape periods when appropriate 2019-04-11 14:28:32 +00:00