Skip to content

Commit 66856bd

Browse files
author
Robert Fairley
committed
Support kargs.d directories for default kargs
Add the following config directories for setting default kernel arguments: /etc/ostree/kargs.d (host config) /usr/lib/ostree-boot/kargs.d (base config) These directories contain files whose contents consist of a karg snippet, which is a collection kernel parameter keys and values. Example of a snippet: ``` KEY=VALUE ANOTHERKEY SAMEKEY=VALUE2 FIRSTKEY=1 SAMEKEY=VALUE3 SECONDKEY=2 KEY= KEY.KEY-KEY_KEY="some space-separated values" ``` The bootconfig key `ostree-kargs-generated-from-config` indicates whether the kargs were generated by ostree from the kargs.d directories (`true`), or copied from the previous deployment (`false`). Editing the kargs through the command line (e.g. `ostree admin deploy --karg=`) will set the flag to `false`, and kargs will be copied from the previous deployment for subsequent deployments. Closes: ostreedev#479
1 parent 7520b1c commit 66856bd

7 files changed

+609
-24
lines changed

Makefile-tests.am

+1
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ _installed_or_uninstalled_test_scripts = \
9898
tests/test-admin-deploy-syslinux.sh \
9999
tests/test-admin-deploy-2.sh \
100100
tests/test-admin-deploy-karg.sh \
101+
tests/test-admin-deploy-karg-default.sh \
101102
tests/test-admin-deploy-switch.sh \
102103
tests/test-admin-deploy-etcmerge-cornercases.sh \
103104
tests/test-admin-deploy-uboot.sh \

src/libostree/ostree-sysroot-deploy.c

+331-21
Large diffs are not rendered by default.

src/libostree/ostree-sysroot-private.h

