- Deleted outdated files related to repository audit and deployment status, including AUDIT_COMPLETE.md, AUDIT_FIXES_APPLIED.md, FINAL_DEPLOYMENT_STATUS.md, and others. - Cleaned up documentation to streamline the repository and improve clarity for future maintenance. - Updated README and other relevant documentation to reflect the removal of these files.
4.1 KiB
4.1 KiB
Proxmox Deployment - Quick Start Guide
Last Updated: 2024-12-19
Overview
This guide provides a quick path to deploy the Crossplane Proxmox provider and configure all components.
Prerequisites
- Kubernetes cluster (kubectl configured)
- Go 1.21+ (for building provider)
- Cloudflare account (for DNS and tunnels)
- Proxmox API credentials
- Network access to Proxmox instances
Quick Deployment
Option 1: Automated Script (Recommended)
# Run the quick deployment script
./scripts/quick-deploy.sh
This interactive script guides you through all deployment steps.
Option 2: Manual Step-by-Step
1. Test Connectivity
# Test Proxmox connectivity
./scripts/test-proxmox-connectivity.sh
# With credentials
export PROXMOX_TOKEN='user@realm!token-id=token-secret'
./scripts/test-proxmox-connectivity.sh
2. Configure DNS
# Set Cloudflare credentials
export CLOUDFLARE_ZONE_ID="your-zone-id"
export CLOUDFLARE_API_TOKEN="your-api-token"
# Create DNS records
./scripts/setup-dns-records.sh
3. Deploy Provider
# Build and deploy Crossplane provider
./scripts/deploy-crossplane-provider.sh
# Or skip build if already built
BUILD_PROVIDER=false ./scripts/deploy-crossplane-provider.sh
4. Create Credentials Secret
# Interactive secret creation
./scripts/create-proxmox-secret.sh
5. Apply ProviderConfig
# Apply provider configuration
kubectl apply -f crossplane-provider-proxmox/examples/provider-config.yaml
# Verify
./scripts/verify-provider-deployment.sh
6. Deploy Test VMs
# Deploy test VMs to both instances
./scripts/deploy-test-vms.sh
7. Setup Monitoring
# Configure Prometheus and Grafana
./scripts/setup-monitoring.sh
Verification
Check Provider Status
# Verify provider is running
kubectl get pods -n crossplane-system
# Check provider logs
kubectl logs -n crossplane-system -l app=crossplane-provider-proxmox
# Verify ProviderConfig
kubectl get providerconfig proxmox-provider-config
Check VM Status
# List all VMs
kubectl get proxmoxvm
# Get VM details
kubectl describe proxmoxvm <vm-name>
# Check VM status
kubectl get proxmoxvm <vm-name> -o yaml
Test Connectivity
# Test Proxmox API access
curl -k -H "Authorization: PVEAPIToken <token>" \
https://ml110-01.sankofa.nexus:8006/api2/json/version
curl -k -H "Authorization: PVEAPIToken <token>" \
https://r630-01.sankofa.nexus:8006/api2/json/version
Troubleshooting
Provider Not Starting
# Check provider logs
kubectl logs -n crossplane-system -l app=crossplane-provider-proxmox
# Check CRDs
kubectl get crd | grep proxmox
# Verify ProviderConfig
kubectl describe providerconfig proxmox-provider-config
VM Creation Failing
# Check VM resource status
kubectl describe proxmoxvm <vm-name>
# Check provider logs for errors
kubectl logs -n crossplane-system -l app=crossplane-provider-proxmox | grep -i error
# Verify credentials secret
kubectl get secret proxmox-credentials -n crossplane-system -o yaml
DNS Not Resolving
# Test DNS resolution
dig ml110-01.sankofa.nexus
dig r630-01.sankofa.nexus
# Check /etc/hosts if using local resolution
cat /etc/hosts | grep sankofa.nexus
Common Commands
# View all Proxmox resources
kubectl get proxmoxvm,proxmoxvmscaleset,providerconfig
# Delete a VM
kubectl delete proxmoxvm <vm-name>
# Update ProviderConfig
kubectl apply -f crossplane-provider-proxmox/examples/provider-config.yaml
# Restart provider
kubectl rollout restart deployment/crossplane-provider-proxmox -n crossplane-system
Next Steps
- Deploy Production VMs: Create VM manifests for production workloads
- Configure Monitoring: Set up alerts and dashboards
- Set Up Backups: Configure automated VM backups
- Security Hardening: Review and implement security best practices