Skip to content
This repository has been archived by the owner on Aug 25, 2021. It is now read-only.

Commit

Permalink
dracut/30ignition: Reboot the system after ignition if kargs.d exists
Browse files Browse the repository at this point in the history
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 Jun 27, 2019
1 parent df88988 commit 2fac5c8
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 0 deletions.
13 changes: 13 additions & 0 deletions dracut/30ignition/ignition-apply-kargs.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
[Unit]
Description=Reboot after Ignition to apply kargs
Documentation=https://github.com/coreos/ignition-dracut
DefaultDependencies=false
Before=ignition-complete.target

# Make sure user configs have kargs files
After=ignition-files.service

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/ignition-apply-kargs
15 changes: 15 additions & 0 deletions dracut/30ignition/ignition-apply-kargs.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/bin/bash
set -euo pipefail

# Checks if kernel argument directory exists,
# then redeploy and reboot the system if it exists
reboot_if_kargs_dir_exists() {
local REFSPEC=( $(ostree refs --repo /sysroot/ostree/repo) )
if [ -d /sysroot/etc/ostree/kargs.d ]
then
ostree admin deploy REFSPEC
exec systemctl reboot
fi
}

reboot_if_kargs_dir_exists
4 changes: 4 additions & 0 deletions dracut/30ignition/module-setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ install() {
inst_script "$moddir/ignition-setup.sh" \
"/usr/sbin/ignition-setup"

inst_script "$moddir/ignition-apply-kargs.sh" \
"/usr/sbin/ignition-apply-kargs"

# Distro packaging is expected to install the ignition binary into the
# module directory.
inst_simple "$moddir/ignition" \
Expand All @@ -53,6 +56,7 @@ install() {
install_ignition_unit ignition-mount.service
install_ignition_unit ignition-files.service
install_ignition_unit ignition-remount-sysroot.service
install_ignition_unit ignition-apply-kargs.service

# needed for openstack config drive support
inst_rules 60-cdrom_id.rules
Expand Down

0 comments on commit 2fac5c8

Please sign in to comment.