mirror of
https://github.com/cna-bootcamp/phonebill.git
synced 2025-12-06 08:06:24 +00:00
- Kustomize 기반 환경별(dev/staging/prod) 매니페스트 관리 - Jenkins 파이프라인 스크립트 작성 (Podman, Gradle, kubectl 컨테이너) - SonarQube 코드 품질 분석 및 Quality Gate 연동 - 수동 배포 및 리소스 검증 스크립트 추가 - k8s 매니페스트 구조 재정리 (configmaps, secrets, deployments, services 분리) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
39 lines
1.1 KiB
Bash
Executable File
39 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
ENVIRONMENT=${1:-dev}
|
|
IMAGE_TAG=${2:-latest}
|
|
|
|
echo "🚀 Deploying to ${ENVIRONMENT} environment with tag ${IMAGE_TAG}..."
|
|
|
|
# 환경별 설정 파일 로드
|
|
source "$(dirname "$0")/../config/deploy_env_vars_${ENVIRONMENT}"
|
|
|
|
# 환경별 이미지 태그 업데이트
|
|
cd "$(dirname "$0")/../kustomize/overlays/${ENVIRONMENT}"
|
|
|
|
# 서비스 목록
|
|
services="api-gateway user-service bill-service product-service kos-mock"
|
|
|
|
# 각 서비스 이미지 태그 업데이트
|
|
for service in $services; do
|
|
echo "📦 Updating image tag for ${service}..."
|
|
kustomize edit set image docker.io/hiondal/$service:${ENVIRONMENT}-${IMAGE_TAG}
|
|
done
|
|
|
|
# 배포 실행
|
|
echo "📋 Applying Kustomize manifests..."
|
|
kubectl apply -k .
|
|
|
|
# 배포 상태 확인
|
|
echo "⏳ Waiting for deployments to be ready..."
|
|
for service in $services; do
|
|
echo " Checking ${service}..."
|
|
kubectl rollout status deployment/$service -n ${namespace} --timeout=300s || echo " ⚠️ Timeout waiting for ${service}"
|
|
done
|
|
|
|
echo "✅ Deployment completed successfully!"
|
|
echo ""
|
|
echo "📊 Current status:"
|
|
kubectl get pods -n ${namespace}
|