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

7.8 KiB

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:

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:

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)

For production, use API tokens:

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

  1. provider.yaml
    • Deployment configuration correct
    • RBAC properly configured
    • Resource limits appropriate

Verification Checklist

Provider Configuration

  • Both sites defined (site-1, site-2)
  • Site names match VM specifications
  • Endpoints are correct
  • Node names match (ml110-01, r630-01)
  • Secret namespace is crossplane-system
  • TLS settings configured

Site Configuration

  • Site-1 endpoint: https://192.168.11.10:8006
  • Site-2 endpoint: https://192.168.11.11:8006
  • Network bridges: vmbr0 on both sites
  • Storage pools: local-lvm and ceph-fs available

Credentials

  • Secret namespace: crossplane-system
  • Format: username/password (or token)
  • Action Required: Update password before deployment

Pre-Deployment Actions

Critical (Must Do)

  1. ⚠️ Update Credentials

    # Edit the secret and replace placeholder password
    kubectl edit secret proxmox-credentials -n crossplane-system
    
  2. Verify Provider Config

    # 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

    # 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
    
  1. Configure TLS Certificates

    • Set insecureSkipTLSVerify: false
    • Configure proper TLS certificates
    • Update endpoints if using hostnames
  2. 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


Last Updated: 2025-01-XX
Status: CONFIGURED - READY FOR DEPLOYMENT (after credential update)