Files
Sankofa/scripts/quick-deploy.sh

140 lines
4.2 KiB
Bash
Raw Permalink Normal View History

#!/bin/bash
# quick-deploy.sh
# Quick deployment script that runs all deployment steps in sequence
set -euo pipefail
# Colors
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
log() {
echo -e "${GREEN}[$(date +'%Y-%m-%d %H:%M:%S')]${NC} $1"
}
error() {
echo -e "${RED}[ERROR]${NC} $1" >&2
exit 1
}
warn() {
echo -e "${YELLOW}[WARN]${NC} $1"
}
info() {
echo -e "${BLUE}[INFO]${NC} $1"
}
step() {
echo ""
echo "═══════════════════════════════════════════════════════════════"
info "Step $1: $2"
echo "═══════════════════════════════════════════════════════════════"
echo ""
}
main() {
echo ""
echo "╔══════════════════════════════════════════════════════════════╗"
echo "║ Proxmox Quick Deployment ║"
echo "╚══════════════════════════════════════════════════════════════╝"
echo ""
info "This script will guide you through the complete deployment process"
echo ""
# Step 1: Test Connectivity
step "1" "Test Proxmox Connectivity"
read -p "Test connectivity to Proxmox instances? (y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
"${SCRIPT_DIR}/test-proxmox-connectivity.sh"
fi
# Step 2: Setup DNS
step "2" "Configure DNS Records"
read -p "Setup DNS records via Cloudflare? (y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
if [ -z "${CLOUDFLARE_ZONE_ID:-}" ] || [ -z "${CLOUDFLARE_API_TOKEN:-}" ]; then
warn "CLOUDFLARE_ZONE_ID and CLOUDFLARE_API_TOKEN must be set"
read -p "Set them now? (y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
read -p "Cloudflare Zone ID: " ZONE_ID
read -sp "Cloudflare API Token: " API_TOKEN
echo
export CLOUDFLARE_ZONE_ID="$ZONE_ID"
export CLOUDFLARE_API_TOKEN="$API_TOKEN"
fi
fi
"${SCRIPT_DIR}/setup-dns-records.sh"
fi
# Step 3: Build Provider
step "3" "Build Crossplane Provider"
read -p "Build provider? (y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
"${SCRIPT_DIR}/deploy-crossplane-provider.sh"
fi
# Step 4: Create Secret
step "4" "Create Proxmox Credentials Secret"
read -p "Create Kubernetes secret? (y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
"${SCRIPT_DIR}/create-proxmox-secret.sh"
fi
# Step 5: Apply ProviderConfig
step "5" "Apply ProviderConfig"
read -p "Apply ProviderConfig? (y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
kubectl apply -f crossplane-provider-proxmox/examples/provider-config.yaml
log "ProviderConfig applied"
fi
# Step 6: Verify Deployment
step "6" "Verify Provider Deployment"
"${SCRIPT_DIR}/verify-provider-deployment.sh"
# Step 7: Deploy Test VMs
step "7" "Deploy Test VMs"
read -p "Deploy test VMs? (y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
"${SCRIPT_DIR}/deploy-test-vms.sh"
fi
# Step 8: Setup Monitoring
step "8" "Setup Monitoring"
read -p "Setup monitoring? (y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
"${SCRIPT_DIR}/setup-monitoring.sh"
fi
echo ""
log "Quick deployment complete!"
echo ""
info "Summary:"
info " • Connectivity: Tested"
info " • DNS: Configured"
info " • Provider: Deployed"
info " • Credentials: Created"
info " • Test VMs: Deployed"
info " • Monitoring: Configured"
echo ""
info "Next: Review logs and verify all components are working"
}
main "$@"