# Prerequisites This document outlines all prerequisites for deploying the Azure Stack HCI infrastructure. ## Hardware Requirements ### Proxmox VE Hosts - **Minimum**: 2 Proxmox VE hosts - **Proxmox Version**: 7.0 or higher - **RAM**: Minimum 8GB per node (16GB+ recommended) - **Storage**: Sufficient storage for VMs and templates - **Network**: - Static IP addresses configured - Network connectivity between nodes - Internet access for Azure Arc connectivity ### Optional: Router/Storage Server If implementing the full Azure Stack HCI architecture: - Server with multiple PCIe slots - 4× Spectrum WAN connections - Storage shelves with HBAs - Intel QAT 8970 for crypto acceleration See [Hardware BOM](../architecture/hardware-bom.md) for complete hardware specifications. ## Software Requirements ### Required Tools - **Azure CLI**: Installed and authenticated ```bash az login az account show ``` - **kubectl**: For Kubernetes management ```bash kubectl version --client ``` - **SSH**: Access to all nodes - **Terraform** (optional): For Infrastructure as Code - **Helm** (optional): For GitOps deployments ### Azure Subscription - Azure subscription with **Contributor** role - Resource group creation permissions - Azure Arc enabled subscription ### Network Requirements - **Static IP addresses** for all nodes - **DNS resolution** (or hosts file configuration) - **Outbound HTTPS (443)** for Azure Arc connectivity - **Cluster communication ports** (5404-5412 UDP) for Proxmox cluster ## Environment Configuration ### Environment Variables Create a `.env` file from the template: ```bash cp .env.example .env ``` Required variables: - **Azure**: `AZURE_SUBSCRIPTION_ID`, `AZURE_TENANT_ID`, `AZURE_CLIENT_ID`, `AZURE_CLIENT_SECRET` - **Cloudflare**: `CLOUDFLARE_API_TOKEN`, `CLOUDFLARE_ACCOUNT_ID`, `CLOUDFLARE_TUNNEL_TOKEN` - **Proxmox**: `PVE_ROOT_PASS`, `PROXMOX_ML110_URL`, `PROXMOX_R630_URL` See `.env.example` for all available configuration options. ### Network Configuration Ensure the following network ranges are available: - **VLAN 10**: Storage (10.10.10.0/24) - **VLAN 20**: Compute (10.10.20.0/24) - **VLAN 30**: App Tier (10.10.30.0/24) - **VLAN 40**: Observability (10.10.40.0/24) - **VLAN 50**: Dev/Test (10.10.50.0/24) - **VLAN 60**: Management (10.10.60.0/24) - **VLAN 99**: DMZ (10.10.99.0/24) See [Network Topology](../architecture/network-topology.md) for detailed network design. ## Pre-Deployment Checklist Before starting deployment, verify: - [ ] Proxmox VE installed and updated on all hosts - [ ] Static IP addresses configured - [ ] Network connectivity between nodes tested - [ ] Azure CLI installed and authenticated - [ ] Azure subscription has Contributor role - [ ] `.env` file created and configured - [ ] SSH access to all nodes verified - [ ] DNS resolution working (or hosts file configured) - [ ] Outbound HTTPS (443) connectivity verified - [ ] Sufficient storage available on Proxmox hosts - [ ] VM IDs planned (avoid conflicts) ## Verification Scripts Run the prerequisites check script: ```bash ./scripts/utils/prerequisites-check.sh ``` This will verify: - Proxmox VE installation - Network configuration - Azure CLI installation and authentication - kubectl installation - Helm installation (optional) - Docker installation (optional) - System resources ## Next Steps After verifying prerequisites: 1. Follow the [Quick Start Guide](quick-start.md) 2. Review the [Deployment Guide](../deployment/deployment-guide.md) 3. Use the [Bring-Up Checklist](../deployment/bring-up-checklist.md) ## Troubleshooting Prerequisites ### Azure CLI Not Authenticated ```bash az login az account set --subscription "your-subscription-id" az account show ``` ### Network Connectivity Issues ```bash # Test connectivity between nodes ping ssh "echo 'Connection successful'" ``` ### Proxmox Connection Issues ```bash # Test Proxmox API access ./scripts/utils/test-proxmox-connection.sh ``` ### Insufficient Resources - Check available RAM: `free -h` - Check available disk space: `df -h` - Check CPU: `nproc` ## Additional Resources - [Architecture Overview](../architecture/overview.md) - [Network Topology](../architecture/network-topology.md) - [Hardware BOM](../architecture/hardware-bom.md)