Jenkins CI/CD 파이프라인 완전 구축 및 가이드 개선

주요 작업:
- Kustomize 기반 환경별 배포 구조 완성 (dev/staging/prod)
- deployment-patch.yaml 개선: replicas + resources 통합 관리
- Strategic Merge Patch 형식으로 변경하여 가독성 및 유지보수성 향상
- 환경별 차등 리소스 할당 정책 적용
- Jenkins 파이프라인 스크립트 및 수동 배포 스크립트 완성
- 상세한 체크리스트 및 실수 방지 가이드 추가

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
hiondal
2025-09-12 12:09:54 +09:00
parent 892f30ba44
commit 042198deb0
63 changed files with 1156 additions and 1615 deletions
+3 -34
View File
@@ -1,34 +1,3 @@
# Development Environment Configuration for phonebill
# Jenkins Pipeline Environment Variables
# Azure Configuration
AZURE_RESOURCE_GROUP=rg-digitalgarage-01
ACR_NAME=acrdigitalgarage01
AKS_CLUSTER_NAME=aks-digitalgarage-01
AKS_NAMESPACE=phonebill-dev
# Service Names
SERVICES=api-gateway,user-service,bill-service,product-service,kos-mock
# Build Configuration
GRADLE_OPTS="-Xmx2048m -XX:MaxPermSize=512m"
JAVA_OPTS="-Xmx1024m -Xms512m"
# Docker Configuration
REGISTRY_URL=${ACR_NAME}.azurecr.io
IMAGE_TAG_PATTERN=${BUILD_NUMBER}-dev
# Deployment Configuration
KUSTOMIZE_BASE=deployment/k8s
KUSTOMIZE_OVERLAY=overlays/dev
HEALTH_CHECK_TIMEOUT=300
HEALTH_CHECK_RETRY=10
# SonarQube Configuration
SONAR_PROJECT_KEY=phonebill-dev
SONAR_SOURCES=.
SONAR_EXCLUSIONS=**/target/**,**/build/**,**/*.generated.java
# Notification Configuration
SLACK_CHANNEL=#phonebill-dev
EMAIL_RECIPIENTS=dev-team@company.com
# DEV Environment Configuration
resource_group=rg-digitalgarage-01
cluster_name=aks-digitalgarage-01
+3 -34
View File
@@ -1,34 +1,3 @@
# Production Environment Configuration for phonebill
# Jenkins Pipeline Environment Variables
# Azure Configuration
AZURE_RESOURCE_GROUP=rg-digitalgarage-01
ACR_NAME=acrdigitalgarage01
AKS_CLUSTER_NAME=aks-digitalgarage-01
AKS_NAMESPACE=phonebill-prod
# Service Names
SERVICES=api-gateway,user-service,bill-service,product-service,kos-mock
# Build Configuration
GRADLE_OPTS="-Xmx3072m -XX:MaxPermSize=1024m"
JAVA_OPTS="-Xmx2048m -Xms1024m"
# Docker Configuration
REGISTRY_URL=${ACR_NAME}.azurecr.io
IMAGE_TAG_PATTERN=${BUILD_NUMBER}-prod
# Deployment Configuration
KUSTOMIZE_BASE=deployment/k8s
KUSTOMIZE_OVERLAY=overlays/prod
HEALTH_CHECK_TIMEOUT=600
HEALTH_CHECK_RETRY=15
# SonarQube Configuration
SONAR_PROJECT_KEY=phonebill-prod
SONAR_SOURCES=.
SONAR_EXCLUSIONS=**/target/**,**/build/**,**/*.generated.java
# Notification Configuration
SLACK_CHANNEL=#phonebill-prod
EMAIL_RECIPIENTS=prod-team@company.com,ops-team@company.com
# PROD Environment Configuration
resource_group=rg-digitalgarage-01
cluster_name=aks-digitalgarage-01
+3 -34
View File
@@ -1,34 +1,3 @@
# Staging Environment Configuration for phonebill
# Jenkins Pipeline Environment Variables
# Azure Configuration
AZURE_RESOURCE_GROUP=rg-digitalgarage-01
ACR_NAME=acrdigitalgarage01
AKS_CLUSTER_NAME=aks-digitalgarage-01
AKS_NAMESPACE=phonebill-staging
# Service Names
SERVICES=api-gateway,user-service,bill-service,product-service,kos-mock
# Build Configuration
GRADLE_OPTS="-Xmx2048m -XX:MaxPermSize=512m"
JAVA_OPTS="-Xmx1024m -Xms512m"
# Docker Configuration
REGISTRY_URL=${ACR_NAME}.azurecr.io
IMAGE_TAG_PATTERN=${BUILD_NUMBER}-staging
# Deployment Configuration
KUSTOMIZE_BASE=deployment/k8s
KUSTOMIZE_OVERLAY=overlays/staging
HEALTH_CHECK_TIMEOUT=300
HEALTH_CHECK_RETRY=10
# SonarQube Configuration
SONAR_PROJECT_KEY=phonebill-staging
SONAR_SOURCES=.
SONAR_EXCLUSIONS=**/target/**,**/build/**,**/*.generated.java
# Notification Configuration
SLACK_CHANNEL=#phonebill-staging
EMAIL_RECIPIENTS=staging-team@company.com
# STAGING Environment Configuration
resource_group=rg-digitalgarage-01
cluster_name=aks-digitalgarage-01