# Proxmox Base Configuration Review **Date**: 2025-01-XX **Status**: ⚠️ **CONFIGURATION MISMATCH DETECTED** --- ## Executive Summary Review of Proxmox base configurations reveals a **critical mismatch** between site names used in VM specifications and the provider configuration. This must be fixed before deployment. --- ## Configuration Issues Found ### ⚠️ Issue 1: Site Name Mismatch **Problem**: VM specifications use `site-1` and `site-2`, but provider config uses `us-sfvalley`. **Current State**: - **VM Files**: Use `site: "site-1"` and `site: "site-2"` - **Provider Config**: Uses `name: us-sfvalley` (only site-1 configured) - **Impact**: VMs referencing `site-2` will fail to deploy **Files Affected**: - `crossplane-provider-proxmox/examples/provider-config.yaml` - All VM files in `examples/production/` (30 files) --- ## Current Provider Configuration ### File: `crossplane-provider-proxmox/examples/provider-config.yaml` **Current Configuration**: ```yaml sites: - name: us-sfvalley endpoint: "https://192.168.11.10:8006" node: "ml110-01" insecureSkipTLSVerify: true # Site 2 is commented out! # - name: us-sfvalley-2 # endpoint: "https://192.168.11.11:8006" # node: "r630-01" # insecureSkipTLSVerify: true ``` **Issues**: 1. ❌ Site name `us-sfvalley` doesn't match VM specs (`site-1`) 2. ❌ Site 2 is commented out (22 VMs need this!) 3. ❌ Site 2 name `us-sfvalley-2` doesn't match VM specs (`site-2`) --- ## Required Configuration ### Corrected Provider Configuration The provider config must define both sites with names matching the VM specifications: ```yaml sites: - name: site-1 endpoint: "https://192.168.11.10:8006" node: "ml110-01" insecureSkipTLSVerify: true - name: site-2 endpoint: "https://192.168.11.11:8006" node: "r630-01" insecureSkipTLSVerify: true ``` --- ## Site Configuration Details ### Site-1 (ML110-01) **Configuration**: - **Name**: `site-1` (must match VM specs) - **Endpoint**: `https://192.168.11.10:8006` - **Node**: `ml110-01` - **IP Address**: 192.168.11.10 - **Hardware**: 6 CPU cores, 256 GB RAM - **VMs**: 4 production VMs (8 CPU cores total) **VMs on Site-1**: - nginx-proxy-vm - phoenix-dns-primary - smom-sentry-01 - smom-sentry-02 ### Site-2 (R630-01) **Configuration**: - **Name**: `site-2` (must match VM specs) - **Endpoint**: `https://192.168.11.11:8006` - **Node**: `r630-01` - **IP Address**: 192.168.11.11 - **Hardware**: 52 CPU cores, 768 GB RAM - **VMs**: 22 production VMs (54 CPU cores total) **VMs on Site-2**: - cloudflare-tunnel-vm - All Phoenix Infrastructure VMs (7 VMs) - All Blockchain Validators (4 VMs) - Blockchain Sentries (2 VMs) - Blockchain RPC Nodes (4 VMs) - Blockchain Services (4 VMs) --- ## Provider Configuration Files ### 1. Main Provider Config **File**: `crossplane-provider-proxmox/examples/provider-config.yaml` **Status**: ⚠️ **NEEDS UPDATE** **Required Changes**: 1. Change site name from `us-sfvalley` to `site-1` 2. Uncomment and configure site-2 3. Change site-2 name from `us-sfvalley-2` to `site-2` 4. Update namespace to `crossplane-system` (recommended) ### 2. Provider Config Template **File**: `crossplane-provider-proxmox/examples/provider-config-template.yaml` **Status**: ⚠️ **NEEDS UPDATE** **Current State**: - Uses `us-sfvalley` and `us-sfvalley-2` - Has more detailed structure with nodes/storage/networks - Uses different endpoint format (hostnames vs IPs) **Required Changes**: 1. Update site names to `site-1` and `site-2` 2. Ensure endpoints match actual Proxmox nodes 3. Verify node names match (ml110-01, r630-01) --- ## Network Configuration ### Proxmox API Endpoints **Site-1 (ML110-01)**: - **IP**: 192.168.11.10 - **Port**: 8006 (HTTPS) - **Endpoint**: `https://192.168.11.10:8006` - **Alternative**: `https://ml110-01.sankofa.nexus:8006` (if DNS configured) **Site-2 (R630-01)**: - **IP**: 192.168.11.11 - **Port**: 8006 (HTTPS) - **Endpoint**: `https://192.168.11.11:8006` - **Alternative**: `https://r630-01.sankofa.nexus:8006` (if DNS configured) ### Network Bridge **Both Sites**: - **Bridge**: `vmbr0` - **Network**: 192.168.11.0/24 - **Gateway**: Configured per site --- ## Storage Configuration ### Site-1 (ML110-01) **Storage Pools**: - **local-lvm**: 794.3 GB available - **ceph-fs**: 384 GB available **Usage**: - All VMs on ML110-01 use `local-lvm` (small disks) ### Site-2 (R630-01) **Storage Pools**: - **local-lvm**: 171.3 GB available - **Ceph OSD**: Configured - **ceph-fs**: Available (distributed storage) **Usage**: - Small disks (Cloudflare Tunnel): `local-lvm` - Large disks (all other VMs): `ceph-fs` --- ## Credentials Configuration ### Secret Configuration **File**: `crossplane-provider-proxmox/examples/provider-config.yaml` **Current**: ```yaml apiVersion: v1 kind: Secret metadata: name: proxmox-credentials namespace: default type: Opaque stringData: username: "root@pam" password: "YOUR_PROXMOX_PASSWORD_HERE" ``` **Recommendations**: 1. ✅ Use `crossplane-system` namespace (more secure) 2. ✅ Use API tokens instead of passwords (recommended) 3. ✅ Store credentials securely (not in git) 4. ⚠️ Update password before deployment ### Token-Based Authentication (Recommended) ```yaml stringData: tokenid: "root@pam!api-token-name" token: "your-api-token-secret" ``` --- ## TLS Configuration ### Current Setting **Both Sites**: `insecureSkipTLSVerify: true` **Security Considerations**: - ⚠️ **Development/Testing**: Acceptable - ❌ **Production**: Should be `false` with proper certificates - ✅ **Recommendation**: Use proper TLS certificates in production --- ## Provider Deployment Configuration ### File: `crossplane-provider-proxmox/config/provider.yaml` **Status**: ✅ **CORRECT** **Configuration**: - Namespace: `crossplane-system` - ServiceAccount: `crossplane-provider-proxmox` - RBAC: Properly configured - Resource limits: 500m CPU, 512Mi memory - Health probes: Configured --- ## Action Items ### Critical (Must Fix Before Deployment) 1. ⚠️ **Update Provider Config Site Names** - Change `us-sfvalley` → `site-1` - Add `site-2` configuration - Ensure endpoints are correct 2. ⚠️ **Update Provider Config Template** - Align site names with VM specifications - Verify endpoint formats 3. ⚠️ **Update Credentials** - Replace placeholder password - Consider using API tokens - Move to `crossplane-system` namespace ### Recommended (Before Production) 4. ✅ **TLS Configuration** - Set `insecureSkipTLSVerify: false` for production - Configure proper TLS certificates 5. ✅ **Documentation** - Document credential management process - Create deployment checklist --- ## Verification Checklist ### Before Deployment - [ ] Provider config has `site-1` defined - [ ] Provider config has `site-2` defined - [ ] Site names match VM specifications exactly - [ ] Endpoints are correct (IP addresses or hostnames) - [ ] Node names match (`ml110-01`, `r630-01`) - [ ] Credentials are configured (not placeholders) - [ ] Secret namespace is appropriate - [ ] TLS settings are appropriate for environment --- ## Related Documentation - [VM Deployment Plan](../vm/VM_DEPLOYMENT_PLAN.md) - Deployment strategy - [VM Configuration Status](../vm/VM_CONFIGURATION_STATUS.md) - VM configuration status - [Provider README](../../crossplane-provider-proxmox/README.md) - Provider documentation --- **Last Updated**: 2025-01-XX **Status**: ⚠️ **REQUIRES UPDATES BEFORE DEPLOYMENT**