+2
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,8 @@ struct OstreeSysroot {
7979
#define _OSTREE_SYSROOT_RUNSTATE_STAGED_LOCKED "/run/ostree/staged-deployment-locked"
8080
#define _OSTREE_SYSROOT_DEPLOYMENT_RUNSTATE_DIR "/run/ostree/deployment-state/"
8181
#define _OSTREE_SYSROOT_DEPLOYMENT_RUNSTATE_FLAG_DEVELOPMENT "unlocked-development"
82+
#define _OSTREE_SYSROOT_KARGS_HOST "etc/ostree/kargs.d"
83+
#define _OSTREE_SYSROOT_KARGS_BASE "usr/lib/ostree-boot/kargs.d"
8284

8385
void
8486
_ostree_sysroot_emit_journal_msg (OstreeSysroot *self,

tests/libtest.sh

+49
Original file line numberDiff line numberDiff line change
@@ -512,6 +512,55 @@ os_repository_new_commit ()
512512
cd ${test_tmpdir}
513513
}
514514

515+
# TODO: deduplicate this with os_repository_new_commit()
516+
os_repository_commit ()
517+
{
518+
repo=${1:-testos-repo}
519+
boot_checksum_iteration=${2:-0}
520+
content_iteration=${3:-0}
521+
branch=${4:-testos/buildmaster/x86_64-runtime}
522+
export version=${5:-$(date "+%Y%m%d.${content_iteration}")}
523+
echo "BOOT ITERATION: $boot_checksum_iteration"
524+
cd ${test_tmpdir}/osdata
525+
kver=3.6.0
526+
if test -f usr/lib/modules/${kver}/vmlinuz; then
527+
bootdir=usr/lib/modules/${kver}
528+
else
529+
if test -d usr/lib/ostree-boot; then
530+
bootdir=usr/lib/ostree-boot
531+
else
532+
bootdir=boot
533+
fi
534+
fi
535+
rm ${bootdir}/*
536+
kernel_path=${bootdir}/vmlinuz
537+
initramfs_path=${bootdir}/initramfs.img
538+
if [[ $bootdir != usr/lib/modules/* ]]; then
539+
kernel_path=${kernel_path}-${kver}
540+
initramfs_path=${bootdir}/initramfs-${kver}.img
541+
fi
542+
echo "new: a kernel ${boot_checksum_iteration}" > ${kernel_path}
543+
echo "new: an initramfs ${boot_checksum_iteration}" > ${initramfs_path}
544+
bootcsum=$(cat ${kernel_path} ${initramfs_path} | sha256sum | cut -f 1 -d ' ')
545+
export bootcsum
546+
if [[ $bootdir != usr/lib/modules/* ]]; then
547+
mv ${kernel_path}{,-${bootcsum}}
548+
mv ${initramfs_path}{,-${bootcsum}}
549+
fi
550+
551+
${CMD_PREFIX} ostree --repo=${test_tmpdir}/${repo} commit --add-metadata-string "version=${version}" -b $branch -s "Build"
552+
cd ${test_tmpdir}
553+
}
554+
555+
os_tree_write_file ()
556+
{
557+
path=${1}
558+
contents="${2}"
559+
cd ${test_tmpdir}/osdata
560+
echo "${contents}" > ${path}
561+
cd ${test_tmpdir}
562+
}
563+
515564
_have_user_xattrs=''
516565
have_user_xattrs() {
517566
assert_has_setfattr
+159
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
#!/bin/bash
2+
#
3+
# Copyright (C) 2019 Robert Fairley <rfairley@redhat.com>
4+
#
5+
# SPDX-License-Identifier: LGPL-2.0+
6+
#
7+
# This library is free software; you can redistribute it and/or
8+
# modify it under the terms of the GNU Lesser General Public
9+
# License as published by the Free Software Foundation; either
10+
# version 2 of the License, or (at your option) any later version.
11+
#
12+
# This library is distributed in the hope that it will be useful,
13+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
14+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15+
# Lesser General Public License for more details.
16+
#
17+
# You should have received a copy of the GNU Lesser General Public
18+
# License along with this library; if not, write to the
19+
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20+
# Boston, MA 02111-1307, USA.
21+
22+
set -euo pipefail
23+
24+
. $(dirname $0)/libtest.sh
25+
26+
# Exports OSTREE_SYSROOT so --sysroot not needed.
27+
setup_os_repository "archive" "syslinux"
28+
29+
echo "1..7"
30+
31+
${CMD_PREFIX} ostree --repo=sysroot/ostree/repo pull-local --remote=testos testos-repo testos/buildmaster/x86_64-runtime
32+
33+
${CMD_PREFIX} ostree admin deploy --os=testos testos:testos/buildmaster/x86_64-runtime
34+
assert_has_dir sysroot/boot/ostree/testos-${bootcsum}
35+
# Check we generate kargs from the kargs.d configs from the first deployment.
36+
assert_file_has_content sysroot/boot/loader/entries/ostree-1-testos.conf 'ostree-kargs-generated-from-config.*true'
37+
assert_file_has_content sysroot/boot/loader/entries/ostree-1-testos.conf 'ostree.*options.*generated from.*kargs\.d'
38+
39+
initial_rev=$(${CMD_PREFIX} ostree --repo=sysroot/ostree/repo rev-parse testos/buildmaster/x86_64-runtime)
40+
echo "initial_rev=${initial_rev}"
41+
42+
# Configure kargs stored in the ostree commit.
43+
mkdir -p osdata/usr/lib/ostree-boot/kargs.d
44+
os_tree_write_file "usr/lib/ostree-boot/kargs.d/4000_FOO" "FOO=USR_1"
45+
os_tree_write_file "usr/lib/ostree-boot/kargs.d/4001_FOO2" "FOO2=USR_2"
46+
os_repository_commit "testos-repo"
47+
48+
# Upgrade to tree with newly-committed kargs files.
49+
${CMD_PREFIX} ostree --repo=sysroot/ostree/repo remote add --set=gpg-verify=false testos file://$(pwd)/testos-repo testos/buildmaster/x86_64-runtime
50+
${CMD_PREFIX} ostree admin upgrade --os=testos
51+
# Sanity check a new boot directory was created after upgrading.
52+
assert_has_dir sysroot/boot/ostree/testos-${bootcsum}
53+
54+
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'options.*FOO=USR_1.*FOO2=USR_2'
55+
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'ostree-kargs-generated-from-config.*true'
56+
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'ostree.*options.*generated from.*kargs\.d'
57+
58+
echo "ok default kargs base config"
59+
60+
# Configure kargs stored in the default configuration (/usr/etc).
61+
mkdir -p osdata/usr/etc/ostree/kargs.d
62+
os_tree_write_file "usr/etc/ostree/kargs.d/8000_MOO" "MOO=ETC_USR_1"
63+
os_tree_write_file "usr/etc/ostree/kargs.d/8001_MOO2" "MOO2=ETC_USR_2"
64+
os_repository_commit "testos-repo"
65+
66+
${CMD_PREFIX} ostree admin upgrade --os=testos
67+
assert_has_dir sysroot/boot/ostree/testos-${bootcsum}
68+
69+
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'options.*FOO=USR_1.*FOO2=USR_2.*MOO=ETC_USR_1.*MOO2=ETC_USR_2'
70+
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'ostree-kargs-generated-from-config.*true'
71+
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'ostree.*options.*generated from.*kargs\.d'
72+
73+
echo "ok default kargs default config"
74+
75+
# Configure kargs through the host config file.
76+
rev=$(${CMD_PREFIX} ostree --repo=sysroot/ostree/repo rev-parse testos/buildmaster/x86_64-runtime)
77+
echo "rev=${rev}"
78+
etc=sysroot/ostree/deploy/testos/deploy/${rev}.0/etc
79+
assert_has_dir ${etc}
80+
mkdir -p ${etc}/ostree/kargs.d
81+
# Configure a new karg (append).
82+
echo "HELLO=ETC_1" > ${etc}/ostree/kargs.d/2000_HELLO
83+
# Overwrite existing karg from /usr/etc/ostree/kargs.d (replace).
84+
echo "MOO=ETC_2" > ${etc}/ostree/kargs.d/8000_MOO
85+
# Overwrite existing karg from /usr/lib/ostree-boot/kargs.d (replace).
86+
echo "FOO=ETC_3" > ${etc}/ostree/kargs.d/4000_FOO
87+
88+
# Re-deploy with host-configured kernel args.
89+
${CMD_PREFIX} ostree admin deploy --os=testos testos:testos/buildmaster/x86_64-runtime
90+
91+
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'options.*HELLO=ETC_1.*FOO=ETC_3.*FOO2=USR_2.*MOO=ETC_2.*MOO2=ETC_USR_2'
92+
assert_not_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'MOO=ETC_USR_1'
93+
assert_not_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'FOO=USR_1'
94+
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'ostree-kargs-generated-from-config.*true'
95+
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'ostree.*options.*generated from.*kargs\.d'
96+
97+
echo "ok default kargs host config"
98+
99+
rev=$(${CMD_PREFIX} ostree --repo=sysroot/ostree/repo rev-parse testos/buildmaster/x86_64-runtime)
100+
echo "rev=${rev}"
101+
etc=sysroot/ostree/deploy/testos/deploy/${rev}.1/etc
102+
mkdir -p ${etc}/ostree/kargs.d
103+
# Clear base kargs by writing an empty file which overrides them (delete).
104+
echo "" > ${etc}/ostree/kargs.d/8000_MOO
105+
echo "" > ${etc}/ostree/kargs.d/4000_FOO
106+
107+
${CMD_PREFIX} ostree admin deploy --os=testos testos:testos/buildmaster/x86_64-runtime
108+
109+
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'options.*HELLO=ETC_1.*FOO2=USR_2.*MOO2=ETC_USR_2'
110+
assert_not_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'MOO\>'
111+
assert_not_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'FOO\>'
112+
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'ostree-kargs-generated-from-config.*true'
113+
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'ostree.*options.*generated from.*kargs\.d'
114+
115+
echo "ok default kargs delete empty file"
116+
117+
rev=$(${CMD_PREFIX} ostree --repo=sysroot/ostree/repo rev-parse testos/buildmaster/x86_64-runtime)
118+
echo "rev=${rev}"
119+
etc=sysroot/ostree/deploy/testos/deploy/${rev}.2/etc
120+
mkdir -p ${etc}/ostree/kargs.d
121+
rm ${etc}/ostree/kargs.d/8000_MOO
122+
rm ${etc}/ostree/kargs.d/4000_FOO
123+
# Clear base kargs by symlinking to /dev/null.
124+
ln -s /dev/null ${etc}/ostree/kargs.d/8000_MOO
125+
ln -s /dev/null ${etc}/ostree/kargs.d/4000_FOO
126+
127+
${CMD_PREFIX} ostree admin deploy --os=testos testos:testos/buildmaster/x86_64-runtime
128+
129+
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'options.*HELLO=ETC_1.*FOO2=USR_2.*MOO2=ETC_USR_2'
130+
assert_not_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'MOO\>'
131+
assert_not_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'FOO\>'
132+
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'ostree-kargs-generated-from-config.*true'
133+
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'ostree.*options.*generated from.*kargs\.d'
134+
135+
echo "ok default kargs delete /dev/null"
136+
137+
${CMD_PREFIX} ostree admin upgrade --os=testos --allow-downgrade --override-commit=${initial_rev}
138+
139+
# Only the config in /etc/ostree/kargs.d remains.
140+
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'options.*HELLO=ETC_1'
141+
assert_not_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'MOO=ETC_USR_1'
142+
assert_not_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'MOO2=ETC_USR_2'
143+
assert_not_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'FOO=USR_1'
144+
assert_not_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'FOO2=USR_2'
145+
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'ostree-kargs-generated-from-config.*true'
146+
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'ostree.*options.*generated from.*kargs\.d'
147+
148+
echo "ok default kargs downgrade"
149+
150+
${CMD_PREFIX} ostree admin deploy --os=testos --karg-append=TESTARG=TESTVALUE testos:testos/buildmaster/x86_64-runtime
151+
152+
# Check we carry over previous deployment kargs, after passing in a kargs
153+
# override.
154+
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'options.*HELLO=ETC_1.*TESTARG=TESTVALUE'
155+
# Check we won't regenerate from the config again.
156+
assert_not_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'ostree-kargs-generated-from-config.*true'
157+
assert_not_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'ostree.*options.*generated from.*kargs\.d'
158+
159+
echo "ok default kargs overridden"

tests/test-admin-deploy-karg.sh

+21-2
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,15 @@ set -euo pipefail
2626
# Exports OSTREE_SYSROOT so --sysroot not needed.
2727
setup_os_repository "archive" "syslinux"
2828

29-
echo "1..3"
29+
echo "1..5"
3030

3131
${CMD_PREFIX} ostree --repo=sysroot/ostree/repo pull-local --remote=testos testos-repo testos/buildmaster/x86_64-runtime
3232
rev=$(${CMD_PREFIX} ostree --repo=sysroot/ostree/repo rev-parse testos/buildmaster/x86_64-runtime)
3333
export rev
3434
# This initial deployment gets kicked off with some kernel arguments
3535
${CMD_PREFIX} ostree admin deploy --karg=root=LABEL=MOO --karg=quiet --os=testos testos:testos/buildmaster/x86_64-runtime
36+
# Check the kargs are not being updated from the kargs.d configs.
37+
assert_not_file_has_content sysroot/boot/loader/entries/ostree-1-testos.conf 'ostree-kargs-generated-from-config.*true'
3638
${CMD_PREFIX} ostree admin deploy --karg=FOO=BAR --os=testos testos:testos/buildmaster/x86_64-runtime
3739
${CMD_PREFIX} ostree admin deploy --karg=TESTARG=TESTVALUE --os=testos testos:testos/buildmaster/x86_64-runtime
3840
assert_file_has_content sysroot/boot/loader/entries/ostree-1-testos.conf 'options.*FOO=BAR'
@@ -61,9 +63,26 @@ echo "ok deploy --karg-proc-cmdline"
6163
${CMD_PREFIX} ostree admin status
6264
${CMD_PREFIX} ostree admin undeploy 0
6365

64-
${CMD_PREFIX} ostree admin deploy --os=testos --karg-append=APPENDARG=VALAPPEND --karg-append=APPENDARG=2NDAPPEND testos:testos/buildmaster/x86_64-runtime
66+
${CMD_PREFIX} ostree admin deploy --os=testos --karg-append=APPENDARG=VALAPPEND --karg-append=APPENDARG=2NDAPPEND testos:testos/buildmaster/x86_64-runtime
6567
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'options.*FOO=BAR'
6668
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'options.*TESTARG=TESTVALUE'
6769
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'options.*APPENDARG=VALAPPEND .*APPENDARG=2NDAPPEND'
70+
# Check the kargs are still not being updated from the kargs.d configs.
71+
assert_not_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'ostree-kargs-generated-from-config.*true'
6872

6973
echo "ok deploy --karg-append"
74+
75+
${CMD_PREFIX} ostree admin status
76+
${CMD_PREFIX} ostree admin undeploy 0
77+
78+
${CMD_PREFIX} ostree admin deploy --os=testos testos:testos/buildmaster/x86_64-runtime
79+
assert_not_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'ostree-kargs-generated-from-config.*true'
80+
81+
echo "ok no true kargs generated from config flag"
82+
83+
${CMD_PREFIX} ostree admin status
84+
85+
${CMD_PREFIX} ostree admin deploy --os=testos testos:testos/buildmaster/x86_64-runtime
86+
assert_not_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'ostree-kargs-generated-from-config.*true'
87+
88+
echo "ok no true kargs generated from config flag persists"

tests/test-admin-instutil-set-kargs.sh

+46-1
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,29 @@ set -euo pipefail
2727
# Exports OSTREE_SYSROOT so --sysroot not needed.
2828
setup_os_repository "archive" "syslinux"
2929

30-
echo "1..5"
30+
echo "1..6"
3131

3232
${CMD_PREFIX} ostree --repo=sysroot/ostree/repo pull-local --remote=testos testos-repo testos/buildmaster/x86_64-runtime
3333
${CMD_PREFIX} ostree admin deploy --os=testos testos:testos/buildmaster/x86_64-runtime
34+
# Check we generate kargs from the kargs.d configs from the first deployment.
35+
assert_file_has_content sysroot/boot/loader/entries/ostree-1-testos.conf 'ostree-kargs-generated-from-config.*true'
36+
assert_file_has_content sysroot/boot/loader/entries/ostree-1-testos.conf 'ostree.*options.*generated from.*kargs\.d'
37+
38+
rev=$(${CMD_PREFIX} ostree --repo=sysroot/ostree/repo rev-parse testos/buildmaster/x86_64-runtime)
39+
echo "rev=${rev}"
40+
etc=sysroot/ostree/deploy/testos/deploy/${rev}.0/etc
3441

3542
${CMD_PREFIX} ostree admin instutil set-kargs FOO=BAR
3643
${CMD_PREFIX} ostree admin instutil set-kargs FOO=BAZ FOO=BIF TESTARG=TESTVALUE KEYWORD EMPTYLIST=
3744
assert_not_file_has_content sysroot/boot/loader/entries/ostree-1-testos.conf 'options.*FOO=BAR'
3845
assert_file_has_content sysroot/boot/loader/entries/ostree-1-testos.conf 'options.*FOO=BAZ .*FOO=BIF'
3946
assert_file_has_content sysroot/boot/loader/entries/ostree-1-testos.conf 'options.*TESTARG=TESTVALUE KEYWORD EMPTYLIST='
47+
48+
# Check that the configured kargs flags and snippet were written.
49+
assert_file_has_content sysroot/boot/loader/entries/ostree-1-testos.conf 'ostree-kargs-generated-from-config.*true'
50+
assert_file_has_content sysroot/boot/loader/entries/ostree-1-testos.conf 'ostree.*options.*generated from.*kargs\.d'
51+
assert_file_has_content ${etc}/ostree/kargs.d/4000_ostree_instutil 'FOO=BAZ .*FOO=BIF.*TESTARG=TESTVALUE KEYWORD EMPTYLIST='
52+
4053
echo "ok instutil set-kargs (basic)"
4154

4255
${CMD_PREFIX} ostree admin instutil set-kargs --merge FOO=BAR
@@ -67,3 +80,35 @@ for arg in $(cat /proc/cmdline); do
6780
esac
6881
done
6982
echo "ok instutil set-kargs --import-proc-cmdline"
83+
84+
# Configure kargs stored in the ostree commit.
85+
mkdir -p osdata/usr/lib/ostree-boot/kargs.d
86+
os_tree_write_file "usr/lib/ostree-boot/kargs.d/4000_FOO" "FOO=USR_1"
87+
os_tree_write_file "usr/lib/ostree-boot/kargs.d/4001_FOO2" "FOO2=USR_2"
88+
os_repository_commit "testos-repo"
89+
90+
# Upgrade to tree with newly-committed kargs files.
91+
${CMD_PREFIX} ostree --repo=sysroot/ostree/repo remote add --set=gpg-verify=false testos file://$(pwd)/testos-repo testos/buildmaster/x86_64-runtime
92+
${CMD_PREFIX} ostree admin upgrade --os=testos
93+
# Sanity check a new boot directory was created after upgrading.
94+
assert_has_dir sysroot/boot/ostree/testos-${bootcsum}
95+
96+
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'options.*FOO=USR_1.*FOO2=USR_2'
97+
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'ostree-kargs-generated-from-config.*true'
98+
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'ostree.*options.*generated from.*kargs\.d'
99+
100+
rev=$(${CMD_PREFIX} ostree --repo=sysroot/ostree/repo rev-parse testos/buildmaster/x86_64-runtime)
101+
echo "rev=${rev}"
102+
etc=sysroot/ostree/deploy/testos/deploy/${rev}.0/etc
103+
104+
# Check that set-kargs overrides any existing default kargs in /usr/lib/ostree-boot/kargs.d.
105+
${CMD_PREFIX} ostree admin instutil set-kargs FOO=BAR
106+
107+
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'options.*FOO=BAR'
108+
assert_not_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'FOO=USR_1'
109+
assert_not_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'FOO2=USR_2'
110+
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'ostree-kargs-generated-from-config.*true'
111+
assert_file_has_content sysroot/boot/loader/entries/ostree-2-testos.conf 'ostree.*options.*generated from.*kargs\.d'
112+
assert_file_has_content ${etc}/ostree/kargs.d/4000_ostree_instutil 'FOO=BAR'
113+
114+
echo "ok instutil set-kargs default kargs"

0 commit comments

Comments
 (0)