Files
Sankofa/docs/proxmox/PROXMOX_CONFIGURATION_SUMMARY.md
defiQUG 4880a9d6c3
Some checks failed
CD Pipeline / Deploy to Staging (push) Has been cancelled
CD Pipeline / Deploy to Production (push) Has been cancelled
CI Pipeline / Lint and Type Check (push) Has been cancelled
CI Pipeline / Test Backend (push) Has been cancelled
CI Pipeline / Test Frontend (push) Has been cancelled
CI Pipeline / Build (push) Has been cancelled
CI Pipeline / Security Scan (push) Has been cancelled
Deploy to Staging / Deploy to Staging (push) Has been cancelled
Test Suite / frontend-tests (push) Has been cancelled
Test Suite / api-tests (push) Has been cancelled
Test Suite / blockchain-tests (push) Has been cancelled
Type Check / type-check (map[directory:. name:root]) (push) Has been cancelled
Type Check / type-check (map[directory:api name:api]) (push) Has been cancelled
Type Check / type-check (map[directory:portal name:portal]) (push) Has been cancelled
Build Crossplane Provider / build (push) Has been cancelled
Crossplane Provider CI / Go Test (push) Has been cancelled
Crossplane Provider CI / Go Lint (push) Has been cancelled
Crossplane Provider CI / Go Build (push) Has been cancelled
Validate Configuration Files / validate (push) Has been cancelled
Update Proxmox provider configuration examples for improved clarity and security
- Revised provider-config-template.yaml and provider-config.yaml to reflect updated site names and endpoints for better alignment with VM specifications.
- Enhanced documentation regarding authentication methods, emphasizing the use of token-based authentication for production environments.
- Updated namespace references to ensure consistency across configuration files.
2025-12-13 05:10:55 -08:00

321 lines
7.8 KiB
Markdown

