forked from coreos/ignition-dracut
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dracut/30ignition: Reboot the system after ignition if kargs.d exists
As mentioned in https://github.com/coreos/ignition-dracut/issues/81#issuecomment-494888494, this change adds a service that checks for the presence of `/etc/ostree/kargs.d` and redeploys then reboots the system if it exists. Closes: #81
- Loading branch information
Allen Bai
committed
Aug 23, 2019
1 parent
9330616
commit fc4375c
Showing
3 changed files
with
51 additions
and
1 deletion.
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 |
---|---|---|
@@ -0,0 +1,18 @@ | ||
[Unit] | ||
Description=Reboot after Ignition to apply kargs | ||
Documentation=https://github.com/coreos/ignition-dracut | ||
DefaultDependencies=false | ||
Before=ignition-complete.target | ||
|
||
OnFailure=emergency.target | ||
OnFailureJobMode=isolate | ||
|
||
# Make sure /sysroot/ostree/deploy/ is not empty | ||
Requires=ostree-prepare-root.service | ||
# Make sure /sysroot/etc/ostree/kargs.d exists if there are default kernel args | ||
After=ignition-files.service | ||
|
||
[Service] | ||
Type=oneshot | ||
RemainAfterExit=yes | ||
ExecStart=/usr/sbin/ignition-apply-kargs |
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,27 @@ | ||
#!/bin/bash | ||
set -euo pipefail | ||
|
||
# Reads default kernel arguments | ||
kargs=$(cat /sysroot/etc/ostree/kargs.d/karg_file) | ||
|
||
# Copied from ignition-generator | ||
cmdline_bool() { | ||
local value=$(cmdline_arg "$@") | ||
case "$value" in | ||
""|0|no|off) return 1;; | ||
*) return 0;; | ||
esac | ||
} | ||
|
||
# Checks if kernel argument directory exists, | ||
# then redeploy and reboot the system if it exists | ||
reboot_if_kargs_dir_exists() { | ||
if [ -d /sysroot/etc/ostree/kargs.d ]; then | ||
ostree admin instutil set-kargs -v --sysroot=/sysroot --merge ${kargs} | ||
exec systemctl reboot | ||
fi | ||
} | ||
|
||
if $(cmdline_bool 'ignition.firstboot' 0); then | ||
reboot_if_kargs_dir_exists | ||
fi |
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