#!/bin/bash set -e ENVIRONMENT=${1:-dev} IMAGE_TAG=${2:-latest} echo "πŸš€ Manual deployment starting..." echo "Environment: $ENVIRONMENT" echo "Image Tag: $IMAGE_TAG" # Check if kustomize is installed if ! command -v kustomize &> /dev/null; then echo "Installing Kustomize..." curl -s "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" | bash sudo mv kustomize /usr/local/bin/ fi # Load environment variables from .github/config if [[ -f ".github/config/deploy_env_vars_${ENVIRONMENT}" ]]; then source ".github/config/deploy_env_vars_${ENVIRONMENT}" echo "βœ… Environment variables loaded for $ENVIRONMENT" else echo "❌ Environment configuration file not found: .github/config/deploy_env_vars_${ENVIRONMENT}" exit 1 fi # Create namespace echo "πŸ“ Creating namespace hgzero..." kubectl create namespace hgzero --dry-run=client -o yaml | kubectl apply -f - # ν™˜κ²½λ³„ 이미지 νƒœκ·Έ μ—…λ°μ΄νŠΈ (.github/kustomize μ‚¬μš©) cd .github/kustomize/overlays/${ENVIRONMENT} echo "πŸ”„ Updating image tags..." # μ„œλΉ„μŠ€ λ°°μ—΄ μ •μ˜ services=(user meeting stt ai notification) # 각 μ„œλΉ„μŠ€λ³„ 이미지 νƒœκ·Έ μ—…λ°μ΄νŠΈ for service in "${services[@]}"; do kustomize edit set image acrdigitalgarage02.azurecr.io/hgzero/$service:${ENVIRONMENT}-${IMAGE_TAG} done echo "πŸš€ Deploying to Kubernetes..." # 배포 μ‹€ν–‰ kubectl apply -k . echo "⏳ Waiting for deployments to be ready..." # μ„œλΉ„μŠ€λ³„ 배포 μƒνƒœ 확인 for service in "${services[@]}"; do kubectl rollout status deployment/$service -n hgzero --timeout=300s || echo "⚠️ $service deployment timeout" done echo "πŸ” Health check..." # 각 μ„œλΉ„μŠ€μ˜ Health Check for service in "${services[@]}"; do POD=$(kubectl get pod -n hgzero -l app.kubernetes.io/name=$service -o jsonpath='{.items[0].metadata.name}' 2>/dev/null || echo "") if [[ -n "$POD" ]]; then kubectl -n hgzero exec $POD -- curl -f http://localhost:8080/actuator/health 2>/dev/null || echo "⚠️ $service health check failed" else echo "⚠️ $service pod not found" fi done echo "πŸ“‹ Service Information:" kubectl get pods -n hgzero kubectl get services -n hgzero kubectl get ingress -n hgzero echo "βœ… GitHub Actions deployment completed successfully!"