- 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
130 lines
3.9 KiB
Bash
Executable File
130 lines
3.9 KiB
Bash
Executable File
#!/bin/bash
|
|
# Complete VM 100 deployment process
|
|
# This script guides through checking, fixing, and starting VM 100
|
|
|
|
set -e
|
|
|
|
VMID=100
|
|
VM_NAME="basic-vm-001"
|
|
|
|
echo "=========================================="
|
|
echo "VM 100 Deployment Completion Script"
|
|
echo "=========================================="
|
|
echo ""
|
|
|
|
# Step 1: Check current status from Kubernetes
|
|
echo "Step 1: Checking Kubernetes status..."
|
|
echo "--------------------------------------"
|
|
kubectl get proxmoxvm $VM_NAME -o wide 2>/dev/null || echo "VM not found in Kubernetes"
|
|
echo ""
|
|
|
|
# Step 2: Instructions for Proxmox node
|
|
echo "Step 2: Run these commands on Proxmox node (root@ml110-01)"
|
|
echo "--------------------------------------"
|
|
echo ""
|
|
echo "Copy and paste this block into your Proxmox SSH session:"
|
|
echo ""
|
|
echo "--- START PROXMOX COMMANDS ---"
|
|
echo "VMID=100"
|
|
echo ""
|
|
echo "# 1. Check VM status"
|
|
echo "qm status \$VMID"
|
|
echo ""
|
|
echo "# 2. Check full configuration"
|
|
echo "qm config \$VMID"
|
|
echo ""
|
|
echo "# 3. Check boot order"
|
|
echo "qm config \$VMID | grep '^boot:' || echo '⚠️ Boot order not set'"
|
|
echo ""
|
|
echo "# 4. Check disk configuration"
|
|
echo "qm config \$VMID | grep '^scsi0:' || echo '⚠️ Disk not configured'"
|
|
echo ""
|
|
echo "# 5. Check if disk exists"
|
|
echo "lvs | grep vm-\$VMID-disk || echo '⚠️ No disk found'"
|
|
echo ""
|
|
echo "# 6. Check cloud-init"
|
|
echo "qm config \$VMID | grep -E '^ide2:|^ciuser:' || echo '⚠️ Cloud-init not configured'"
|
|
echo ""
|
|
echo "# 7. Check network"
|
|
echo "qm config \$VMID | grep '^net0:' || echo '⚠️ Network not configured'"
|
|
echo ""
|
|
echo "# 8. Check guest agent"
|
|
echo "qm config \$VMID | grep '^agent:' || echo '⚠️ Guest agent not enabled'"
|
|
echo ""
|
|
echo "--- END PROXMOX COMMANDS ---"
|
|
echo ""
|
|
|
|
# Step 3: Fix commands (if needed)
|
|
echo "Step 3: Fix commands (run if issues found)"
|
|
echo "--------------------------------------"
|
|
echo ""
|
|
echo "If boot order missing:"
|
|
echo " qm set $VMID --boot order=scsi0"
|
|
echo ""
|
|
echo "If guest agent missing:"
|
|
echo " qm set $VMID --agent 1"
|
|
echo ""
|
|
echo "If cloud-init missing:"
|
|
echo " qm set $VMID --ide2 local-lvm:cloudinit"
|
|
echo " qm set $VMID --ciuser admin"
|
|
echo " qm set $VMID --ipconfig0 ip=dhcp"
|
|
echo ""
|
|
echo "If disk not configured or blank, image import may have failed."
|
|
echo "Check if image exists:"
|
|
echo " find /var/lib/vz/template/iso -name 'ubuntu-22.04-cloud.img'"
|
|
echo ""
|
|
echo ""
|
|
|
|
# Step 4: Start VM
|
|
echo "Step 4: Start VM (after verification)"
|
|
echo "--------------------------------------"
|
|
echo ""
|
|
echo "Once all checks pass, start the VM:"
|
|
echo " qm start $VMID"
|
|
echo ""
|
|
echo ""
|
|
|
|
# Step 5: Monitoring commands
|
|
echo "Step 5: Monitoring commands"
|
|
echo "--------------------------------------"
|
|
echo ""
|
|
echo "From Kubernetes (run in another terminal):"
|
|
echo " kubectl get proxmoxvm $VM_NAME -w"
|
|
echo ""
|
|
echo "From Proxmox node:"
|
|
echo " watch -n 2 'qm status $VMID'"
|
|
echo ""
|
|
echo "Check provider logs:"
|
|
echo " kubectl logs -n crossplane-system -l app=crossplane-provider-proxmox --tail=50 -f"
|
|
echo ""
|
|
echo ""
|
|
|
|
# Step 6: Verification after start
|
|
echo "Step 6: Verification after VM starts"
|
|
echo "--------------------------------------"
|
|
echo ""
|
|
echo "Once VM shows 'running' status:"
|
|
echo ""
|
|
echo "1. Get VM IP:"
|
|
echo " kubectl get proxmoxvm $VM_NAME -o jsonpath='{.status.networkInterfaces[0].ipAddress}'"
|
|
echo ""
|
|
echo "2. Check cloud-init logs (once IP is available):"
|
|
echo " ssh admin@<VM_IP> 'cat /var/log/cloud-init-output.log | tail -50'"
|
|
echo ""
|
|
echo "3. Verify services:"
|
|
echo " ssh admin@<VM_IP> 'systemctl status qemu-guest-agent chrony unattended-upgrades'"
|
|
echo ""
|
|
echo ""
|
|
|
|
echo "=========================================="
|
|
echo "Next Actions:"
|
|
echo "=========================================="
|
|
echo "1. SSH to Proxmox node: root@ml110-01"
|
|
echo "2. Run the check commands from Step 2"
|
|
echo "3. Fix any issues found (Step 3)"
|
|
echo "4. Start the VM: qm start $VMID"
|
|
echo "5. Monitor from Kubernetes (Step 5)"
|
|
echo "6. Verify services once VM is running (Step 6)"
|
|
echo ""
|
|
|