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.
		
			
				
	
	
		
			20 lines
		
	
	
		
			931 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			20 lines
		
	
	
		
			931 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# 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.
 |