MàJ - Application.properties
This commit is contained in:
212
deploy-lionsdev-client.sh
Normal file
212
deploy-lionsdev-client.sh
Normal file
@@ -0,0 +1,212 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Lions Dev Client Deployment Script
|
||||
# This script deploys the Lions Dev application using lionsctl pipeline
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# Configuration
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
LIONSCTL_PATH="${SCRIPT_DIR}/../lions-infrastructure-2025/lionsctl/lionsctl.exe"
|
||||
REPO_URL="https://git.lions.dev/lionsctl-bot/lionsctl-deployments"
|
||||
BRANCH="main"
|
||||
JAVA_VERSION=17
|
||||
NOTIFICATION_EMAIL="gbanedahoud@gmail.com"
|
||||
|
||||
# Colors for output
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Logging functions
|
||||
log_info() {
|
||||
echo -e "${BLUE}[INFO]${NC} $1"
|
||||
}
|
||||
|
||||
log_success() {
|
||||
echo -e "${GREEN}[SUCCESS]${NC} $1"
|
||||
}
|
||||
|
||||
log_warning() {
|
||||
echo -e "${YELLOW}[WARNING]${NC} $1"
|
||||
}
|
||||
|
||||
log_error() {
|
||||
echo -e "${RED}[ERROR]${NC} $1"
|
||||
}
|
||||
|
||||
# Help function
|
||||
show_help() {
|
||||
cat << EOF
|
||||
Lions Dev Client Deployment Script
|
||||
|
||||
Usage: $0 [OPTIONS]
|
||||
|
||||
OPTIONS:
|
||||
-e, --environment Target environment (dev|staging|production) [default: production]
|
||||
-c, --cluster Target cluster (k1|k2) [default: k2 for production, k1 for dev/staging]
|
||||
-b, --branch Git branch to deploy [default: main]
|
||||
-m, --email Notification email [default: gbanedahoud@gmail.com]
|
||||
-j, --java-version Java version to use [default: 17]
|
||||
-h, --help Show this help message
|
||||
|
||||
EXAMPLES:
|
||||
# Deploy to production (default)
|
||||
$0
|
||||
|
||||
# Deploy to staging
|
||||
$0 --environment staging
|
||||
|
||||
# Deploy to development
|
||||
$0 --environment dev --cluster k1
|
||||
|
||||
# Deploy specific branch to production
|
||||
$0 --branch feature/new-design --environment production
|
||||
|
||||
ENVIRONMENTS:
|
||||
- dev: Development environment on k1 cluster (dev.lions.dev)
|
||||
- staging: Staging environment on k1 cluster (staging.lions.dev)
|
||||
- production: Production environment on k2 cluster (lions.dev)
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
# Parse command line arguments
|
||||
ENVIRONMENT="production"
|
||||
CLUSTER=""
|
||||
EMAIL="$NOTIFICATION_EMAIL"
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case $1 in
|
||||
-e|--environment)
|
||||
ENVIRONMENT="$2"
|
||||
shift 2
|
||||
;;
|
||||
-c|--cluster)
|
||||
CLUSTER="$2"
|
||||
shift 2
|
||||
;;
|
||||
-b|--branch)
|
||||
BRANCH="$2"
|
||||
shift 2
|
||||
;;
|
||||
-m|--email)
|
||||
EMAIL="$2"
|
||||
shift 2
|
||||
;;
|
||||
-j|--java-version)
|
||||
JAVA_VERSION="$2"
|
||||
shift 2
|
||||
;;
|
||||
-h|--help)
|
||||
show_help
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
log_error "Unknown option: $1"
|
||||
show_help
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Set default cluster based on environment if not specified
|
||||
if [[ -z "$CLUSTER" ]]; then
|
||||
case $ENVIRONMENT in
|
||||
production)
|
||||
CLUSTER="k2"
|
||||
;;
|
||||
dev|staging)
|
||||
CLUSTER="k1"
|
||||
;;
|
||||
*)
|
||||
log_error "Invalid environment: $ENVIRONMENT. Must be dev, staging, or production."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Validate inputs
|
||||
if [[ ! "$ENVIRONMENT" =~ ^(dev|staging|production)$ ]]; then
|
||||
log_error "Invalid environment: $ENVIRONMENT. Must be dev, staging, or production."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ! "$CLUSTER" =~ ^(k1|k2)$ ]]; then
|
||||
log_error "Invalid cluster: $CLUSTER. Must be k1 or k2."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if lionsctl exists
|
||||
if [[ ! -f "$LIONSCTL_PATH" ]]; then
|
||||
log_error "lionsctl not found at: $LIONSCTL_PATH"
|
||||
log_info "Please build lionsctl first:"
|
||||
log_info " cd ../lions-infrastructure-2025/lionsctl && go build -o lionsctl.exe"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Display deployment information
|
||||
log_info "🚀 Lions Dev Client Deployment"
|
||||
log_info "================================"
|
||||
log_info "Repository: $REPO_URL"
|
||||
log_info "Branch: $BRANCH"
|
||||
log_info "Environment: $ENVIRONMENT"
|
||||
log_info "Cluster: $CLUSTER"
|
||||
log_info "Java Version: $JAVA_VERSION"
|
||||
log_info "Email: $EMAIL"
|
||||
log_info "================================"
|
||||
|
||||
# Confirm deployment
|
||||
if [[ "$ENVIRONMENT" == "production" ]]; then
|
||||
log_warning "⚠️ You are about to deploy to PRODUCTION!"
|
||||
log_warning "This will affect the live Lions Dev website at https://lions.dev"
|
||||
read -p "Are you sure you want to continue? (y/N): " -n 1 -r
|
||||
echo
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||
log_info "Deployment cancelled."
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
# Execute deployment
|
||||
log_info "🔄 Starting deployment..."
|
||||
|
||||
"$LIONSCTL_PATH" pipeline \
|
||||
--url "$REPO_URL" \
|
||||
--branch "$BRANCH" \
|
||||
--java-version "$JAVA_VERSION" \
|
||||
--environment "$ENVIRONMENT" \
|
||||
--cluster "$CLUSTER" \
|
||||
--mail "$EMAIL" \
|
||||
--verbose
|
||||
|
||||
DEPLOYMENT_STATUS=$?
|
||||
|
||||
if [[ $DEPLOYMENT_STATUS -eq 0 ]]; then
|
||||
log_success "🎉 Deployment completed successfully!"
|
||||
|
||||
case $ENVIRONMENT in
|
||||
production)
|
||||
log_success "✅ Lions Dev is now live at: https://lions.dev"
|
||||
;;
|
||||
staging)
|
||||
log_success "✅ Staging environment is available at: https://staging.lions.dev"
|
||||
;;
|
||||
dev)
|
||||
log_success "✅ Development environment is available at: https://dev.lions.dev"
|
||||
;;
|
||||
esac
|
||||
|
||||
log_info "📊 You can monitor the deployment at:"
|
||||
log_info " - Kubernetes Dashboard: https://k8s.lions.dev"
|
||||
log_info " - Grafana Monitoring: https://grafana.lions.dev"
|
||||
log_info " - Application Logs: kubectl logs -n lions-apps -l app=lionsdev-client"
|
||||
|
||||
else
|
||||
log_error "❌ Deployment failed with exit code: $DEPLOYMENT_STATUS"
|
||||
log_info "🔍 Check the logs above for error details"
|
||||
log_info "📧 A notification email has been sent to: $EMAIL"
|
||||
exit $DEPLOYMENT_STATUS
|
||||
fi
|
||||
Reference in New Issue
Block a user