- Add comprehensive database migrations (001-024) for schema evolution - Enhance API schema with expanded type definitions and resolvers - Add new middleware: audit logging, rate limiting, MFA enforcement, security, tenant auth - Implement new services: AI optimization, billing, blockchain, compliance, marketplace - Add adapter layer for cloud integrations (Cloudflare, Kubernetes, Proxmox, storage) - Update Crossplane provider with enhanced VM management capabilities - Add comprehensive test suite for API endpoints and services - Update frontend components with improved GraphQL subscriptions and real-time updates - Enhance security configurations and headers (CSP, CORS, etc.) - Update documentation and configuration files - Add new CI/CD workflows and validation scripts - Implement design system improvements and UI enhancements
4.5 KiB
Proxmox Deployment - Script Reference
Last Updated: 2024-12-19
Overview
This document provides a complete reference for all deployment and utility scripts.
Script Categories
Deployment Scripts
quick-deploy.sh
Purpose: Interactive full deployment
Usage: ./scripts/quick-deploy.sh
Description: Guides through all deployment steps interactively
deploy-crossplane-provider.sh
Purpose: Deploy Crossplane provider to Kubernetes
Usage: ./scripts/deploy-crossplane-provider.sh
Options:
BUILD_PROVIDER=false- Skip building providerNAMESPACE=crossplane-system- Target namespace
deploy-test-vms.sh
Purpose: Deploy test VMs to both instances
Usage: ./scripts/deploy-test-vms.sh
Options:
WAIT_TIMEOUT=300- Timeout in seconds
Setup Scripts
setup-dns-records.sh
Purpose: Create DNS records via Cloudflare API
Usage:
export CLOUDFLARE_ZONE_ID="zone-id"
export CLOUDFLARE_API_TOKEN="token"
./scripts/setup-dns-records.sh
setup-proxmox-agents.sh
Purpose: Install agents on Proxmox nodes
Usage:
SITE=us-sfvalley NODE=ML110-01 ./scripts/setup-proxmox-agents.sh
setup-monitoring.sh
Purpose: Configure Prometheus and Grafana
Usage: ./scripts/setup-monitoring.sh
setup-dev-environment.sh
Purpose: Set up development environment
Usage: ./scripts/setup-dev-environment.sh
Verification Scripts
verify-provider-deployment.sh
Purpose: Verify provider deployment status
Usage: ./scripts/verify-provider-deployment.sh
test-proxmox-connectivity.sh
Purpose: Test Proxmox connectivity and authentication
Usage:
export PROXMOX_TOKEN='user@realm!token-id=token-secret'
./scripts/test-proxmox-connectivity.sh
validate-configs.sh
Purpose: Validate all configuration files
Usage: ./scripts/validate-configs.sh
check-dependencies.sh
Purpose: Check if required dependencies are installed
Usage: ./scripts/check-dependencies.sh
Utility Scripts
create-proxmox-secret.sh
Purpose: Create Kubernetes secret for credentials
Usage: ./scripts/create-proxmox-secret.sh
discover-proxmox-resources.sh
Purpose: Discover Proxmox resources
Usage: ./scripts/discover-proxmox-resources.sh
Script Execution Order
Initial Deployment
-
Check Dependencies
./scripts/check-dependencies.sh -
Validate Configurations
./scripts/validate-configs.sh -
Test Connectivity
./scripts/test-proxmox-connectivity.sh -
Setup DNS
./scripts/setup-dns-records.sh -
Deploy Provider
./scripts/deploy-crossplane-provider.sh -
Create Secret
./scripts/create-proxmox-secret.sh -
Apply ProviderConfig
kubectl apply -f crossplane-provider-proxmox/examples/provider-config.yaml -
Verify Deployment
./scripts/verify-provider-deployment.sh -
Deploy Test VMs
./scripts/deploy-test-vms.sh -
Setup Monitoring
./scripts/setup-monitoring.sh
Or Use Quick Deploy
./scripts/quick-deploy.sh
Environment Variables
Cloudflare
CLOUDFLARE_ZONE_ID- Cloudflare zone IDCLOUDFLARE_API_TOKEN- Cloudflare API tokenDOMAIN- Domain name (default: sankofa.nexus)
Proxmox
PROXMOX_USERNAME- Proxmox usernamePROXMOX_PASSWORD- Proxmox passwordPROXMOX_TOKEN- Proxmox API token
Kubernetes
NAMESPACE- Target namespace (default: crossplane-system)BUILD_PROVIDER- Build provider (default: true)
Script Output
All scripts provide:
- Color-coded output (green=success, red=error, yellow=warning)
- Timestamped logs
- Clear error messages
- Exit codes (0=success, non-zero=failure)
Troubleshooting
Script Fails with "command not found"
# Check if script is executable
chmod +x scripts/*.sh
# Check dependencies
./scripts/check-dependencies.sh
Script Fails with Permission Denied
# Make script executable
chmod +x scripts/<script-name>.sh
Validation Script Fails
# Install yamllint
pip3 install yamllint
# Or use Python validation
python3 -c "import yaml; yaml.safe_load_all(open('file.yaml'))"