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.
 |