Files
Sankofa/docs/proxmox/QUICK_START.md
defiQUG 9daf1fd378 Apply Composer changes: comprehensive API updates, migrations, middleware, and infrastructure improvements
- 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
2025-12-12 18:01:35 -08:00

201 lines
4.1 KiB
Markdown

# 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)
```bash
# 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
```bash
# 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
```bash
# 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
```bash
# 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
```bash
# Interactive secret creation
./scripts/create-proxmox-secret.sh
```
#### 5. Apply ProviderConfig
```bash
# Apply provider configuration
kubectl apply -f crossplane-provider-proxmox/examples/provider-config.yaml
# Verify
./scripts/verify-provider-deployment.sh
```
#### 6. Deploy Test VMs
```bash
# Deploy test VMs to both instances
./scripts/deploy-test-vms.sh
```
#### 7. Setup Monitoring
```bash
# Configure Prometheus and Grafana
./scripts/setup-monitoring.sh
```
## Verification
### Check Provider Status
```bash
# 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
```bash
# 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
```bash
# 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
```bash
# 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
```bash
# 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
```bash
# 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
```bash
# 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
1. **Deploy Production VMs**: Create VM manifests for production workloads
2. **Configure Monitoring**: Set up alerts and dashboards
3. **Set Up Backups**: Configure automated VM backups
4. **Security Hardening**: Review and implement security best practices
## Related Documentation
- [Deployment Checklist](./DEPLOYMENT_CHECKLIST.md)
- [Deployment Guide](./DEPLOYMENT_GUIDE.md)
- [Task List](./TASK_LIST.md)
- [DNS Configuration](./DNS_CONFIGURATION.md)