Files
wild-cloud/bin/wild-setup

186 lines
5.8 KiB
Bash
Executable File

#!/bin/bash
set -e
set -o pipefail
# Source common utilities
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/wild-common.sh"
# Initialize Wild-Cloud environment
init_wild_env
# Phase tracking variables
SKIP_SCAFFOLD=false
SKIP_CLUSTER=false
SKIP_SERVICES=false
# Parse arguments
while [[ $# -gt 0 ]]; do
case $1 in
--skip-scaffold)
SKIP_SCAFFOLD=true
shift
;;
--skip-cluster)
SKIP_CLUSTER=true
shift
;;
--skip-services)
SKIP_SERVICES=true
shift
;;
-h|--help)
echo "Usage: $0 [component-options]"
echo ""
echo "Complete Wild-Cloud setup - runs all components in sequence."
echo ""
echo "Component Control Options:"
echo " --skip-scaffold Skip scaffold setup (cloud initialization)"
echo " --skip-cluster Skip cluster setup (Phases 1-3)"
echo " --skip-services Skip services setup (Phase 4)"
echo " -h, --help Show this help message"
echo ""
echo "This script runs:"
echo " 1. wild-setup-scaffold # Cloud initialization and basic config"
echo " 2. wild-setup-cluster # Cluster infrastructure (Phases 1-3)"
echo " 3. wild-setup-services # Cluster services (Phase 4)"
echo ""
echo "You can also run these components individually:"
echo " - wild-setup-scaffold [--update]"
echo " - wild-setup-cluster [--skip-installer] [--skip-hardware] [--skip-configs]"
echo " - wild-setup-services [--skip-install]"
echo ""
echo "For detailed options for each component, use:"
echo " wild-setup-scaffold --help"
echo " wild-setup-cluster --help"
echo " wild-setup-services --help"
exit 0
;;
-*)
echo "Unknown option $1"
echo "Usage: $0 [component-options]"
echo "Use --help for full usage information"
exit 1
;;
*)
echo "Unexpected argument: $1"
echo "Usage: $0 [component-options]"
echo "Use --help for full usage information"
exit 1
;;
esac
done
# Set up cloud directory (WC_HOME is where user's cloud will be)
WC_HOME="$(pwd)"
export WC_HOME
print_header "Wild-Cloud Complete Setup"
print_info "Running complete Wild-Cloud setup using modular components"
echo ""
# =============================================================================
# SCAFFOLD SETUP
# =============================================================================
if [ "${SKIP_SCAFFOLD}" = false ]; then
print_header "Component 1: Scaffold Setup"
print_info "Running wild-setup-scaffold..."
if wild-setup-scaffold; then
print_success "Component 1 completed: Scaffold setup"
else
print_error "Component 1 failed: Scaffold setup"
exit 1
fi
echo ""
else
print_info "Skipping Component 1: Scaffold Setup"
fi
# =============================================================================
# CLUSTER SETUP
# =============================================================================
if [ "${SKIP_CLUSTER}" = false ]; then
print_header "Component 2: Cluster Setup"
print_info "Running wild-setup-cluster..."
if wild-setup-cluster; then
print_success "Component 2 completed: Cluster setup"
else
print_error "Component 2 failed: Cluster setup"
exit 1
fi
echo ""
else
print_info "Skipping Component 2: Cluster Setup"
fi
# =============================================================================
# SERVICES SETUP
# =============================================================================
if [ "${SKIP_SERVICES}" = false ]; then
print_header "Component 3: Services Setup"
print_info "Running wild-setup-services..."
if wild-setup-services; then
print_success "Component 3 completed: Services setup"
else
print_error "Component 3 failed: Services setup"
exit 1
fi
echo ""
else
print_info "Skipping Component 3: Services Setup"
fi
# =============================================================================
# FINAL SUMMARY
# =============================================================================
print_header "Wild-Cloud Complete Setup Finished!"
print_success "All components completed successfully!"
echo ""
print_info "What was accomplished:"
if [ "${SKIP_SCAFFOLD}" = false ]; then
print_info "✅ Component 1: Scaffold setup (cloud initialization)"
else
print_info "⏸️ Component 1: Scaffold setup (skipped)"
fi
if [ "${SKIP_CLUSTER}" = false ]; then
print_info "✅ Component 2: Cluster setup (Phases 1-3)"
else
print_info "⏸️ Component 2: Cluster setup (skipped)"
fi
if [ "${SKIP_SERVICES}" = false ]; then
print_info "✅ Component 3: Services setup (Phase 4)"
else
print_info "⏸️ Component 3: Services setup (skipped)"
fi
echo ""
print_info "Individual components can be run separately:"
echo " - wild-setup-scaffold # Cloud initialization"
echo " - wild-setup-cluster # Cluster infrastructure"
echo " - wild-setup-services # Cluster services"
echo ""
if [ "${SKIP_SERVICES}" = false ] && command -v kubectl >/dev/null 2>&1; then
if [ -f "${WC_HOME}/config.yaml" ]; then
INTERNAL_DOMAIN=$(wild-config cloud.internalDomain 2>/dev/null || echo "your-internal-domain")
print_info "Your Wild-Cloud is ready!"
echo " Dashboard: https://dashboard.${INTERNAL_DOMAIN}"
echo " Get token: ./bin/dashboard-token"
fi
else
print_info "Complete the remaining setup steps to finalize your Wild-Cloud deployment"
fi
print_success "Wild-Cloud setup completed!"