MàJ - Application.properties

This commit is contained in:
DahoudG
2025-09-22 21:01:08 +00:00
parent e5161c9ed8
commit 2f6e6e2f19
13 changed files with 1176 additions and 0 deletions

212
deploy-lionsdev-client.sh Normal file
View 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