mirror of
https://github.com/cna-bootcamp/phonebill.git
synced 2025-12-06 16:16:23 +00:00
- Kustomize 기반 환경별 매니페스트 구성 (dev/staging/prod) - Base 및 Overlay 구조로 환경별 설정 분리 - 각 환경별 Deployment, Service, ConfigMap, Secret 패치 적용 - Jenkinsfile 작성 (Gradle JDK21, SonarQube, Quality Gate 포함) - 환경별 설정 파일 및 수동 배포 스크립트 생성 - Jenkins CI/CD 가이드 문서 및 검증 스크립트 작성 - DEV 환경 Ingress Host를 base와 동일하게 수정 (체크리스트 준수) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
43 lines
1.5 KiB
Bash
Executable File
43 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
ENVIRONMENT=${1:-dev}
|
|
IMAGE_TAG=${2:-latest}
|
|
|
|
# 서비스 목록
|
|
SERVICES=("api-gateway" "user-service" "bill-service" "product-service" "kos-mock")
|
|
|
|
echo "🚀 Starting deployment to ${ENVIRONMENT} environment..."
|
|
echo "📦 Image tag: ${ENVIRONMENT}-${IMAGE_TAG}"
|
|
|
|
# 환경별 이미지 태그 업데이트
|
|
cd deployment/cicd/kustomize/overlays/${ENVIRONMENT}
|
|
|
|
# 각 서비스 이미지 태그 업데이트
|
|
echo "🔄 Updating image tags..."
|
|
for service in "${SERVICES[@]}"; do
|
|
echo " - Updating ${service} to acrdigitalgarage01.azurecr.io/phonebill/${service}:${ENVIRONMENT}-${IMAGE_TAG}"
|
|
kustomize edit set image acrdigitalgarage01.azurecr.io/phonebill/${service}:${ENVIRONMENT}-${IMAGE_TAG}
|
|
done
|
|
|
|
# 배포 실행
|
|
echo "🎯 Applying Kubernetes manifests..."
|
|
kubectl apply -k .
|
|
|
|
# 배포 상태 확인
|
|
echo "⏳ Waiting for deployments to be ready..."
|
|
for service in "${SERVICES[@]}"; do
|
|
echo " - Checking ${service} deployment status..."
|
|
kubectl rollout status deployment/${service} -n phonebill-${ENVIRONMENT} --timeout=300s
|
|
done
|
|
|
|
# 최종 상태 확인
|
|
echo "📋 Final deployment status:"
|
|
kubectl get pods -n phonebill-${ENVIRONMENT}
|
|
echo ""
|
|
kubectl get services -n phonebill-${ENVIRONMENT}
|
|
echo ""
|
|
kubectl get ingress -n phonebill-${ENVIRONMENT}
|
|
|
|
echo "✅ Deployment to ${ENVIRONMENT} environment completed successfully!"
|
|
echo "🌐 Access URL: https://$(kubectl get ingress -n phonebill-${ENVIRONMENT} -o jsonpath='{.items[0].spec.rules[0].host}')" |