Files
Sankofa/infrastructure/proxmox
defiQUG 33d50fb91e
Some checks failed
API CI / API Lint (push) Successful in 47s
API CI / API Type Check (push) Failing after 47s
API CI / API Test (push) Successful in 1m0s
API CI / API Build (push) Failing after 50s
API CI / Build Docker Image (push) Has been skipped
Build Crossplane Provider / build (push) Failing after 5m51s
CD Pipeline / Deploy to Staging (push) Failing after 29s
CI Pipeline / Lint and Type Check (push) Failing after 36s
CI Pipeline / Build (push) Has been skipped
CI Pipeline / Test Backend (push) Failing after 1m33s
CI Pipeline / Test Frontend (push) Failing after 30s
CI Pipeline / Security Scan (push) Failing after 1m16s
Crossplane Provider CI / Go Test (push) Failing after 3m23s
Crossplane Provider CI / Go Lint (push) Failing after 7m27s
Crossplane Provider CI / Go Build (push) Failing after 3m27s
Deploy to Staging / Deploy to Staging (push) Failing after 30s
Portal CI / Portal Lint (push) Failing after 21s
Portal CI / Portal Type Check (push) Failing after 21s
Portal CI / Portal Test (push) Failing after 21s
Portal CI / Portal Build (push) Failing after 22s
Test Suite / frontend-tests (push) Failing after 30s
Test Suite / api-tests (push) Failing after 49s
Test Suite / blockchain-tests (push) Failing after 30s
Type Check / type-check (map[directory:. name:root]) (push) Failing after 23s
Type Check / type-check (map[directory:api name:api]) (push) Failing after 21s
Type Check / type-check (map[directory:portal name:portal]) (push) Failing after 19s
Validate Configuration Files / validate (push) Failing after 1m52s
CD Pipeline / Deploy to Production (push) Has been skipped
chore: consolidate local WIP (repo cleanup 20260707)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-07 09:41:34 -07:00
..
2026-07-07 09:41:34 -07:00

Proxmox VE Management

Comprehensive management tools and integrations for Proxmox VE virtualization infrastructure.

Overview

This directory contains management components for Proxmox VE clusters deployed across Sankofa Phoenix edge sites. It complements the existing Crossplane provider (crossplane-provider-proxmox/) with additional tooling for operations, monitoring, and automation.

Components

API Client (api/)

Proxmox API client utilities and helpers for:

  • Cluster operations
  • Storage management
  • Network configuration
  • Backup operations
  • Node management

Terraform (terraform/)

Terraform modules for:

  • Proxmox cluster provisioning
  • Storage pool configuration
  • Network bridge setup
  • Resource pool management

Ansible (ansible/)

Ansible roles and playbooks for:

  • Cluster deployment
  • Node configuration
  • Storage setup
  • Network configuration
  • Monitoring agent installation

Scripts (scripts/)

Management scripts for:

  • Cluster health checks
  • Backup automation
  • Disaster recovery
  • Performance tuning
  • Maintenance operations

Integration with Crossplane Provider

The Proxmox management components work alongside the Crossplane provider:

  • Crossplane Provider: Declarative VM management via Kubernetes
  • Management Tools: Operational tasks, monitoring, and automation
  • API Client: Direct Proxmox API access for advanced operations

Usage

Cluster Setup

# Setup a new Proxmox cluster
./scripts/setup-cluster.sh \
  --site us-east-1 \
  --nodes pve1,pve2,pve3 \
  --storage local-lvm \
  --network vmbr0

Storage Management

# Add storage pool
./scripts/add-storage.sh \
  --pool ceph-storage \
  --type ceph \
  --nodes pve1,pve2,pve3

Network Configuration

# Configure network bridge
./scripts/configure-network.sh \
  --bridge vmbr1 \
  --vlan 100 \
  --nodes pve1,pve2,pve3

Ansible Deployment

# Deploy Proxmox configuration
cd ansible
ansible-playbook -i inventory.yml site-deployment.yml \
  -e site=us-east-1 \
  -e nodes="pve1,pve2,pve3"

Terraform

# Provision Proxmox infrastructure
cd terraform
terraform init
terraform plan -var="site=us-east-1"
terraform apply

Configuration

Site Configuration

Each Proxmox site requires configuration:

site: us-east-1
nodes:
  - name: pve1
    ip: 10.1.0.10
    role: master
  - name: pve2
    ip: 10.1.0.11
    role: worker
  - name: pve3
    ip: 10.1.0.12
    role: worker
storage:
  pools:
    - name: local-lvm
      type: lvm
    - name: ceph-storage
      type: ceph
networks:
  bridges:
    - name: vmbr0
      type: bridge
      vlan: untagged
    - name: vmbr1
      type: bridge
      vlan: 100

API Authentication

Proxmox API authentication via tokens:

# Create API token
export PROXMOX_API_URL=https://pve1.sankofa.nexus:8006
export PROXMOX_API_TOKEN=root@pam!token-name=abc123def456

Monitoring

Proxmox monitoring integrates with the Prometheus stack:

  • pve_exporter: Prometheus metrics exporter
  • Grafana Dashboards: Pre-built dashboards for Proxmox
  • Alerts: Alert rules for cluster health

See Monitoring for details.

Backup and Recovery

Automated Backups

# Configure backup schedule
./scripts/configure-backups.sh \
  --schedule "0 2 * * *" \
  --retention 30 \
  --storage backup-storage

Disaster Recovery

# Restore from backup
./scripts/restore-backup.sh \
  --backup backup-20240101 \
  --target pve1

Multi-Site Management

For managing multiple Proxmox sites:

# List all sites
./scripts/list-sites.sh

# Get site status
./scripts/site-status.sh --site us-east-1

# Sync configuration across sites
./scripts/sync-config.sh --sites us-east-1,eu-west-1

Security

  • API tokens with least privilege
  • TLS/SSL for all API communications
  • Network isolation via VLANs
  • Regular security updates
  • Audit logging

Troubleshooting

Common Issues

Cluster split-brain:

./scripts/fix-split-brain.sh --site us-east-1

Storage issues:

./scripts/diagnose-storage.sh --pool local-lvm

Network connectivity:

./scripts/test-network.sh --node pve1