-
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add fedora's scripts to our manifest
- Loading branch information
1 parent
9bf1863
commit eba82d7
Showing
5 changed files
with
173 additions
and
34 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
*.tar* | ||
*.ociarchive | ||
*.ociarchive | ||
.gitignore |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,4 +3,5 @@ | |
/cache | ||
*.tar | ||
*.auth.json | ||
images/ | ||
images/ | ||
*.ociarchive |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
#!/bin/bash | ||
set -eu | ||
|
||
backing_device=$(findmnt -vno SOURCE /sysroot) | ||
echo "Backing device: ${backing_device}" | ||
|
||
# Handling devicemapper targets is a whole other thing | ||
case $backing_device in | ||
/dev/mapper/*) echo "Not growing $backing_device"; exit 0 ;; | ||
esac | ||
|
||
syspath=/sys/class/block/$(basename "${backing_device}") | ||
if ! test -d "${syspath}"; then | ||
echo "failed to find backing device ${syspath}"; exit 1 | ||
fi | ||
|
||
|
||
|
||
# Note that we expect that the rootfs is on a partition | ||
partition=$(cat "${syspath}"/partition) | ||
|
||
# Walk up to find the parent blockdev | ||
parentpath=$(dirname "$(realpath "${syspath}")") | ||
devmajmin=$(cat "${parentpath}"/dev) | ||
parent="/dev/block/${devmajmin}" | ||
|
||
# Grow the partition | ||
tmpf=$(mktemp) | ||
# Ignore errors because growpart exits 1 if nothing changed; | ||
# we need to check the output for NOCHANGE: | ||
if ! /usr/bin/growpart "${parent}" "${partition}" > "${tmpf}"; then | ||
cat "${tmpf}" | ||
if grep -qEe '^NOCHANGE: ' "${tmpf}"; then | ||
exit 0 | ||
fi | ||
echo "growpart failed" | ||
exit 1 | ||
fi | ||
cat "${tmpf}" | ||
# Now, temporarily remount the sysroot writable in our mount namespace | ||
mount -o remount,rw /sysroot | ||
# And defer to systemd's growfs wrapper which handles dispatching on | ||
# the target filesystem type. | ||
/usr/lib/systemd/systemd-growfs /sysroot |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
[Unit] | ||
Description=Bootc Fallback Root Filesystem Grow | ||
Documentation=https://gitlab.com/fedora/bootc/docs | ||
# For now we skip bare metal cases, and we also have nothing to do | ||
# for containers. | ||
ConditionVirtualization=vm | ||
# This helps verify that we're running in a bootc/ostree based target. | ||
ConditionPathIsMountPoint=/sysroot | ||
# We want to run before any e.g. large container images might be pulled. | ||
DefaultDependencies=no | ||
Requires=sysinit.target | ||
After=sysinit.target | ||
Before=basic.target | ||
|
||
[Service] | ||
ExecStart=/usr/libexec/bootc-generic-growpart | ||
# So we can temporarily remount the sysroot writable | ||
MountFlags=slave | ||
# Just to auto-cleanup our temporary files | ||
PrivateTmp=yes |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters