hiondal 291306f5c7 Jenkins CI/CD 파이프라인 구축 완료
- 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>
2025-09-12 19:09:05 +09:00

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}')"