# Proxmox Base Configuration Summary
**Date**: 2025-01-XX
**Status**: ✅ **CONFIGURED AND VERIFIED**
---
## Configuration Overview
All Proxmox base configurations have been reviewed and updated to match the VM deployment requirements.
---
## Provider Configuration
### File: `crossplane-provider-proxmox/examples/provider-config.yaml`
**Status**: ✅ **UPDATED AND CORRECT**
**Configuration**:
```yaml
apiVersion: proxmox.sankofa.nexus/v1alpha1
kind: ProviderConfig
metadata:
name: proxmox-provider-config
spec:
credentials:
source: Secret
secretRef:
name: proxmox-credentials
namespace: crossplane-system
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
```
**Key Points**:
- ✅ Both sites configured (`site-1` and `site-2`)
- ✅ Site names match VM specifications exactly
- ✅ Endpoints use IP addresses (192.168.11.10 and 192.168.11.11)
- ✅ Node names match (`ml110-01`, `r630-01`)
- ✅ Secret namespace: `crossplane-system` (secure)
- ✅ TLS verification skipped (for development/testing)
---
## Site Configurations
### Site-1 (ML110-01)
**Configuration**:
- **Name**: `site-1`
- **Endpoint**: `https://192.168.11.10:8006`
- **Node**: `ml110-01`
- **IP Address**: 192.168.11.10
- **Hardware**: 6 CPU cores, 256 GB RAM
- **Storage Pools**:
- `local-lvm`: 794.3 GB
- `ceph-fs`: 384 GB
- **Network Bridge**: `vmbr0`
- **VMs**: 4 production VMs
**Status**: ✅ **PROPERLY CONFIGURED**
### Site-2 (R630-01)
**Configuration**:
- **Name**: `site-2`
- **Endpoint**: `https://192.168.11.11:8006`
- **Node**: `r630-01`
- **IP Address**: 192.168.11.11
- **Hardware**: 52 CPU cores, 768 GB RAM
- **Storage Pools**:
- `local-lvm`: 171.3 GB
- `ceph-fs`: Available (distributed storage)
- **Network Bridge**: `vmbr0`
- **VMs**: 22 production VMs
**Status**: ✅ **PROPERLY CONFIGURED**
---
## Credentials Configuration
### Secret: `proxmox-credentials`
**Location**: `crossplane-system` namespace
**Format**:
```yaml
apiVersion: v1
kind: Secret
metadata:
name: proxmox-credentials
namespace: crossplane-system
type: Opaque
stringData:
username: "root@pam"
password: "YOUR_PROXMOX_PASSWORD_HERE"
```
**Security Notes**:
- ⚠️ **Action Required**: Replace `YOUR_PROXMOX_PASSWORD_HERE` with actual password
-**Recommendation**: Use API tokens instead of passwords for production
-**Namespace**: Using `crossplane-system` (more secure than `default`)
### Token-Based Authentication (Recommended)
For production, use API tokens:
```yaml
stringData:
tokenid: "root@pam!api-token-name"
token: "your-api-token-secret"
```
---
## Provider Deployment
### File: `crossplane-provider-proxmox/config/provider.yaml`
**Status**: ✅ **CORRECT**
**Configuration**:
- **Namespace**: `crossplane-system`
- **ServiceAccount**: `crossplane-provider-proxmox`
- **RBAC**: Properly configured
- **Resource Limits**:
- CPU: 500m (limit), 100m (request)
- Memory: 512Mi (limit), 128Mi (request)
- **Health Probes**: Configured
- **Image**: `crossplane-provider-proxmox:latest`
---
## Storage Configuration
### Site-1 (ML110-01)
**Storage Pools**:
- **local-lvm**: 794.3 GB available
- Used by: All VMs on ML110-01 (small disks)
- **ceph-fs**: 384 GB available
- Available for: Future use or larger VMs
### Site-2 (R630-01)
**Storage Pools**:
- **local-lvm**: 171.3 GB available
- Used by: Cloudflare Tunnel VM (small disk)
- **ceph-fs**: Available (distributed storage)
- Used by: All other VMs (21 VMs with large disks)
**Storage Usage**:
- Small disks (< 50 GiB): `local-lvm`
- Large disks (≥ 50 GiB): `ceph-fs`
---
## Network Configuration
### Network Bridges
**Both Sites**:
- **Bridge**: `vmbr0`
- **Network**: 192.168.11.0/24
- **Gateway**: Configured per site
### Proxmox API Access
**Site-1**:
- **Endpoint**: `https://192.168.11.10:8006`
- **Port**: 8006 (HTTPS)
- **Alternative**: `https://ml110-01.sankofa.nexus:8006` (if DNS configured)
**Site-2**:
- **Endpoint**: `https://192.168.11.11:8006`
- **Port**: 8006 (HTTPS)
- **Alternative**: `https://r630-01.sankofa.nexus:8006` (if DNS configured)
---
## TLS Configuration
### Current Setting
**Both Sites**: `insecureSkipTLSVerify: true`
**Security Considerations**:
-**Development/Testing**: Acceptable
- ⚠️ **Production**: Should be `false` with proper certificates
-**Recommendation**: Configure proper TLS certificates for production
---
## Configuration Files Status
### ✅ Updated Files
1. **provider-config.yaml**
- ✅ Site names updated to `site-1` and `site-2`
- ✅ Both sites configured
- ✅ Namespace updated to `crossplane-system`
2. **provider-config-template.yaml**
- ✅ Site names updated to `site-1` and `site-2`
- ✅ Credential format corrected
- ✅ Structure aligned with API
### ✅ Verified Files
3. **provider.yaml**
- ✅ Deployment configuration correct
- ✅ RBAC properly configured
- ✅ Resource limits appropriate
---
## Verification Checklist
### ✅ Provider Configuration
- [x] Both sites defined (`site-1`, `site-2`)
- [x] Site names match VM specifications
- [x] Endpoints are correct
- [x] Node names match (`ml110-01`, `r630-01`)
- [x] Secret namespace is `crossplane-system`
- [x] TLS settings configured
### ✅ Site Configuration
- [x] Site-1 endpoint: `https://192.168.11.10:8006`
- [x] Site-2 endpoint: `https://192.168.11.11:8006`
- [x] Network bridges: `vmbr0` on both sites
- [x] Storage pools: `local-lvm` and `ceph-fs` available
### ✅ Credentials
- [x] Secret namespace: `crossplane-system`
- [x] Format: username/password (or token)
- [ ] **Action Required**: Update password before deployment
---
## Pre-Deployment Actions
### Critical (Must Do)
1. ⚠️ **Update Credentials**
```bash
# Edit the secret and replace placeholder password
kubectl edit secret proxmox-credentials -n crossplane-system
```
2. ✅ **Verify Provider Config**
```bash
# Apply provider configuration
kubectl apply -f crossplane-provider-proxmox/examples/provider-config.yaml
# Verify it's loaded
kubectl get providerconfig -n crossplane-system
```
3. ✅ **Verify Provider Pod**
```bash
# Check provider is running
kubectl get pods -n crossplane-system -l app=crossplane-provider-proxmox
# Check logs for errors
kubectl logs -n crossplane-system -l app=crossplane-provider-proxmox
```
### Recommended (Before Production)
4. ✅ **Configure TLS Certificates**
- Set `insecureSkipTLSVerify: false`
- Configure proper TLS certificates
- Update endpoints if using hostnames
5. ✅ **Use API Tokens**
- Create Proxmox API tokens
- Update secret with token credentials
- More secure than passwords
---
## Configuration Summary
### ✅ All Configurations Correct
- **Provider Config**: Both sites configured with correct names
- **Site Names**: Match VM specifications (`site-1`, `site-2`)
- **Endpoints**: Correct IP addresses and ports
- **Node Names**: Match actual Proxmox nodes
- **Storage**: Appropriate pools configured
- **Network**: Bridges configured (`vmbr0`)
- **Credentials**: Format correct (password update required)
### ⚠️ Action Required
1. **Update Credentials**: Replace placeholder password in secret
2. **Verify Connectivity**: Test Proxmox API access from Kubernetes cluster
3. **Production TLS**: Configure proper certificates for production
---
## Related Documentation
- [Proxmox Base Configuration Review](./PROXMOX_BASE_CONFIGURATION_REVIEW.md) - Detailed review
- [VM Deployment Plan](../vm/VM_DEPLOYMENT_PLAN.md) - Deployment strategy
- [Provider README](../../crossplane-provider-proxmox/README.md) - Provider documentation
---
**Last Updated**: 2025-01-XX
**Status**: ✅ **CONFIGURED - READY FOR DEPLOYMENT** (after credential update)