mirror of
https://github.com/cna-bootcamp/phonebill.git
synced 2026-06-13 03:59:10 +00:00
Jenkins CI/CD 파이프라인 구축 완료
- Kustomize 기반 환경별 배포 구조 구성 * Base: 공통 매니페스트 (29개 파일) * Overlays: dev/staging/prod 환경별 설정 (39개 파일) * 환경별 리소스 및 보안 정책 차별화 - Jenkins 파이프라인 구현 * JDK 21, Podman, Kustomize 통합 * SonarQube 품질 분석 및 Quality Gate * 환경별 이미지 태그 및 배포 자동화 * Pod 자동 정리로 리소스 최적화 - 운영 도구 및 스크립트 * 수동 배포 스크립트 (deploy.sh) * 리소스 검증 스크립트 (validate-resources.sh) * 환경별 설정 파일 관리 - 완전한 가이드 문서 * Jenkins 설정 및 Credentials 등록 방법 * SonarQube 연동 및 Quality Gate 설정 * 배포 실행 및 트러블슈팅 가이드 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: cm-api-gateway
|
||||
data:
|
||||
SERVER_PORT: "8080"
|
||||
BILL_SERVICE_URL: "http://bill-service"
|
||||
PRODUCT_SERVICE_URL: "http://product-service"
|
||||
USER_SERVICE_URL: "http://user-service"
|
||||
KOS_MOCK_URL: "http://kos-mock"
|
||||
@@ -0,0 +1,57 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: api-gateway
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: api-gateway
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: api-gateway
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: phonebill
|
||||
containers:
|
||||
- name: api-gateway
|
||||
image: acrdigitalgarage01.azurecr.io/phonebill/api-gateway:latest
|
||||
imagePullPolicy: Always
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: cm-common
|
||||
- configMapRef:
|
||||
name: cm-api-gateway
|
||||
- secretRef:
|
||||
name: secret-common
|
||||
resources:
|
||||
requests:
|
||||
cpu: 256m
|
||||
memory: 256Mi
|
||||
limits:
|
||||
cpu: 1024m
|
||||
memory: 1024Mi
|
||||
startupProbe:
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 8080
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
failureThreshold: 6
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 8080
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 5
|
||||
failureThreshold: 3
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 8080
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
failureThreshold: 3
|
||||
@@ -0,0 +1,11 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: api-gateway
|
||||
spec:
|
||||
selector:
|
||||
app: api-gateway
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: 8080
|
||||
type: ClusterIP
|
||||
Reference in New Issue
Block a user