Jenkins CI/CD 파이프라인 완전 구축 완료

- Kustomize 기반 환경별 매니페스트 관리 시스템 구축
- Base 매니페스트 및 환경별(dev/staging/prod) Overlay 작성
- Strategic Merge Patch → Patch 형식으로 업데이트
- Jenkinsfile 파드 자동 정리 기능 적용
- 배포 스크립트 및 검증 스크립트 작성
- 상세 구축 가이드 문서 작성
- 모든 환경 Kustomize 빌드 검증 완료

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
hiondal
2025-09-13 01:00:04 +09:00
parent e72f7ac9f6
commit 7f8593fb71
41 changed files with 605 additions and 726 deletions
@@ -0,0 +1,12 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: cm-common
data:
CORS_ALLOWED_ORIGINS: "http://localhost:8081,http://localhost:8082,http://localhost:8083,http://localhost:8084,http://phonebill.20.214.196.128.nip.io"
JWT_ACCESS_TOKEN_VALIDITY: "18000000"
JWT_REFRESH_TOKEN_VALIDITY: "86400000"
REDIS_PORT: "6379"
SPRING_PROFILES_ACTIVE: "dev"
DDL_AUTO: "update"
@@ -1,17 +0,0 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: cm-common
data:
# 환경별 프로파일 설정
SPRING_PROFILES_ACTIVE: "dev"
# 개발 환경 도메인 설정
CORS_ALLOWED_ORIGINS: "http://phonebill-api.20.214.196.128.nip.io"
# 개발 환경 DDL 설정 (데이터 보존을 위해 update 사용)
DDL_AUTO: "update"
# JWT 토큰 유효시간 (개발 환경은 긴 유효시간)
JWT_ACCESS_TOKEN_EXPIRATION: "3600000"
JWT_REFRESH_TOKEN_EXPIRATION: "86400000"
@@ -1,7 +1,7 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: phonebill
name: phonebill-ingress
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "false"
@@ -7,7 +7,7 @@ resources:
- ../../base
patches:
- path: configmap-common-patch.yaml
- path: cm-common-patch.yaml
target:
kind: ConfigMap
name: cm-common
@@ -64,5 +64,7 @@ images:
- name: acrdigitalgarage01.azurecr.io/phonebill/kos-mock
newTag: dev-latest
commonLabels:
environment: dev
labels:
- includeSelectors: true
pairs:
environment: dev
@@ -2,8 +2,10 @@ apiVersion: v1
kind: Secret
metadata:
name: secret-bill-service
type: Opaque
stringData:
# Bill Service DB 접속 정보 (개발 환경)
DB_PASSWORD: "billdb-dev-password"
DB_URL: "jdbc:postgresql://bill-inquiry-postgres-dev-postgresql:5432/bill_inquiry_db"
DB_HOST: "bill-inquiry-postgres-dev-postgresql"
DB_NAME: "bill_inquiry_db"
DB_USERNAME: "bill_inquiry_user"
DB_PASSWORD: "BillUser2025!"
@@ -2,12 +2,9 @@ apiVersion: v1
kind: Secret
metadata:
name: secret-common
type: Opaque
stringData:
# Redis 설정 (개발 환경)
REDIS_PASSWORD: "dev-redis-password"
# JWT Secret Key (개발 환경용)
JWT_SECRET: "dev-jwt-secret-key-for-phonebill-development"
# 개발 환경용 공통 시크릿
JWT_SECRET: "nwe5Yo9qaJ6FBD/Thl2/j6/SFAfNwUorAY1ZcWO2KI7uA4bmVLOCPxE9hYuUpRCOkgV2UF2DdHXtqHi3+BU/ecbz2zpHyf/720h48UbA3XOMYOX1sdM+dQ=="
REDIS_HOST: "redis-cache-dev-master"
REDIS_PASSWORD: "Redis2025Dev!"
@@ -2,8 +2,10 @@ apiVersion: v1
kind: Secret
metadata:
name: secret-product-service
type: Opaque
stringData:
# Product Service DB 접속 정보 (개발 환경)
DB_PASSWORD: "productdb-dev-password"
DB_URL: "jdbc:postgresql://product-change-postgres-dev-postgresql:5432/product_change_db"
DB_HOST: "product-change-postgres-dev-postgresql"
DB_NAME: "product_change_db"
DB_USERNAME: "product_change_user"
DB_PASSWORD: "ProductUser2025!"
@@ -2,8 +2,10 @@ apiVersion: v1
kind: Secret
metadata:
name: secret-user-service
type: Opaque
stringData:
# User Service DB 접속 정보 (개발 환경)
DB_PASSWORD: "userdb-dev-password"
DB_URL: "jdbc:postgresql://user-auth-postgres-dev-postgresql:5432/user_auth_db"
DB_HOST: "auth-postgres-dev-postgresql"
DB_NAME: "phonebill_auth"
DB_USERNAME: "auth_user"
DB_PASSWORD: "AuthUser2025!"