From 7a38c9695b381e4a8558c3befc4f47183cc8a037 Mon Sep 17 00:00:00 2001
From: Alex Iribarren <Alex.Iribarren@cern.ch>
Date: Mon, 31 May 2021 09:51:21 +0200
Subject: [PATCH] Add RAID modules to dracut the right way

---
 c8-cloud.ks  | 10 +++++++---
 cs8-cloud.ks | 10 +++++++---
 2 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/c8-cloud.ks b/c8-cloud.ks
index 500e638..d53eeb6 100644
--- a/c8-cloud.ks
+++ b/c8-cloud.ks
@@ -185,9 +185,6 @@ rm -f /root/anaconda-{ks,pre,post}.log
 rm -f /root/{anaconda,original}-ks.cfg
 rm -rf /var/cache/dnf/*
 
-# Ironic fix for RAID1 at boot time (Disabled for now)
-/usr/bin/dracut -v --add 'mdraid' --add-drivers 'raid1 raid10 raid5 raid0 linear' --regenerate-all --force
-
 # Ironic fix rd.auto
 sed -i -e 's/crashkernel=auto/rd.auto net.ifnames=0 crashkernel=auto/g' /etc/default/grub
 
@@ -219,6 +216,13 @@ sed -i '/^### BEGIN \/etc\/grub.d\/30_uefi/,/^### END \/etc\/grub.d\/30_uefi/{/^
 # Based on https://github.com/CentOS/sig-cloud-instance-build/blob/98aa8c6f0290feeb94d86b52c561d70eabc7d942/cloudimg/CentOS-8-x86_64-Azure.ks#L175-179
 echo '# Ensure nvme drivers are built into initramfs'	>> /etc/dracut.conf.d/nvme.conf
 echo -e "\nadd_drivers+=\"nvme\""	>> /etc/dracut.conf.d/nvme.conf
+
+# Ensure mdadm is built into initramfs so we can install on software RAID
+echo '# dracut modules to add to the default'         >> /etc/dracut.conf.d/mdadm.conf
+echo 'add_dracutmodules+="dm lvm dmraid mdraid"'      >> /etc/dracut.conf.d/mdadm.conf
+echo 'add_drivers+="raid1 raid10 raid5 raid0 linear"' >> /etc/dracut.conf.d/mdadm.conf
+
+# Rebuild the initramfs
 kversion=$( rpm -q kernel | sed 's/kernel\-//' )
 dracut -v -f "/boot/initramfs-${kversion}.img" "$kversion"
 
diff --git a/cs8-cloud.ks b/cs8-cloud.ks
index 8b6d4d8..bc200d6 100644
--- a/cs8-cloud.ks
+++ b/cs8-cloud.ks
@@ -185,9 +185,6 @@ rm -f /root/anaconda-{ks,pre,post}.log
 rm -f /root/{anaconda,original}-ks.cfg
 rm -rf /var/cache/dnf/*
 
-# Ironic fix for RAID1 at boot time (Disabled for now)
-/usr/bin/dracut -v --add 'mdraid' --add-drivers 'raid1 raid10 raid5 raid0 linear' --regenerate-all --force
-
 # Ironic fix rd.auto
 sed -i -e 's/crashkernel=auto/rd.auto net.ifnames=0 crashkernel=auto/g' /etc/default/grub
 
@@ -219,6 +216,13 @@ sed -i '/^### BEGIN \/etc\/grub.d\/30_uefi/,/^### END \/etc\/grub.d\/30_uefi/{/^
 # Based on https://github.com/CentOS/sig-cloud-instance-build/blob/98aa8c6f0290feeb94d86b52c561d70eabc7d942/cloudimg/CentOS-8-x86_64-Azure.ks#L175-179
 echo '# Ensure nvme drivers are built into initramfs'	>> /etc/dracut.conf.d/nvme.conf
 echo -e "\nadd_drivers+=\"nvme\""	>> /etc/dracut.conf.d/nvme.conf
+
+# Ensure mdadm is built into initramfs so we can install on software RAID
+echo '# dracut modules to add to the default'         >> /etc/dracut.conf.d/mdadm.conf
+echo 'add_dracutmodules+="dm lvm dmraid mdraid"'      >> /etc/dracut.conf.d/mdadm.conf
+echo 'add_drivers+="raid1 raid10 raid5 raid0 linear"' >> /etc/dracut.conf.d/mdadm.conf
+
+# Rebuild the initramfs
 kversion=$( rpm -q kernel | sed 's/kernel\-//' )
 dracut -v -f "/boot/initramfs-${kversion}.img" "$kversion"
 
-- 
GitLab