 c177363a19
			
		
	
	c177363a19
	
	
	
		
			
			🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
		
			
				
	
	
		
			139 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			139 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Resource Allocation Component Implementation
 | |
| 
 | |
| ## Overview
 | |
| Implement a Resource Allocation component for the BZZZ setup wizard to allow users to configure CPU, memory, and storage allocation for different BZZZ services.
 | |
| 
 | |
| ## Current Status
 | |
| - **Step removed from setup wizard** (temporarily) - located between AI Integration and Service Deployment
 | |
| - **Placeholder component exists** at `install/config-ui/app/setup/components/ResourceAllocation.tsx`
 | |
| - **System detection available** - hardware information already captured in System Detection step
 | |
| 
 | |
| ## Requirements
 | |
| 
 | |
| ### 1. System Resource Display
 | |
| - [ ] Display detected system resources from SystemDetection step:
 | |
|   - CPU cores available
 | |
|   - Total memory (RAM) 
 | |
|   - Available storage space
 | |
|   - GPU information (if applicable)
 | |
| - [ ] Show current system utilization/usage
 | |
| 
 | |
| ### 2. Service Resource Configuration
 | |
| - [ ] Allow allocation for BZZZ services:
 | |
|   - **BZZZ API Server** (CPU cores, memory)
 | |
|   - **MCP Server** (CPU cores, memory) 
 | |
|   - **P2P Network** (bandwidth, connections)
 | |
|   - **Web UI** (minimal resources)
 | |
|   - **Storage Services** (disk space allocation)
 | |
| - [ ] Configurable resource limits and reservations
 | |
| - [ ] Docker container resource constraints integration
 | |
| 
 | |
| ### 3. Resource Validation
 | |
| - [ ] Ensure total allocations don't exceed available resources
 | |
| - [ ] Minimum resource requirements validation
 | |
| - [ ] Warning for resource over-allocation
 | |
| - [ ] Real-time calculation of remaining resources
 | |
| 
 | |
| ### 4. Performance Recommendations
 | |
| - [ ] Suggest optimal resource distributions based on:
 | |
|   - Detected hardware capabilities
 | |
|   - Intended cluster role (coordinator vs worker)
 | |
|   - Expected workload patterns
 | |
| - [ ] Preset configurations:
 | |
|   - **Development** (minimal resources)
 | |
|   - **Production** (balanced allocation)
 | |
|   - **High-Performance** (maximum allocation)
 | |
| 
 | |
| ### 5. Integration Points
 | |
| - [ ] Receive system info from System Detection step
 | |
| - [ ] Pass resource config to Service Deployment step
 | |
| - [ ] Generate Docker Compose resource constraints
 | |
| - [ ] Integration with cluster formation for multi-node awareness
 | |
| 
 | |
| ## Technical Implementation
 | |
| 
 | |
| ### Component Structure
 | |
| ```typescript
 | |
| interface ResourceConfig {
 | |
|   cpu: {
 | |
|     bzzzApi: number      // CPU cores for API server
 | |
|     mcpServer: number    // CPU cores for MCP server
 | |
|     p2pNetwork: number   // CPU cores for P2P
 | |
|     reserved: number     // System reserved cores
 | |
|   }
 | |
|   memory: {
 | |
|     bzzzApi: number      // Memory MB for API server
 | |
|     mcpServer: number    // Memory MB for MCP server  
 | |
|     p2pNetwork: number   // Memory MB for P2P
 | |
|     webUI: number        // Memory MB for Web UI
 | |
|     system: number       // System reserved memory
 | |
|   }
 | |
|   storage: {
 | |
|     logs: number         // Log storage GB
 | |
|     data: number         // Data storage GB
 | |
|     temp: number         // Temporary files GB
 | |
|     available: number    // Remaining space
 | |
|   }
 | |
| }
 | |
| ```
 | |
| 
 | |
| ### Validation Logic
 | |
| ```typescript
 | |
| const validateResources = (config: ResourceConfig, systemInfo: SystemInfo) => {
 | |
|   const totalCpu = config.cpu.bzzzApi + config.cpu.mcpServer + config.cpu.p2pNetwork + config.cpu.reserved
 | |
|   const totalMemory = config.memory.bzzzApi + config.memory.mcpServer + config.memory.p2pNetwork + config.memory.webUI + config.memory.system
 | |
|   const totalStorage = config.storage.logs + config.storage.data + config.storage.temp
 | |
|   
 | |
|   return {
 | |
|     cpuValid: totalCpu <= systemInfo.cpu_cores,
 | |
|     memoryValid: totalMemory <= systemInfo.memory_mb,
 | |
|     storageValid: totalStorage <= systemInfo.storage.free_space_gb
 | |
|   }
 | |
| }
 | |
| ```
 | |
| 
 | |
| ## User Experience
 | |
| 
 | |
| ### Visual Design
 | |
| - [ ] Resource allocation sliders/input fields
 | |
| - [ ] Real-time resource utilization charts
 | |
| - [ ] Color-coded validation (green/yellow/red)
 | |
| - [ ] Resource recommendation cards
 | |
| - [ ] "Auto-Configure" button for presets
 | |
| 
 | |
| ### Workflow Integration
 | |
| - [ ] Progressive disclosure (advanced options collapsed by default)
 | |
| - [ ] Validation feedback before proceeding to next step
 | |
| - [ ] Ability to return and modify allocations
 | |
| - [ ] Save/restore configurations
 | |
| 
 | |
| ## Dependencies
 | |
| - System Detection component (already implemented)
 | |
| - Service Deployment component integration
 | |
| - Docker Compose generation
 | |
| - Cluster Formation multi-node awareness
 | |
| 
 | |
| ## Acceptance Criteria
 | |
| - [ ] Users can allocate CPU, memory, and storage to BZZZ services
 | |
| - [ ] Resource constraints are validated against available hardware
 | |
| - [ ] Configuration is passed to subsequent setup steps
 | |
| - [ ] Docker container limits are properly configured
 | |
| - [ ] Performance recommendations are provided
 | |
| - [ ] Multi-node cluster resource awareness
 | |
| 
 | |
| ## Priority
 | |
| **Medium** - Important for production deployments but not blocking initial setup functionality
 | |
| 
 | |
| ## Related Issues
 | |
| - Service Deployment component integration
 | |
| - Docker Compose resource constraints
 | |
| - Multi-node cluster resource coordination
 | |
| - Performance monitoring and alerting
 | |
| 
 | |
| ---
 | |
| 
 | |
| **Implementation Notes:**
 | |
| - Reintegrate into setup wizard between AI Integration and Service Deployment
 | |
| - Use existing SystemInfo from setup context
 | |
| - Generate Docker Compose resource configurations
 | |
| - Consider future multi-node resource coordination requirements |