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.