From 989f407502704cefb6fe6e36447392a0d0eb0e77 Mon Sep 17 00:00:00 2001 From: Jean-Gabriel Gill-Couture Date: Sun, 23 Feb 2025 13:33:47 -0500 Subject: [PATCH] docs(adr): add ADR for using iPXE with chaining for architecture independence Adopt iPXE as the primary bootloader with chaining to support BIOS and UEFI architectures, enabling dynamic boot configurations, advanced network booting, and diskless machine management. This introduces a dependency on iPXE but offers significant benefits in flexibility and configuration simplicity. --- adr/004-ipxe.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 adr/004-ipxe.md diff --git a/adr/004-ipxe.md b/adr/004-ipxe.md new file mode 100644 index 0000000..1f76de6 --- /dev/null +++ b/adr/004-ipxe.md @@ -0,0 +1,19 @@ +# ADR: Use iPXE as the Primary Bootloader with Chaining for Architecture Independence + +**Status:** Implemented + +**Context:** +Harmony requires a flexible and unified bootloader solution to handle both BIOS and UEFI architectures. We need support for dynamic boot configurations, advanced network booting capabilities, and the ability to manage diskless machines. + +**Decision:** +Adopt iPXE as the primary bootloader. For BIOS and UEFI clients, use chaining to load iPXE, ensuring all clients boot into a common iPXE environment. + +**Consequences:** +- **Benefits:** + - Single configuration file for all architectures. + - Enables dynamic and scripted boot processes. + - Supports booting over various protocols (HTTP, HTTPS, iSCSI, SAN, etc.). + - Allows diskless machines with networked root filesystems. +- **Trade-offs:** + - Adds a dependency on iPXE. + - Requires proper configuration and maintenance of iPXE.