From e30b71b0ea0c42fee519a8ef31fcc27a2775b30e Mon Sep 17 00:00:00 2001 From: Dimitris Karakasilis Date: Tue, 22 Aug 2023 12:38:53 +0300 Subject: [PATCH] Create overlay file in initramfs stage (#391) * Create overlay file in initramfs stage when the filesystem is that of the installed system (not the livecd). Signed-off-by: Dimitris Karakasilis * Remove bootargs.cfg because it is needed before any stages are run. Relevant PR: https://github.com/kairos-io/kairos/pull/1756 Signed-off-by: Dimitris Karakasilis * Bump package version to rebuild --------- Signed-off-by: Dimitris Karakasilis Co-authored-by: Dimitris Karakasilis --- .../files/system/oem/11_bootargs.yaml | 59 ------------------- .../files/system/oem/12_nvidia.yaml | 11 +--- .../files/system/oem/13_openrc_services.yaml | 9 +-- 3 files changed, 5 insertions(+), 74 deletions(-) delete mode 100644 packages/bundles/kairos-overlay-files/files/system/oem/11_bootargs.yaml diff --git a/packages/bundles/kairos-overlay-files/files/system/oem/11_bootargs.yaml b/packages/bundles/kairos-overlay-files/files/system/oem/11_bootargs.yaml deleted file mode 100644 index a8b431b..0000000 --- a/packages/bundles/kairos-overlay-files/files/system/oem/11_bootargs.yaml +++ /dev/null @@ -1,59 +0,0 @@ -name: "Creation of bootargs.cfg file" -stages: - after-install: - - &createfile - name: "Install bootargs.cfg file" - commands: - - | - export COMMON_RECOVERY_OPTS="console=tty1 root=live:LABEL=\$recoverylabel rd.live.dir=/ rd.live.squashimg=\$img panic=5" - export COMMON_OPTS="console=tty1 root=LABEL=\$label cos-img/filename=\$img panic=5 rd.cos.oemlabel=COS_OEM" - - # Model based options: - # Raspberry - if [ -f "/sys/firmware/devicetree/base/model" ] && grep Raspberry "/sys/firmware/devicetree/base/model"; then - COMMON_RECOVERY_OPTS="$COMMON_RECOVERY_OPTS console=ttyS0,115200 net.ifnames=1 modprobe.blacklist=vc4 rd.cos.oemtimeout=10" - COMMON_OPTS="$COMMON_OPTS console=ttyS0,115200 net.ifnames=1 security=selinux selinux=1 modprobe.blacklist=vc4 rd.cos.oemtimeout=10" - # Nvidia - # TODO: Test this out on an nvidia board. Does that file even exist? - elif [ -f "/sys/firmware/devicetree/base/model" ] && grep -i nvidia "/sys/firmware/devicetree/base/model"; then - COMMON_RECOVERY_OPTS="$COMMON_RECOVERY_OPTS console=ttyTCU0,115200 security=selinux selinux=1 net.ifnames=1 rd.cos.oemtimeout=10" - COMMON_OPTS="$COMMON_OPTS console=ttyTCU0,115200 net.ifnames=1 security=selinux selinux=1 rd.cos.oemtimeout=10" - # All other cases - else - COMMON_RECOVERY_OPTS="$COMMON_RECOVERY_OPTS console=ttyS0 rd.cos.oemlabel=COS_OEM" - COMMON_OPTS="$COMMON_OPTS console=ttyS0 net.ifnames=1" - fi - - # OS based options: - if $(grep -i -E '(fedora|almalinux|rockylinux)' /etc/os-release); then - COMMON_RECOVERY_OPTS="$COMMON_RECOVERY_OPTS selinux=0" - # NOTE: This may conflict with model settings above! - COMMON_OPTS="$COMMON_OPTS selinux=0" - elif $(grep -i -E '(debian|ubuntu)' /etc/os-release); then - COMMON_RECOVERY_OPTS="$COMMON_RECOVERY_OPTS" - COMMON_OPTS="$COMMON_OPTS security=selinux selinux=1 rd.neednet=0 vga=795" - else - COMMON_RECOVERY_OPTS="$COMMON_RECOVERY_OPTS net.ifnames=1" - COMMON_OPTS="$COMMON_OPTS rd.emergency=reboot rd.shell=0 security=selinux selinux=1 fsck.mode=force fsck.repair=yes systemd.crash_reboot=yes" - fi - - cat << EOF > /etc/cos/bootargs.cfg - set kernel=/boot/vmlinuz - if [ -n "\$recoverylabel" ]; then - # Boot arguments when the image is used as recovery - set kernelcmd="$COMMON_RECOVERY_OPTS" - else - # Boot arguments when the image is used as active/passive - set kernelcmd="$COMMON_OPTS" - fi - - set initramfs=/boot/initrd - - EOF - - chmod 0600 /etc/cos/bootargs.cfg - - after-upgrade: - - <<: *createfile - after-reset: - - <<: *createfile diff --git a/packages/bundles/kairos-overlay-files/files/system/oem/12_nvidia.yaml b/packages/bundles/kairos-overlay-files/files/system/oem/12_nvidia.yaml index 6b2fde6..b23d1ff 100644 --- a/packages/bundles/kairos-overlay-files/files/system/oem/12_nvidia.yaml +++ b/packages/bundles/kairos-overlay-files/files/system/oem/12_nvidia.yaml @@ -1,10 +1,9 @@ name: "Nvidia jetson specific files" stages: - after-install: - - &createfiles - name: "Create files" + initramfs: + - name: "Create files" if: | - [ -f "/sys/firmware/devicetree/base/model" ] && grep -i nvidia "/sys/firmware/devicetree/base/model" + [ -f "/sys/firmware/devicetree/base/model" ] && grep -i jetson "/sys/firmware/devicetree/base/model" files: - path: /etc/dracut.conf.d/iscsi.conf content: | @@ -63,7 +62,3 @@ stages: permissions: 0600 owner: 0 group: 0 - after-upgrade: - - <<: *createfiles - after-reset: - - <<: *createfiles diff --git a/packages/bundles/kairos-overlay-files/files/system/oem/13_openrc_services.yaml b/packages/bundles/kairos-overlay-files/files/system/oem/13_openrc_services.yaml index 2ebd198..3b3611d 100644 --- a/packages/bundles/kairos-overlay-files/files/system/oem/13_openrc_services.yaml +++ b/packages/bundles/kairos-overlay-files/files/system/oem/13_openrc_services.yaml @@ -1,8 +1,7 @@ name: "Create openrc services" stages: - after-install: - - &createfiles - name: "Create files" + initramfs: + - name: "Create files" if: | grep -i alpine "/etc/os-release" files: @@ -61,7 +60,3 @@ stages: permissions: 0600 owner: 0 group: 0 - after-upgrade: - - <<: *createfiles - after-reset: - - <<: *createfiles