[2/2] isar-installer: Added config options for isar-image-installer unattended mode.

Message ID 20241212125347.76001-3-alexander.heinisch@siemens.com
State Accepted, archived
Headers show
Series isar-installer: Added option to add additional kernel cmdline arguments for isar-image-installer. | expand

Commit Message

alexander.heinisch Dec. 12, 2024, 12:53 p.m. UTC
From: Alexander Heinisch <alexander.heinisch@siemens.com>

Signed-off-by: Alexander Heinisch <alexander.heinisch@siemens.com>
---
 kas/image/Kconfig                             | 37 +++++++++++++++++++
 .../images/isar-image-installer.bb            | 10 +++++
 2 files changed, 47 insertions(+)

Patch

diff --git a/kas/image/Kconfig b/kas/image/Kconfig
index e4f64dcc..0c0a664c 100644
--- a/kas/image/Kconfig
+++ b/kas/image/Kconfig
@@ -67,6 +67,43 @@  config INSTALLER_TARGET_IMAGE
 	default "isar-image-base" if INSTALL_IMAGE_BASE
 	default "isar-image-base" if INSTALL_IMAGE_DEBUG
 
+config INSTALL_UNATTENDED
+	bool "Run installer unattended"
+
+if INSTALL_UNATTENDED
+
+config INSTALLER_UNATTENDED
+	string
+	default "1" if INSTALL_UNATTENDED
+	default ""
+
+config INSTALLER_TARGET_DEVICE
+	string "Target device to deploy"
+	default "/dev/sda"
+	help
+	  Device to deploy the image onto.
+	  Leave this empty to get prompted during installation
+	  Examples: /dev/sda, /dev/nvme0n1
+
+choice
+	prompt "Overwrite handling"
+	default OPT_INSTALLER_TARGET_OVERWRITE
+
+config OPT_INSTALLER_TARGET_OVERWRITE
+	bool "Overwrite if target is not empty"
+
+config OPT_INSTALLER_TARGET_ABORT
+	bool "Abort if target is not empty"
+
+endchoice
+
+config INSTALLER_TARGET_OVERWRITE
+    string
+    default "OVERWRITE" if OPT_INSTALLER_TARGET_OVERWRITE
+    default "ABORT" if OPT_INSTALLER_TARGET_ABORT
+
+endif
+
 endif
 
 config KAS_INCLUDE_IMAGE
diff --git a/meta-isar/recipes-core/images/isar-image-installer.bb b/meta-isar/recipes-core/images/isar-image-installer.bb
index a325ab9f..ee04bb41 100644
--- a/meta-isar/recipes-core/images/isar-image-installer.bb
+++ b/meta-isar/recipes-core/images/isar-image-installer.bb
@@ -10,7 +10,17 @@  DESCRIPTION = "Example of a ISAR based Installer Image"
 # Use variable to switch easily to another wks
 INSTALLER_WKS_FILE ??= "installer-efi.wks.in"
 WKS_FILE = "${INSTALLER_WKS_FILE}"
+
 ADDITIONAL_KERNEL_CMDLINE ??= ""
+
+OVERRIDES .= "${@':unattended-installer' if d.getVar('INSTALLER_UNATTENDED') else ''}"
+ADDITIONAL_KERNEL_CMDLINE:append:unattended-installer = " \
+    installer.unattended \
+    installer.image.uri=/install/${IMAGE_DATA_FILE}.${IMAGE_DATA_POSTFIX} \
+    installer.target.dev=${INSTALLER_TARGET_DEVICE} \
+    installer.target.overwrite=${INSTALLER_TARGET_OVERWRITE} \
+    "
+
 IMAGER_INSTALL:wic:append = " ${SYSTEMD_BOOTLOADER_INSTALL}"
 
 IMAGE_INSTALL += "deploy-image-service"