Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3855e78abf | |||
| d223510198 |
@@ -1,17 +1,10 @@
|
|||||||
---
|
|
||||||
command: "/deploy-actions-cicd-guide-back"
|
|
||||||
description: "백엔드 GitHub Actions CI/CD 파이프라인 가이드 작성"
|
|
||||||
---
|
|
||||||
|
|
||||||
@cicd
|
@cicd
|
||||||
'백엔드GitHubActions파이프라인작성가이드'에 따라 GitHub Actions를 이용한 CI/CD 가이드를 작성해 주세요.
|
'백엔드GitHubActions파이프라인작성가이드'에 따라 GitHub Actions를 이용한 CI/CD 가이드를 작성해 주세요.
|
||||||
|
|
||||||
프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요.
|
프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요.
|
||||||
|
|
||||||
{안내메시지}
|
{안내메시지}
|
||||||
'[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요.
|
'[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요.
|
||||||
[실행정보]
|
[실행정보]
|
||||||
- ACR_NAME: acrdigitalgarage01
|
- ACR_NAME: acrdigitalgarage01
|
||||||
- RESOURCE_GROUP: rg-digitalgarage-01
|
- RESOURCE_GROUP: rg-digitalgarage-01
|
||||||
- AKS_CLUSTER: aks-digitalgarage-01
|
- AKS_CLUSTER: aks-digitalgarage-01
|
||||||
- NAMESPACE: phonebill-dg0500
|
- NAMESPACE: phonebill-dg0500
|
||||||
@@ -1,13 +1,6 @@
|
|||||||
---
|
|
||||||
command: "/deploy-actions-cicd-guide-front"
|
|
||||||
description: "프론트엔드 GitHub Actions CI/CD 파이프라인 가이드 작성"
|
|
||||||
---
|
|
||||||
|
|
||||||
@cicd
|
@cicd
|
||||||
'프론트엔드GitHubActions파이프라인작성가이드'에 따라 GitHub Actions를 이용한 CI/CD 가이드를 작성해 주세요.
|
'프론트엔드GitHubActions파이프라인작성가이드'에 따라 GitHub Actions를 이용한 CI/CD 가이드를 작성해 주세요.
|
||||||
|
|
||||||
프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요.
|
프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요.
|
||||||
|
|
||||||
{안내메시지}
|
{안내메시지}
|
||||||
'[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요.
|
'[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요.
|
||||||
[실행정보]
|
[실행정보]
|
||||||
@@ -15,4 +8,4 @@ description: "프론트엔드 GitHub Actions CI/CD 파이프라인 가이드 작
|
|||||||
- ACR_NAME: acrdigitalgarage01
|
- ACR_NAME: acrdigitalgarage01
|
||||||
- RESOURCE_GROUP: rg-digitalgarage-01
|
- RESOURCE_GROUP: rg-digitalgarage-01
|
||||||
- AKS_CLUSTER: aks-digitalgarage-01
|
- AKS_CLUSTER: aks-digitalgarage-01
|
||||||
- NAMESPACE: phonebill-dg0500
|
- NAMESPACE: phonebill-dg0500
|
||||||
@@ -1,7 +1,2 @@
|
|||||||
---
|
|
||||||
command: "/deploy-build-image-back"
|
|
||||||
description: "백엔드 컨테이너 이미지 작성"
|
|
||||||
---
|
|
||||||
|
|
||||||
@cicd
|
@cicd
|
||||||
'백엔드컨테이너이미지작성가이드'에 따라 컨테이너 이미지를 작성해 주세요.
|
'백엔드컨테이너이미지작성가이드'에 따라 컨테이너 이미지를 작성해 주세요.
|
||||||
@@ -1,7 +1,2 @@
|
|||||||
---
|
|
||||||
command: "/deploy-build-image-front"
|
|
||||||
description: "프론트엔드 컨테이너 이미지 작성"
|
|
||||||
---
|
|
||||||
|
|
||||||
@cicd
|
@cicd
|
||||||
'프론트엔드컨테이너이미지작성가이드'에 따라 컨테이너 이미지를 작성해 주세요.
|
'프론트엔드컨테이너이미지작성가이드'에 따라 컨테이너 이미지를 작성해 주세요.
|
||||||
@@ -1,64 +1,55 @@
|
|||||||
---
|
배포 작업 순서
|
||||||
command: "/deploy-help"
|
|
||||||
description: "배포 작업 순서 및 명령어 안내"
|
|
||||||
---
|
|
||||||
|
|
||||||
# 배포 작업 순서
|
## 1단계: 컨테이너 이미지 작성
|
||||||
|
|
||||||
## 컨테이너 이미지 작성
|
|
||||||
### 백엔드
|
### 백엔드
|
||||||
/deploy-build-image-back
|
/deploy-build-image-back
|
||||||
- 백엔드 서비스들의 컨테이너 이미지를 작성합니다
|
- 백엔드컨테이너이미지작성가이드에 따라 컨테이너 이미지를 작성합니다
|
||||||
|
|
||||||
### 프론트엔드
|
### 프론트엔드
|
||||||
/deploy-build-image-front
|
/deploy-build-image-front
|
||||||
- 프론트엔드 서비스의 컨테이너 이미지를 작성합니다
|
- 프론트엔드컨테이너이미지작성가이드에 따라 컨테이너 이미지를 작성합니다
|
||||||
|
|
||||||
## 컨테이너 실행 가이드 작성
|
## 2단계: 컨테이너 실행 가이드 작성
|
||||||
### 백엔드
|
### 백엔드
|
||||||
/deploy-run-container-guide-back
|
/deploy-run-container-guide-back
|
||||||
- 백엔드 컨테이너 실행 가이드를 작성합니다
|
- 백엔드컨테이너실행방법가이드에 따라 실행 가이드를 작성합니다
|
||||||
- [실행정보] 섹션에 ACR명, VM 접속 정보 제공 필요
|
- [실행정보] 섹션에 ACR명, VM 정보를 제공해야 합니다
|
||||||
|
|
||||||
### 프론트엔드
|
### 프론트엔드
|
||||||
/deploy-run-container-guide-front
|
/deploy-run-container-guide-front
|
||||||
- 프론트엔드 컨테이너 실행 가이드를 작성합니다
|
- 프론트엔드컨테이너실행방법가이드에 따라 실행 가이드를 작성합니다
|
||||||
- [실행정보] 섹션에 시스템명, ACR명, VM 접속 정보 제공 필요
|
- [실행정보] 섹션에 시스템명, ACR명, VM 정보를 제공해야 합니다
|
||||||
|
|
||||||
## Kubernetes 배포 가이드 작성
|
## 3단계: 쿠버네티스 배포 가이드 작성
|
||||||
### 백엔드
|
### 백엔드
|
||||||
/deploy-k8s-guide-back
|
/deploy-k8s-guide-back
|
||||||
- 백엔드 서비스 Kubernetes 배포 가이드를 작성합니다
|
- 백엔드배포가이드에 따라 K8s 배포 가이드를 작성합니다
|
||||||
- [실행정보] 섹션에 ACR명, k8s명, 네임스페이스, 리소스 정보 제공 필요
|
- [실행정보] 섹션에 ACR명, k8s명, 네임스페이스, 리소스 정보를 제공해야 합니다
|
||||||
|
|
||||||
### 프론트엔드
|
### 프론트엔드
|
||||||
/deploy-k8s-guide-front
|
/deploy-k8s-guide-front
|
||||||
- 프론트엔드 서비스 Kubernetes 배포 가이드를 작성합니다
|
- 프론트엔드배포가이드에 따라 K8s 배포 가이드를 작성합니다
|
||||||
- [실행정보] 섹션에 시스템명, ACR명, k8s명, 네임스페이스, Gateway Host 정보 제공 필요
|
- [실행정보] 섹션에 시스템명, ACR명, k8s명, 네임스페이스, 리소스, Gateway Host 정보를 제공해야 합니다
|
||||||
|
|
||||||
## CI/CD 파이프라인 작성
|
## 4단계: CI/CD 파이프라인 작성
|
||||||
### Jenkins CI/CD
|
### Jenkins CI/CD
|
||||||
#### 백엔드
|
#### 백엔드
|
||||||
/deploy-jenkins-cicd-guide-back
|
/deploy-jenkins-cicd-guide-back
|
||||||
- Jenkins를 이용한 백엔드 CI/CD 파이프라인 가이드를 작성합니다
|
- 백엔드Jenkins파이프라인작성가이드에 따라 작성합니다
|
||||||
- [실행정보] 섹션에 ACR_NAME, RESOURCE_GROUP, AKS_CLUSTER, NAMESPACE 제공 필요
|
- [실행정보] 섹션에 ACR_NAME, RESOURCE_GROUP, AKS_CLUSTER, NAMESPACE 정보를 제공해야 합니다
|
||||||
|
|
||||||
#### 프론트엔드
|
#### 프론트엔드
|
||||||
/deploy-jenkins-cicd-guide-front
|
/deploy-jenkins-cicd-guide-front
|
||||||
- Jenkins를 이용한 프론트엔드 CI/CD 파이프라인 가이드를 작성합니다
|
- 프론트엔드Jenkins파이프라인작성가이드에 따라 작성합니다
|
||||||
- [실행정보] 섹션에 SYSTEM_NAME, ACR_NAME, RESOURCE_GROUP, AKS_CLUSTER, NAMESPACE 제공 필요
|
- [실행정보] 섹션에 SYSTEM_NAME, ACR_NAME, RESOURCE_GROUP, AKS_CLUSTER, NAMESPACE 정보를 제공해야 합니다
|
||||||
|
|
||||||
### GitHub Actions CI/CD
|
### GitHub Actions CI/CD
|
||||||
#### 백엔드
|
#### 백엔드
|
||||||
/deploy-actions-cicd-guide-back
|
/deploy-actions-cicd-guide-back
|
||||||
- GitHub Actions를 이용한 백엔드 CI/CD 파이프라인 가이드를 작성합니다
|
- 백엔드GitHubActions파이프라인작성가이드에 따라 작성합니다
|
||||||
- [실행정보] 섹션에 ACR_NAME, RESOURCE_GROUP, AKS_CLUSTER, NAMESPACE 제공 필요
|
- [실행정보] 섹션에 ACR_NAME, RESOURCE_GROUP, AKS_CLUSTER, NAMESPACE 정보를 제공해야 합니다
|
||||||
|
|
||||||
#### 프론트엔드
|
#### 프론트엔드
|
||||||
/deploy-actions-cicd-guide-front
|
/deploy-actions-cicd-guide-front
|
||||||
- GitHub Actions를 이용한 프론트엔드 CI/CD 파이프라인 가이드를 작성합니다
|
- 프론트엔드GitHubActions파이프라인작성가이드에 따라 작성합니다
|
||||||
- [실행정보] 섹션에 SYSTEM_NAME, ACR_NAME, RESOURCE_GROUP, AKS_CLUSTER, NAMESPACE 제공 필요
|
- [실행정보] 섹션에 SYSTEM_NAME, ACR_NAME, RESOURCE_GROUP, AKS_CLUSTER, NAMESPACE 정보를 제공해야 합니다
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**참고**: 각 명령어 실행 시 [실행정보] 섹션에 필요한 정보를 함께 제공해야 합니다.
|
|
||||||
@@ -1,17 +1,10 @@
|
|||||||
---
|
|
||||||
command: "/deploy-jenkins-cicd-guide-back"
|
|
||||||
description: "백엔드 Jenkins CI/CD 파이프라인 가이드 작성"
|
|
||||||
---
|
|
||||||
|
|
||||||
@cicd
|
@cicd
|
||||||
'백엔드Jenkins파이프라인작성가이드'에 따라 Jenkins를 이용한 CI/CD 가이드를 작성해 주세요.
|
'백엔드Jenkins파이프라인작성가이드'에 따라 Jenkins를 이용한 CI/CD 가이드를 작성해 주세요.
|
||||||
|
|
||||||
프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요.
|
프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요.
|
||||||
|
|
||||||
{안내메시지}
|
{안내메시지}
|
||||||
'[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요.
|
'[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요.
|
||||||
[실행정보]
|
[실행정보]
|
||||||
- ACR_NAME: acrdigitalgarage01
|
- ACR_NAME: acrdigitalgarage01
|
||||||
- RESOURCE_GROUP: rg-digitalgarage-01
|
- RESOURCE_GROUP: rg-digitalgarage-01
|
||||||
- AKS_CLUSTER: aks-digitalgarage-01
|
- AKS_CLUSTER: aks-digitalgarage-01
|
||||||
- NAMESPACE: phonebill-dg0500
|
- NAMESPACE: phonebill-dg0500
|
||||||
@@ -1,13 +1,6 @@
|
|||||||
---
|
|
||||||
command: "/deploy-jenkins-cicd-guide-front"
|
|
||||||
description: "프론트엔드 Jenkins CI/CD 파이프라인 가이드 작성"
|
|
||||||
---
|
|
||||||
|
|
||||||
@cicd
|
@cicd
|
||||||
'프론트엔드Jenkins파이프라인작성가이드'에 따라 Jenkins를 이용한 CI/CD 가이드를 작성해 주세요.
|
'프론트엔드Jenkins파이프라인작성가이드'에 따라 Jenkins를 이용한 CI/CD 가이드를 작성해 주세요.
|
||||||
|
|
||||||
프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요.
|
프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요.
|
||||||
|
|
||||||
{안내메시지}
|
{안내메시지}
|
||||||
'[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요.
|
'[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요.
|
||||||
[실행정보]
|
[실행정보]
|
||||||
@@ -15,4 +8,4 @@ description: "프론트엔드 Jenkins CI/CD 파이프라인 가이드 작성"
|
|||||||
- ACR_NAME: acrdigitalgarage01
|
- ACR_NAME: acrdigitalgarage01
|
||||||
- RESOURCE_GROUP: rg-digitalgarage-01
|
- RESOURCE_GROUP: rg-digitalgarage-01
|
||||||
- AKS_CLUSTER: aks-digitalgarage-01
|
- AKS_CLUSTER: aks-digitalgarage-01
|
||||||
- NAMESPACE: phonebill-dg0500
|
- NAMESPACE: phonebill-dg0500
|
||||||
@@ -1,13 +1,6 @@
|
|||||||
---
|
|
||||||
command: "/deploy-k8s-guide-back"
|
|
||||||
description: "백엔드 Kubernetes 배포 가이드 작성"
|
|
||||||
---
|
|
||||||
|
|
||||||
@cicd
|
@cicd
|
||||||
'백엔드배포가이드'에 따라 백엔드 서비스 배포 방법을 작성해 주세요.
|
'백엔드배포가이드'에 따라 백엔드 서비스 배포 방법을 작성해 주세요.
|
||||||
|
|
||||||
프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요.
|
프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요.
|
||||||
|
|
||||||
{안내메시지}
|
{안내메시지}
|
||||||
'[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요.
|
'[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요.
|
||||||
[실행정보]
|
[실행정보]
|
||||||
@@ -16,4 +9,4 @@ description: "백엔드 Kubernetes 배포 가이드 작성"
|
|||||||
- 네임스페이스: tripgen
|
- 네임스페이스: tripgen
|
||||||
- 파드수: 2
|
- 파드수: 2
|
||||||
- 리소스(CPU): 256m/1024m
|
- 리소스(CPU): 256m/1024m
|
||||||
- 리소스(메모리): 256Mi/1024Mi
|
- 리소스(메모리): 256Mi/1024Mi
|
||||||
@@ -1,13 +1,6 @@
|
|||||||
---
|
|
||||||
command: "/deploy-k8s-guide-front"
|
|
||||||
description: "프론트엔드 Kubernetes 배포 가이드 작성"
|
|
||||||
---
|
|
||||||
|
|
||||||
@cicd
|
@cicd
|
||||||
'프론트엔드배포가이드'에 따라 프론트엔드 서비스 배포 방법을 작성해 주세요.
|
'프론트엔드배포가이드'에 따라 프론트엔드 서비스 배포 방법을 작성해 주세요.
|
||||||
|
|
||||||
프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요.
|
프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요.
|
||||||
|
|
||||||
{안내메시지}
|
{안내메시지}
|
||||||
'[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요.
|
'[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요.
|
||||||
[실행정보]
|
[실행정보]
|
||||||
@@ -18,4 +11,4 @@ description: "프론트엔드 Kubernetes 배포 가이드 작성"
|
|||||||
- 파드수: 2
|
- 파드수: 2
|
||||||
- 리소스(CPU): 256m/1024m
|
- 리소스(CPU): 256m/1024m
|
||||||
- 리소스(메모리): 256Mi/1024Mi
|
- 리소스(메모리): 256Mi/1024Mi
|
||||||
- Gateway Host: http://tripgen-api.20.214.196.128.nip.io
|
- Gateway Host: http://tripgen-api.20.214.196.128.nip.io
|
||||||
@@ -1,18 +1,11 @@
|
|||||||
---
|
|
||||||
command: "/deploy-run-container-guide-back"
|
|
||||||
description: "백엔드 컨테이너 실행방법 가이드 작성"
|
|
||||||
---
|
|
||||||
|
|
||||||
@cicd
|
@cicd
|
||||||
'백엔드컨테이너실행방법가이드'에 따라 컨테이너 실행 가이드를 작성해 주세요.
|
'백엔드컨테이너실행방법가이드'에 따라 컨테이너 실행 가이드를 작성해 주세요.
|
||||||
|
|
||||||
프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요.
|
프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요.
|
||||||
|
|
||||||
{안내메시지}
|
{안내메시지}
|
||||||
'[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요.
|
'[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요.
|
||||||
[실행정보]
|
[실행정보]
|
||||||
- ACR명: acrdigitalgarage01
|
- ACR명: acrdigitalgarage01
|
||||||
- VM
|
- VM
|
||||||
- KEY파일: ~/home/bastion-dg0500
|
- KEY파일: ~/home/bastion-dg0502
|
||||||
- USERID: azureuser
|
- USERID: azureuser
|
||||||
- IP: 4.230.5.6
|
- IP: 4.218.10.89
|
||||||
@@ -1,13 +1,6 @@
|
|||||||
---
|
|
||||||
command: "/deploy-run-container-guide-front"
|
|
||||||
description: "프론트엔드 컨테이너 실행방법 가이드 작성"
|
|
||||||
---
|
|
||||||
|
|
||||||
@cicd
|
@cicd
|
||||||
'프론트엔드컨테이너실행방법가이드'에 따라 컨테이너 실행 가이드를 작성해 주세요.
|
'프론트엔드컨테이너실행방법가이드'에 따라 컨테이너 실행 가이드를 작성해 주세요.
|
||||||
|
|
||||||
프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요.
|
프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요.
|
||||||
|
|
||||||
{안내메시지}
|
{안내메시지}
|
||||||
'[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요.
|
'[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요.
|
||||||
[실행정보]
|
[실행정보]
|
||||||
@@ -16,4 +9,4 @@ description: "프론트엔드 컨테이너 실행방법 가이드 작성"
|
|||||||
- VM
|
- VM
|
||||||
- KEY파일: ~/home/bastion-dg0500
|
- KEY파일: ~/home/bastion-dg0500
|
||||||
- USERID: azureuser
|
- USERID: azureuser
|
||||||
- IP: 4.230.5.6
|
- IP: 4.230.5.6
|
||||||
@@ -1,6 +1,3 @@
|
|||||||
---
|
|
||||||
command: "/design-api"
|
|
||||||
---
|
|
||||||
@architecture
|
@architecture
|
||||||
API를 설계해 주세요:
|
API를 설계해 주세요:
|
||||||
- '공통설계원칙'과 'API설계가이드'를 준용하여 설계
|
- '공통설계원칙'과 'API설계가이드'를 준용하여 설계
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
---
|
|
||||||
command: "/design-class"
|
|
||||||
---
|
|
||||||
@architecture
|
@architecture
|
||||||
'공통설계원칙'과 '클래스설계가이드'를 준용하여 클래스를 설계해 주세요.
|
'공통설계원칙'과 '클래스설계가이드'를 준용하여 클래스를 설계해 주세요.
|
||||||
프롬프트에 '[클래스설계 정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시합니다.
|
프롬프트에 '[클래스설계 정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시합니다.
|
||||||
@@ -12,4 +9,4 @@ command: "/design-class"
|
|||||||
- User: Layered
|
- User: Layered
|
||||||
- Trip: Clean
|
- Trip: Clean
|
||||||
- Location: Layered
|
- Location: Layered
|
||||||
- AI: Layered
|
- AI: Layered
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
---
|
|
||||||
command: "/design-data"
|
|
||||||
---
|
|
||||||
@architecture
|
@architecture
|
||||||
데이터 설계를 해주세요:
|
데이터 설계를 해주세요:
|
||||||
- '공통설계원칙'과 '데이터설계가이드'를 준용하여 설계
|
- '공통설계원칙'과 '데이터설계가이드'를 준용하여 설계
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
---
|
|
||||||
command: "/design-fix-prototype"
|
|
||||||
---
|
|
||||||
@fix as @front
|
@fix as @front
|
||||||
'[오류내용]'섹션에 제공된 오류를 해결해 주세요.
|
'[오류내용]'섹션에 제공된 오류를 해결해 주세요.
|
||||||
프롬프트에 '[오류내용]'섹션이 없으면 수행 중단하고 안내 메시지 표시
|
프롬프트에 '[오류내용]'섹션이 없으면 수행 중단하고 안내 메시지 표시
|
||||||
{안내메시지}
|
{안내메시지}
|
||||||
'[오류내용]'섹션 하위에 오류 내용을 제공
|
'[오류내용]'섹션 하위에 오류 내용을 제공
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
---
|
|
||||||
command: "/design-front"
|
|
||||||
---
|
|
||||||
@plan as @front
|
@plan as @front
|
||||||
'프론트엔드설계가이드'를 준용하여 **프론트엔드설계서**를 작성해 주세요.
|
'프론트엔드설계가이드'를 준용하여 **프론트엔드설계서**를 작성해 주세요.
|
||||||
프롬프트에 '[백엔드시스템]'항목이 없으면 수행을 중단하고 안내 메시지를 표시합니다.
|
프롬프트에 '[백엔드시스템]'항목이 없으면 수행을 중단하고 안내 메시지를 표시합니다.
|
||||||
@@ -16,4 +13,4 @@ command: "/design-front"
|
|||||||
- ai service: http://localhost:8084/v3/api-docs
|
- ai service: http://localhost:8084/v3/api-docs
|
||||||
[요구사항]
|
[요구사항]
|
||||||
- 각 화면에 Back 아이콘 버튼과 화면 타이틀 표시
|
- 각 화면에 Back 아이콘 버튼과 화면 타이틀 표시
|
||||||
- 하단 네비게이션 바 아이콘화: 홈, 새여행, 주변장소검색, 여행보기
|
- 하단 네비게이션 바 아이콘화: 홈, 새여행, 주변장소검색, 여행보기
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
---
|
|
||||||
command: "/design-high-level"
|
|
||||||
---
|
|
||||||
@architecture
|
@architecture
|
||||||
'HighLevel아키텍처정의가이드'를 준용하여 High Level 아키텍처 정의서를 작성해 주세요.
|
'HighLevel아키텍처정의가이드'를 준용하여 High Level 아키텍처 정의서를 작성해 주세요.
|
||||||
'CLOUD' 정보가 없으면 수행을 중단하고 안내메시지를 표시하세요.
|
'CLOUD' 정보가 없으면 수행을 중단하고 안내메시지를 표시하세요.
|
||||||
{안내메시지}
|
{안내메시지}
|
||||||
아래 예와 같이 CLOUD 제공자를 Azure, AWS, Google과 같이 제공하세요.
|
아래 예와 같이 CLOUD 제공자를 Azure, AWS, Google과 같이 제공하세요.
|
||||||
- CLOUD: Azure
|
- CLOUD: Azure
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
---
|
|
||||||
command: "/design-improve-prototype"
|
|
||||||
---
|
|
||||||
@improve as @front
|
@improve as @front
|
||||||
'[개선내용]'섹션에 있는 내용을 개선해 주세요.
|
'[개선내용]'섹션에 있는 내용을 개선해 주세요.
|
||||||
프롬프트에 '[개선내용]'항목이 없으면 수행을 중단하고 안내 메시지 표시
|
프롬프트에 '[개선내용]'항목이 없으면 수행을 중단하고 안내 메시지 표시
|
||||||
{안내메시지}
|
{안내메시지}
|
||||||
'[개선내용]'섹션 하위에 개선할 내용을 제공
|
'[개선내용]'섹션 하위에 개선할 내용을 제공
|
||||||
|
|||||||
@@ -1,5 +1,2 @@
|
|||||||
---
|
|
||||||
command: "/design-improve-userstory"
|
|
||||||
---
|
|
||||||
@analyze as @front 프로토타입을 웹브라우저에서 분석한 후,
|
@analyze as @front 프로토타입을 웹브라우저에서 분석한 후,
|
||||||
@document as @scribe 수정된 프로토타입에 따라 유저스토리를 업데이트 해주십시오.
|
@document as @scribe 수정된 프로토타입에 따라 유저스토리를 업데이트 해주십시오.
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
---
|
|
||||||
command: "/design-logical"
|
|
||||||
---
|
|
||||||
@architecture
|
@architecture
|
||||||
논리 아키텍처를 설계해 주세요:
|
논리 아키텍처를 설계해 주세요:
|
||||||
- '공통설계원칙'과 '논리아키텍처 설계 가이드'를 준용하여 설계
|
- '공통설계원칙'과 '논리아키텍처 설계 가이드'를 준용하여 설계
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
---
|
|
||||||
command: "/design-pattern"
|
|
||||||
---
|
|
||||||
@design-pattern
|
@design-pattern
|
||||||
클라우드 아키텍처 패턴 적용 방안을 작성해 주세요:
|
클라우드 아키텍처 패턴 적용 방안을 작성해 주세요:
|
||||||
- '클라우드아키텍처패턴선정가이드'를 준용하여 작성
|
- '클라우드아키텍처패턴선정가이드'를 준용하여 작성
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
---
|
|
||||||
command: "/design-physical"
|
|
||||||
---
|
|
||||||
@architecture
|
@architecture
|
||||||
'물리아키텍처설계가이드'를 준용하여 물리아키텍처를 설계해 주세요.
|
'물리아키텍처설계가이드'를 준용하여 물리아키텍처를 설계해 주세요.
|
||||||
'CLOUD' 정보가 없으면 수행을 중단하고 안내메시지를 표시하세요.
|
'CLOUD' 정보가 없으면 수행을 중단하고 안내메시지를 표시하세요.
|
||||||
{안내메시지}
|
{안내메시지}
|
||||||
아래 예와 같이 CLOUD 제공자를 Azure, AWS, Google과 같이 제공하세요.
|
아래 예와 같이 CLOUD 제공자를 Azure, AWS, Google과 같이 제공하세요.
|
||||||
- CLOUD: Azure
|
- CLOUD: Azure
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
---
|
|
||||||
command: "/design-prototype"
|
|
||||||
---
|
|
||||||
@prototype
|
@prototype
|
||||||
프로토타입을 작성해 주세요:
|
프로토타입을 작성해 주세요:
|
||||||
- '프로토타입작성가이드'를 준용하여 작성
|
- '프로토타입작성가이드'를 준용하여 작성
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
---
|
|
||||||
command: "/design-seq-inner"
|
|
||||||
---
|
|
||||||
@architecture
|
@architecture
|
||||||
내부 시퀀스 설계를 해 주세요:
|
내부 시퀀스 설계를 해 주세요:
|
||||||
- '공통설계원칙'과 '내부시퀀스설계 가이드'를 준용하여 설계
|
- '공통설계원칙'과 '내부시퀀스설계 가이드'를 준용하여 설계
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
---
|
|
||||||
command: "/design-seq-outer"
|
|
||||||
---
|
|
||||||
@architecture
|
@architecture
|
||||||
외부 시퀀스 설계를 해 주세요:
|
외부 시퀀스 설계를 해 주세요:
|
||||||
- '공통설계원칙'과 '외부시퀀스설계가이드'를 준용하여 설계
|
- '공통설계원칙'과 '외부시퀀스설계가이드'를 준용하여 설계
|
||||||
|
|||||||
@@ -1,5 +1,2 @@
|
|||||||
---
|
|
||||||
command: "/design-test-prototype"
|
|
||||||
---
|
|
||||||
@test-front
|
@test-front
|
||||||
프로토타입을 테스트 해 주세요.
|
프로토타입을 테스트 해 주세요.
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
---
|
|
||||||
command: "/design-uiux"
|
|
||||||
---
|
|
||||||
@uiux
|
@uiux
|
||||||
UI/UX 설계를 해주세요:
|
UI/UX 설계를 해주세요:
|
||||||
- 'UI/UX설계가이드'를 준용하여 작성
|
- 'UI/UX설계가이드'를 준용하여 작성
|
||||||
|
|||||||
@@ -1,5 +1,2 @@
|
|||||||
---
|
|
||||||
command: "/design-update-uiux"
|
|
||||||
---
|
|
||||||
@document @front
|
@document @front
|
||||||
현재 프로토타입과 유저스토리를 기준으로 UI/UX설계서와 스타일가이드를 수정해 주세요.
|
현재 프로토타입과 유저스토리를 기준으로 UI/UX설계서와 스타일가이드를 수정해 주세요.
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
---
|
|
||||||
command: "/think-help"
|
|
||||||
---
|
|
||||||
기획 작업 순서
|
기획 작업 순서
|
||||||
|
|
||||||
1단계: 서비스 기획
|
1단계: 서비스 기획
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
---
|
|
||||||
command: "/think-planning"
|
|
||||||
---
|
|
||||||
아래 내용을 터미널에 표시만 하고 수행을 하지는 않습니다.
|
아래 내용을 터미널에 표시만 하고 수행을 하지는 않습니다.
|
||||||
```
|
```
|
||||||
아래 가이드를 참고하여 서비스 기획을 수행합니다.
|
아래 가이드를 참고하여 서비스 기획을 수행합니다.
|
||||||
|
|||||||
@@ -1,7 +1,3 @@
|
|||||||
---
|
|
||||||
command: "/think-userstory"
|
|
||||||
---
|
|
||||||
```
|
|
||||||
@document
|
@document
|
||||||
유저스토리를 작성하세요.
|
유저스토리를 작성하세요.
|
||||||
프롬프트에 '[요구사항]'섹션이 없으면 수행을 중단하고 안내 메시지를 표시합니다.
|
프롬프트에 '[요구사항]'섹션이 없으면 수행을 중단하고 안내 메시지를 표시합니다.
|
||||||
@@ -20,5 +16,3 @@ Case 2) 다른 방법으로 이벤트스토밍을 한 경우는 요구사항을
|
|||||||
2. 유저스토리 작성
|
2. 유저스토리 작성
|
||||||
- '유저스토리작성방법'과 '유저스토리예제'를 참고하여 유저스토리를 작성
|
- '유저스토리작성방법'과 '유저스토리예제'를 참고하여 유저스토리를 작성
|
||||||
- 결과파일은 'design/userstory.md'에 생성
|
- 결과파일은 'design/userstory.md'에 생성
|
||||||
|
|
||||||
```
|
|
||||||
|
|||||||
@@ -1,186 +0,0 @@
|
|||||||
# KT Event Marketing - CI/CD Infrastructure
|
|
||||||
|
|
||||||
이 디렉토리는 KT Event Marketing 백엔드 서비스의 CI/CD 인프라를 포함합니다.
|
|
||||||
|
|
||||||
## 디렉토리 구조
|
|
||||||
|
|
||||||
```
|
|
||||||
.github/
|
|
||||||
├── README.md # 이 파일
|
|
||||||
├── workflows/
|
|
||||||
│ └── backend-cicd.yaml # GitHub Actions 워크플로우
|
|
||||||
├── kustomize/ # Kubernetes 매니페스트 관리
|
|
||||||
│ ├── base/ # 기본 리소스 정의
|
|
||||||
│ │ ├── kustomization.yaml
|
|
||||||
│ │ ├── cm-common.yaml
|
|
||||||
│ │ ├── secret-common.yaml
|
|
||||||
│ │ ├── secret-imagepull.yaml
|
|
||||||
│ │ ├── ingress.yaml
|
|
||||||
│ │ └── {service}-*.yaml # 각 서비스별 리소스
|
|
||||||
│ └── overlays/ # 환경별 설정
|
|
||||||
│ ├── dev/
|
|
||||||
│ │ ├── kustomization.yaml
|
|
||||||
│ │ └── *-patch.yaml # 1 replica, 256Mi-1024Mi
|
|
||||||
│ ├── staging/
|
|
||||||
│ │ ├── kustomization.yaml
|
|
||||||
│ │ └── *-patch.yaml # 2 replicas, 512Mi-2048Mi
|
|
||||||
│ └── prod/
|
|
||||||
│ ├── kustomization.yaml
|
|
||||||
│ └── *-patch.yaml # 3 replicas, 1024Mi-4096Mi
|
|
||||||
├── config/
|
|
||||||
│ ├── deploy_env_vars_dev # Dev 환경 변수
|
|
||||||
│ ├── deploy_env_vars_staging # Staging 환경 변수
|
|
||||||
│ └── deploy_env_vars_prod # Prod 환경 변수
|
|
||||||
└── scripts/
|
|
||||||
├── deploy.sh # 수동 배포 스크립트
|
|
||||||
├── generate-patches.sh # 패치 파일 생성 스크립트
|
|
||||||
└── copy-manifests-to-base.py # 매니페스트 복사 스크립트
|
|
||||||
```
|
|
||||||
|
|
||||||
## 주요 파일 설명
|
|
||||||
|
|
||||||
### workflows/backend-cicd.yaml
|
|
||||||
GitHub Actions 워크플로우 정의 파일입니다.
|
|
||||||
|
|
||||||
**트리거**:
|
|
||||||
- develop 브랜치 push → dev 환경 배포
|
|
||||||
- main 브랜치 push → prod 환경 배포
|
|
||||||
- Manual workflow dispatch → 원하는 환경과 서비스 선택
|
|
||||||
|
|
||||||
**Jobs**:
|
|
||||||
1. `detect-changes`: 변경된 서비스 감지
|
|
||||||
2. `build-and-push`: 서비스 빌드 및 ACR 푸시
|
|
||||||
3. `deploy`: AKS에 배포
|
|
||||||
4. `notify`: 배포 결과 알림
|
|
||||||
|
|
||||||
### kustomize/base/kustomization.yaml
|
|
||||||
모든 환경에서 공통으로 사용하는 기본 리소스를 정의합니다.
|
|
||||||
|
|
||||||
**포함 리소스**:
|
|
||||||
- Common ConfigMaps and Secrets
|
|
||||||
- Ingress
|
|
||||||
- 7개 서비스의 Deployment, Service, ConfigMap, Secret
|
|
||||||
|
|
||||||
### kustomize/overlays/{env}/kustomization.yaml
|
|
||||||
환경별 설정을 오버라이드합니다.
|
|
||||||
|
|
||||||
**주요 차이점**:
|
|
||||||
- 이미지 태그 (dev/staging/prod)
|
|
||||||
- Replica 수 (1/2/3)
|
|
||||||
- 리소스 할당량 (작음/중간/큼)
|
|
||||||
|
|
||||||
### scripts/deploy.sh
|
|
||||||
로컬에서 수동 배포를 위한 스크립트입니다.
|
|
||||||
|
|
||||||
**사용법**:
|
|
||||||
```bash
|
|
||||||
# 모든 서비스를 dev 환경에 배포
|
|
||||||
./scripts/deploy.sh dev
|
|
||||||
|
|
||||||
# 특정 서비스만 prod 환경에 배포
|
|
||||||
./scripts/deploy.sh prod user-service
|
|
||||||
```
|
|
||||||
|
|
||||||
## 배포 프로세스
|
|
||||||
|
|
||||||
### 자동 배포 (GitHub Actions)
|
|
||||||
|
|
||||||
1. **Dev 환경**:
|
|
||||||
```bash
|
|
||||||
git checkout develop
|
|
||||||
git push origin develop
|
|
||||||
```
|
|
||||||
|
|
||||||
2. **Prod 환경**:
|
|
||||||
```bash
|
|
||||||
git checkout main
|
|
||||||
git merge develop
|
|
||||||
git push origin main
|
|
||||||
```
|
|
||||||
|
|
||||||
3. **수동 배포**:
|
|
||||||
- GitHub Actions UI → Run workflow
|
|
||||||
- Environment 선택 (dev/staging/prod)
|
|
||||||
- Service 선택 (all 또는 특정 서비스)
|
|
||||||
|
|
||||||
### 수동 배포 (로컬)
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# 사전 요구사항: Azure CLI, kubectl, kustomize 설치
|
|
||||||
# Azure 로그인 필요
|
|
||||||
|
|
||||||
# Dev 환경에 모든 서비스 배포
|
|
||||||
./.github/scripts/deploy.sh dev
|
|
||||||
|
|
||||||
# Prod 환경에 user-service만 배포
|
|
||||||
./.github/scripts/deploy.sh prod user-service
|
|
||||||
```
|
|
||||||
|
|
||||||
## 환경별 설정
|
|
||||||
|
|
||||||
| 환경 | 브랜치 | 이미지 태그 | Replicas | CPU Request | Memory Request |
|
|
||||||
|------|--------|-------------|----------|-------------|----------------|
|
|
||||||
| Dev | develop | dev | 1 | 256m | 256Mi |
|
|
||||||
| Staging | manual | staging | 2 | 512m | 512Mi |
|
|
||||||
| Prod | main | prod | 3 | 1024m | 1024Mi |
|
|
||||||
|
|
||||||
## 서비스 목록
|
|
||||||
|
|
||||||
1. **user-service** (8081) - 사용자 관리
|
|
||||||
2. **event-service** (8082) - 이벤트 관리
|
|
||||||
3. **ai-service** (8083) - AI 기반 콘텐츠 생성
|
|
||||||
4. **content-service** (8084) - 콘텐츠 관리
|
|
||||||
5. **distribution-service** (8085) - 경품 배포
|
|
||||||
6. **participation-service** (8086) - 이벤트 참여
|
|
||||||
7. **analytics-service** (8087) - 분석 및 통계
|
|
||||||
|
|
||||||
## 모니터링
|
|
||||||
|
|
||||||
### Pod 상태 확인
|
|
||||||
```bash
|
|
||||||
kubectl get pods -n kt-event-marketing
|
|
||||||
```
|
|
||||||
|
|
||||||
### 로그 확인
|
|
||||||
```bash
|
|
||||||
# 실시간 로그
|
|
||||||
kubectl logs -n kt-event-marketing -l app=user-service -f
|
|
||||||
|
|
||||||
# 이전 컨테이너 로그
|
|
||||||
kubectl logs -n kt-event-marketing <pod-name> --previous
|
|
||||||
```
|
|
||||||
|
|
||||||
### 리소스 사용량
|
|
||||||
```bash
|
|
||||||
# Pod 리소스
|
|
||||||
kubectl top pods -n kt-event-marketing
|
|
||||||
|
|
||||||
# Node 리소스
|
|
||||||
kubectl top nodes
|
|
||||||
```
|
|
||||||
|
|
||||||
## 트러블슈팅
|
|
||||||
|
|
||||||
상세한 트러블슈팅 가이드는 [deployment/cicd/CICD-GUIDE.md](../../deployment/cicd/CICD-GUIDE.md)를 참조하세요.
|
|
||||||
|
|
||||||
**주요 문제 해결**:
|
|
||||||
- ImagePullBackOff → ACR Secret 확인
|
|
||||||
- CrashLoopBackOff → 로그 확인 및 환경 변수 검증
|
|
||||||
- Readiness Probe Failed → Context Path 및 Actuator 경로 확인
|
|
||||||
|
|
||||||
## 롤백
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# 이전 버전으로 롤백
|
|
||||||
kubectl rollout undo deployment/user-service -n kt-event-marketing
|
|
||||||
|
|
||||||
# 특정 리비전으로 롤백
|
|
||||||
kubectl rollout undo deployment/user-service --to-revision=2 -n kt-event-marketing
|
|
||||||
```
|
|
||||||
|
|
||||||
## 참고 자료
|
|
||||||
|
|
||||||
- [CI/CD 가이드 (한글)](../../deployment/cicd/CICD-GUIDE.md)
|
|
||||||
- [GitHub Actions 공식 문서](https://docs.github.com/en/actions)
|
|
||||||
- [Kustomize 공식 문서](https://kustomize.io/)
|
|
||||||
- [Azure AKS 공식 문서](https://docs.microsoft.com/en-us/azure/aks/)
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
# Development Environment Variables
|
|
||||||
ENVIRONMENT=dev
|
|
||||||
ACR_NAME=acrdigitalgarage01
|
|
||||||
RESOURCE_GROUP=rg-digitalgarage-01
|
|
||||||
AKS_CLUSTER=aks-digitalgarage-01
|
|
||||||
NAMESPACE=kt-event-marketing
|
|
||||||
REPLICAS=1
|
|
||||||
CPU_REQUEST=256m
|
|
||||||
MEMORY_REQUEST=256Mi
|
|
||||||
CPU_LIMIT=1024m
|
|
||||||
MEMORY_LIMIT=1024Mi
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
# Production Environment Variables
|
|
||||||
ENVIRONMENT=prod
|
|
||||||
ACR_NAME=acrdigitalgarage01
|
|
||||||
RESOURCE_GROUP=rg-digitalgarage-01
|
|
||||||
AKS_CLUSTER=aks-digitalgarage-01
|
|
||||||
NAMESPACE=kt-event-marketing
|
|
||||||
REPLICAS=3
|
|
||||||
CPU_REQUEST=1024m
|
|
||||||
MEMORY_REQUEST=1024Mi
|
|
||||||
CPU_LIMIT=4096m
|
|
||||||
MEMORY_LIMIT=4096Mi
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
# Staging Environment Variables
|
|
||||||
ENVIRONMENT=staging
|
|
||||||
ACR_NAME=acrdigitalgarage01
|
|
||||||
RESOURCE_GROUP=rg-digitalgarage-01
|
|
||||||
AKS_CLUSTER=aks-digitalgarage-01
|
|
||||||
NAMESPACE=kt-event-marketing
|
|
||||||
REPLICAS=2
|
|
||||||
CPU_REQUEST=512m
|
|
||||||
MEMORY_REQUEST=512Mi
|
|
||||||
CPU_LIMIT=2048m
|
|
||||||
MEMORY_LIMIT=2048Mi
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: cm-ai-service
|
|
||||||
data:
|
|
||||||
# Server Configuration
|
|
||||||
SERVER_PORT: "8083"
|
|
||||||
|
|
||||||
# Redis Configuration (service-specific)
|
|
||||||
REDIS_DATABASE: "3"
|
|
||||||
REDIS_TIMEOUT: "3000"
|
|
||||||
REDIS_POOL_MIN: "2"
|
|
||||||
|
|
||||||
# Kafka Configuration (service-specific)
|
|
||||||
KAFKA_CONSUMER_GROUP: "ai-service-consumers"
|
|
||||||
|
|
||||||
# Kafka Topics Configuration
|
|
||||||
KAFKA_TOPICS_AI_JOB: "ai-event-generation-job"
|
|
||||||
KAFKA_TOPICS_AI_JOB_DLQ: "ai-event-generation-job-dlq"
|
|
||||||
|
|
||||||
# AI Provider Configuration
|
|
||||||
AI_PROVIDER: "CLAUDE"
|
|
||||||
AI_CLAUDE_API_URL: "https://api.anthropic.com/v1/messages"
|
|
||||||
AI_CLAUDE_ANTHROPIC_VERSION: "2023-06-01"
|
|
||||||
AI_CLAUDE_MODEL: "claude-sonnet-4-5-20250929"
|
|
||||||
AI_CLAUDE_MAX_TOKENS: "4096"
|
|
||||||
AI_CLAUDE_TEMPERATURE: "0.7"
|
|
||||||
AI_CLAUDE_TIMEOUT: "300000"
|
|
||||||
|
|
||||||
# Circuit Breaker Configuration
|
|
||||||
RESILIENCE4J_CIRCUITBREAKER_FAILURE_RATE_THRESHOLD: "50"
|
|
||||||
RESILIENCE4J_CIRCUITBREAKER_SLOW_CALL_RATE_THRESHOLD: "50"
|
|
||||||
RESILIENCE4J_CIRCUITBREAKER_SLOW_CALL_DURATION_THRESHOLD: "60s"
|
|
||||||
RESILIENCE4J_CIRCUITBREAKER_PERMITTED_CALLS_HALF_OPEN: "3"
|
|
||||||
RESILIENCE4J_CIRCUITBREAKER_SLIDING_WINDOW_SIZE: "10"
|
|
||||||
RESILIENCE4J_CIRCUITBREAKER_MINIMUM_CALLS: "5"
|
|
||||||
RESILIENCE4J_CIRCUITBREAKER_WAIT_DURATION_OPEN: "60s"
|
|
||||||
RESILIENCE4J_TIMELIMITER_TIMEOUT_DURATION: "300s"
|
|
||||||
|
|
||||||
# Redis Cache TTL Configuration (seconds)
|
|
||||||
CACHE_TTL_RECOMMENDATION: "86400"
|
|
||||||
CACHE_TTL_JOB_STATUS: "86400"
|
|
||||||
CACHE_TTL_TREND: "3600"
|
|
||||||
CACHE_TTL_FALLBACK: "604800"
|
|
||||||
|
|
||||||
# Logging Configuration
|
|
||||||
LOG_LEVEL_ROOT: "INFO"
|
|
||||||
LOG_LEVEL_AI: "DEBUG"
|
|
||||||
LOG_LEVEL_KAFKA: "INFO"
|
|
||||||
LOG_LEVEL_REDIS: "INFO"
|
|
||||||
LOG_LEVEL_RESILIENCE4J: "DEBUG"
|
|
||||||
LOG_FILE_NAME: "logs/ai-service.log"
|
|
||||||
LOG_FILE_MAX_SIZE: "10MB"
|
|
||||||
LOG_FILE_MAX_HISTORY: "7"
|
|
||||||
LOG_FILE_TOTAL_CAP: "100MB"
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: ai-service
|
|
||||||
labels:
|
|
||||||
app: ai-service
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: ai-service
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: ai-service
|
|
||||||
spec:
|
|
||||||
imagePullSecrets:
|
|
||||||
- name: kt-event-marketing
|
|
||||||
containers:
|
|
||||||
- name: ai-service
|
|
||||||
image: acrdigitalgarage01.azurecr.io/kt-event-marketing/ai-service:latest
|
|
||||||
imagePullPolicy: Always
|
|
||||||
ports:
|
|
||||||
- containerPort: 8083
|
|
||||||
name: http
|
|
||||||
envFrom:
|
|
||||||
- configMapRef:
|
|
||||||
name: cm-common
|
|
||||||
- configMapRef:
|
|
||||||
name: cm-ai-service
|
|
||||||
- secretRef:
|
|
||||||
name: secret-common
|
|
||||||
- secretRef:
|
|
||||||
name: secret-ai-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "256m"
|
|
||||||
memory: "256Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "1024m"
|
|
||||||
memory: "1024Mi"
|
|
||||||
startupProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /actuator/health
|
|
||||||
port: 8083
|
|
||||||
initialDelaySeconds: 30
|
|
||||||
periodSeconds: 10
|
|
||||||
failureThreshold: 30
|
|
||||||
readinessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /actuator/health/readiness
|
|
||||||
port: 8083
|
|
||||||
initialDelaySeconds: 10
|
|
||||||
periodSeconds: 5
|
|
||||||
failureThreshold: 3
|
|
||||||
livenessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /actuator/health/liveness
|
|
||||||
port: 8083
|
|
||||||
initialDelaySeconds: 30
|
|
||||||
periodSeconds: 10
|
|
||||||
failureThreshold: 3
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: secret-ai-service
|
|
||||||
type: Opaque
|
|
||||||
stringData:
|
|
||||||
# Claude API Key
|
|
||||||
AI_CLAUDE_API_KEY: "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"
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: ai-service
|
|
||||||
labels:
|
|
||||||
app: ai-service
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- port: 80
|
|
||||||
targetPort: 8083
|
|
||||||
protocol: TCP
|
|
||||||
name: http
|
|
||||||
selector:
|
|
||||||
app: ai-service
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: cm-analytics-service
|
|
||||||
data:
|
|
||||||
# Server Configuration
|
|
||||||
SERVER_PORT: "8086"
|
|
||||||
|
|
||||||
# Database Configuration
|
|
||||||
DB_HOST: "analytic-postgresql"
|
|
||||||
DB_PORT: "5432"
|
|
||||||
DB_NAME: "analytics_db"
|
|
||||||
DB_USERNAME: "eventuser"
|
|
||||||
|
|
||||||
# Redis Configuration (service-specific)
|
|
||||||
REDIS_DATABASE: "5"
|
|
||||||
|
|
||||||
# Kafka Configuration (service-specific)
|
|
||||||
KAFKA_ENABLED: "true"
|
|
||||||
KAFKA_CONSUMER_GROUP_ID: "analytics-service"
|
|
||||||
|
|
||||||
# Sample Data Configuration (MVP only)
|
|
||||||
SAMPLE_DATA_ENABLED: "true"
|
|
||||||
|
|
||||||
# Batch Scheduler Configuration
|
|
||||||
BATCH_REFRESH_INTERVAL: "300000" # 5분 (밀리초)
|
|
||||||
BATCH_INITIAL_DELAY: "30000" # 30초 (밀리초)
|
|
||||||
BATCH_ENABLED: "true"
|
|
||||||
|
|
||||||
# Logging Configuration
|
|
||||||
LOG_LEVEL_APP: "INFO"
|
|
||||||
LOG_LEVEL_WEB: "INFO"
|
|
||||||
LOG_LEVEL_SQL: "WARN"
|
|
||||||
LOG_LEVEL_SQL_TYPE: "WARN"
|
|
||||||
SHOW_SQL: "false"
|
|
||||||
DDL_AUTO: "update"
|
|
||||||
LOG_FILE: "logs/analytics-service.log"
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: analytics-service
|
|
||||||
labels:
|
|
||||||
app: analytics-service
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: analytics-service
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: analytics-service
|
|
||||||
spec:
|
|
||||||
imagePullSecrets:
|
|
||||||
- name: kt-event-marketing
|
|
||||||
containers:
|
|
||||||
- name: analytics-service
|
|
||||||
image: acrdigitalgarage01.azurecr.io/kt-event-marketing/analytics-service:latest
|
|
||||||
imagePullPolicy: Always
|
|
||||||
ports:
|
|
||||||
- containerPort: 8086
|
|
||||||
name: http
|
|
||||||
envFrom:
|
|
||||||
- configMapRef:
|
|
||||||
name: cm-common
|
|
||||||
- configMapRef:
|
|
||||||
name: cm-analytics-service
|
|
||||||
- secretRef:
|
|
||||||
name: secret-common
|
|
||||||
- secretRef:
|
|
||||||
name: secret-analytics-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "256m"
|
|
||||||
memory: "256Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "1024m"
|
|
||||||
memory: "1024Mi"
|
|
||||||
startupProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /actuator/health/liveness
|
|
||||||
port: 8086
|
|
||||||
initialDelaySeconds: 60
|
|
||||||
periodSeconds: 10
|
|
||||||
failureThreshold: 30
|
|
||||||
livenessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /actuator/health/liveness
|
|
||||||
port: 8086
|
|
||||||
initialDelaySeconds: 0
|
|
||||||
periodSeconds: 10
|
|
||||||
failureThreshold: 3
|
|
||||||
readinessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /actuator/health/readiness
|
|
||||||
port: 8086
|
|
||||||
initialDelaySeconds: 0
|
|
||||||
periodSeconds: 10
|
|
||||||
failureThreshold: 3
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: secret-analytics-service
|
|
||||||
type: Opaque
|
|
||||||
stringData:
|
|
||||||
DB_PASSWORD: "Hi5Jessica!"
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: analytics-service
|
|
||||||
labels:
|
|
||||||
app: analytics-service
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- port: 80
|
|
||||||
targetPort: 8086
|
|
||||||
protocol: TCP
|
|
||||||
name: http
|
|
||||||
selector:
|
|
||||||
app: analytics-service
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: cm-common
|
|
||||||
data:
|
|
||||||
# Redis Configuration
|
|
||||||
REDIS_ENABLED: "true"
|
|
||||||
REDIS_HOST: "redis"
|
|
||||||
REDIS_PORT: "6379"
|
|
||||||
REDIS_TIMEOUT: "2000ms"
|
|
||||||
REDIS_POOL_MAX: "8"
|
|
||||||
REDIS_POOL_IDLE: "8"
|
|
||||||
REDIS_POOL_MIN: "0"
|
|
||||||
REDIS_POOL_WAIT: "-1ms"
|
|
||||||
|
|
||||||
# Kafka Configuration
|
|
||||||
KAFKA_BOOTSTRAP_SERVERS: "20.249.182.13:9095,4.217.131.59:9095"
|
|
||||||
EXCLUDE_KAFKA: ""
|
|
||||||
EXCLUDE_REDIS: ""
|
|
||||||
|
|
||||||
# CORS Configuration
|
|
||||||
CORS_ALLOWED_ORIGINS: "http://localhost:8081,http://localhost:8082,http://localhost:8083,http://localhost:8084,http://kt-event-marketing.20.214.196.128.nip.io"
|
|
||||||
CORS_ALLOWED_METHODS: "GET,POST,PUT,DELETE,OPTIONS,PATCH"
|
|
||||||
CORS_ALLOWED_HEADERS: "*"
|
|
||||||
CORS_ALLOW_CREDENTIALS: "true"
|
|
||||||
CORS_MAX_AGE: "3600"
|
|
||||||
|
|
||||||
# JWT Configuration
|
|
||||||
JWT_ACCESS_TOKEN_VALIDITY: "604800000"
|
|
||||||
JWT_REFRESH_TOKEN_VALIDITY: "86400000"
|
|
||||||
|
|
||||||
# JPA Configuration
|
|
||||||
DDL_AUTO: "update"
|
|
||||||
SHOW_SQL: "false"
|
|
||||||
JPA_DIALECT: "org.hibernate.dialect.PostgreSQLDialect"
|
|
||||||
H2_CONSOLE_ENABLED: "false"
|
|
||||||
|
|
||||||
# Logging Configuration
|
|
||||||
LOG_LEVEL_APP: "INFO"
|
|
||||||
LOG_LEVEL_WEB: "INFO"
|
|
||||||
LOG_LEVEL_SQL: "WARN"
|
|
||||||
LOG_LEVEL_SQL_TYPE: "WARN"
|
|
||||||
LOG_LEVEL_ROOT: "INFO"
|
|
||||||
LOG_FILE_MAX_SIZE: "10MB"
|
|
||||||
LOG_FILE_MAX_HISTORY: "7"
|
|
||||||
LOG_FILE_TOTAL_CAP: "100MB"
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: cm-content-service
|
|
||||||
data:
|
|
||||||
# Server Configuration
|
|
||||||
SERVER_PORT: "8084"
|
|
||||||
|
|
||||||
# Redis Configuration (service-specific)
|
|
||||||
REDIS_DATABASE: "1"
|
|
||||||
|
|
||||||
# Replicate API Configuration (Stable Diffusion)
|
|
||||||
REPLICATE_API_URL: "https://api.replicate.com"
|
|
||||||
REPLICATE_MODEL_VERSION: "stability-ai/sdxl:39ed52f2a78e934b3ba6e2a89f5b1c712de7dfea535525255b1aa35c5565e08b"
|
|
||||||
|
|
||||||
# HuggingFace API Configuration
|
|
||||||
HUGGINGFACE_API_URL: "https://api-inference.huggingface.co"
|
|
||||||
HUGGINGFACE_MODEL: "runwayml/stable-diffusion-v1-5"
|
|
||||||
|
|
||||||
# Azure Blob Storage Configuration
|
|
||||||
AZURE_CONTAINER_NAME: "content-images"
|
|
||||||
|
|
||||||
# Logging Configuration
|
|
||||||
LOG_FILE_PATH: "logs/content-service.log"
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: content-service
|
|
||||||
labels:
|
|
||||||
app: content-service
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: content-service
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: content-service
|
|
||||||
spec:
|
|
||||||
imagePullSecrets:
|
|
||||||
- name: kt-event-marketing
|
|
||||||
containers:
|
|
||||||
- name: content-service
|
|
||||||
image: acrdigitalgarage01.azurecr.io/kt-event-marketing/content-service:latest
|
|
||||||
imagePullPolicy: Always
|
|
||||||
ports:
|
|
||||||
- containerPort: 8084
|
|
||||||
name: http
|
|
||||||
envFrom:
|
|
||||||
- configMapRef:
|
|
||||||
name: cm-common
|
|
||||||
- configMapRef:
|
|
||||||
name: cm-content-service
|
|
||||||
- secretRef:
|
|
||||||
name: secret-common
|
|
||||||
- secretRef:
|
|
||||||
name: secret-content-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "256m"
|
|
||||||
memory: "256Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "1024m"
|
|
||||||
memory: "1024Mi"
|
|
||||||
startupProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /api/v1/content/actuator/health
|
|
||||||
port: 8084
|
|
||||||
initialDelaySeconds: 30
|
|
||||||
periodSeconds: 10
|
|
||||||
failureThreshold: 30
|
|
||||||
readinessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /api/v1/content/actuator/health/readiness
|
|
||||||
port: 8084
|
|
||||||
initialDelaySeconds: 10
|
|
||||||
periodSeconds: 5
|
|
||||||
failureThreshold: 3
|
|
||||||
livenessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /api/v1/content/actuator/health/liveness
|
|
||||||
port: 8084
|
|
||||||
initialDelaySeconds: 30
|
|
||||||
periodSeconds: 10
|
|
||||||
failureThreshold: 3
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: secret-content-service
|
|
||||||
type: Opaque
|
|
||||||
stringData:
|
|
||||||
# Azure Blob Storage Connection String
|
|
||||||
AZURE_STORAGE_CONNECTION_STRING: "DefaultEndpointsProtocol=https;AccountName=blobkteventstorage;AccountKey=tcBN7mAfojbl0uGsOpU7RNuKNhHnzmwDiWjN31liSMVSrWaEK+HHnYKZrjBXXAC6ZPsuxUDlsf8x+AStd++QYg==;EndpointSuffix=core.windows.net"
|
|
||||||
|
|
||||||
# Replicate API Token
|
|
||||||
REPLICATE_API_TOKEN: ""
|
|
||||||
|
|
||||||
# HuggingFace API Token
|
|
||||||
HUGGINGFACE_API_TOKEN: ""
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: content-service
|
|
||||||
labels:
|
|
||||||
app: content-service
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- port: 80
|
|
||||||
targetPort: 8084
|
|
||||||
protocol: TCP
|
|
||||||
name: http
|
|
||||||
selector:
|
|
||||||
app: content-service
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: cm-distribution-service
|
|
||||||
data:
|
|
||||||
# Server Configuration
|
|
||||||
SERVER_PORT: "8085"
|
|
||||||
|
|
||||||
# Database Configuration
|
|
||||||
DB_HOST: "distribution-postgresql"
|
|
||||||
DB_PORT: "5432"
|
|
||||||
DB_NAME: "distributiondb"
|
|
||||||
DB_USERNAME: "eventuser"
|
|
||||||
|
|
||||||
# Kafka Configuration
|
|
||||||
KAFKA_ENABLED: "true"
|
|
||||||
KAFKA_CONSUMER_GROUP: "distribution-service"
|
|
||||||
|
|
||||||
# External Channel APIs
|
|
||||||
URIDONGNETV_API_URL: "http://localhost:9001/api/uridongnetv"
|
|
||||||
RINGOBIZ_API_URL: "http://localhost:9002/api/ringobiz"
|
|
||||||
GINITV_API_URL: "http://localhost:9003/api/ginitv"
|
|
||||||
INSTAGRAM_API_URL: "http://localhost:9004/api/instagram"
|
|
||||||
NAVER_API_URL: "http://localhost:9005/api/naver"
|
|
||||||
KAKAO_API_URL: "http://localhost:9006/api/kakao"
|
|
||||||
|
|
||||||
# Logging Configuration
|
|
||||||
LOG_FILE: "logs/distribution-service.log"
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: distribution-service
|
|
||||||
labels:
|
|
||||||
app: distribution-service
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: distribution-service
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: distribution-service
|
|
||||||
spec:
|
|
||||||
imagePullSecrets:
|
|
||||||
- name: kt-event-marketing
|
|
||||||
containers:
|
|
||||||
- name: distribution-service
|
|
||||||
image: acrdigitalgarage01.azurecr.io/kt-event-marketing/distribution-service:latest
|
|
||||||
imagePullPolicy: Always
|
|
||||||
ports:
|
|
||||||
- containerPort: 8085
|
|
||||||
name: http
|
|
||||||
envFrom:
|
|
||||||
- configMapRef:
|
|
||||||
name: cm-common
|
|
||||||
- configMapRef:
|
|
||||||
name: cm-distribution-service
|
|
||||||
- secretRef:
|
|
||||||
name: secret-common
|
|
||||||
- secretRef:
|
|
||||||
name: secret-distribution-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "256m"
|
|
||||||
memory: "256Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "1024m"
|
|
||||||
memory: "1024Mi"
|
|
||||||
startupProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /api/v1/distribution/actuator/health
|
|
||||||
port: 8085
|
|
||||||
initialDelaySeconds: 30
|
|
||||||
periodSeconds: 10
|
|
||||||
failureThreshold: 30
|
|
||||||
readinessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /api/v1/distribution/actuator/health/readiness
|
|
||||||
port: 8085
|
|
||||||
initialDelaySeconds: 10
|
|
||||||
periodSeconds: 5
|
|
||||||
failureThreshold: 3
|
|
||||||
livenessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /api/v1/distribution/actuator/health/liveness
|
|
||||||
port: 8085
|
|
||||||
initialDelaySeconds: 30
|
|
||||||
periodSeconds: 10
|
|
||||||
failureThreshold: 3
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: secret-distribution-service
|
|
||||||
type: Opaque
|
|
||||||
stringData:
|
|
||||||
DB_PASSWORD: "Hi5Jessica!"
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: distribution-service
|
|
||||||
labels:
|
|
||||||
app: distribution-service
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
selector:
|
|
||||||
app: distribution-service
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
port: 80
|
|
||||||
targetPort: 8085
|
|
||||||
protocol: TCP
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: cm-event-service
|
|
||||||
data:
|
|
||||||
# Server Configuration
|
|
||||||
SERVER_PORT: "8080"
|
|
||||||
|
|
||||||
# Database Configuration
|
|
||||||
DB_HOST: "event-postgresql"
|
|
||||||
DB_PORT: "5432"
|
|
||||||
DB_NAME: "eventdb"
|
|
||||||
DB_USERNAME: "eventuser"
|
|
||||||
|
|
||||||
# Redis Configuration (service-specific)
|
|
||||||
REDIS_DATABASE: "2"
|
|
||||||
|
|
||||||
# Kafka Configuration (service-specific)
|
|
||||||
KAFKA_CONSUMER_GROUP: "event-service-consumers"
|
|
||||||
|
|
||||||
# Service URLs
|
|
||||||
CONTENT_SERVICE_URL: "http://content-service"
|
|
||||||
DISTRIBUTION_SERVICE_URL: "http://distribution-service"
|
|
||||||
|
|
||||||
# Logging Configuration
|
|
||||||
LOG_LEVEL: "INFO"
|
|
||||||
SQL_LOG_LEVEL: "WARN"
|
|
||||||
LOG_FILE: "logs/event-service.log"
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: event-service
|
|
||||||
labels:
|
|
||||||
app: event-service
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: event-service
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: event-service
|
|
||||||
spec:
|
|
||||||
imagePullSecrets:
|
|
||||||
- name: kt-event-marketing
|
|
||||||
containers:
|
|
||||||
- name: event-service
|
|
||||||
image: acrdigitalgarage01.azurecr.io/kt-event-marketing/event-service:latest
|
|
||||||
imagePullPolicy: Always
|
|
||||||
ports:
|
|
||||||
- containerPort: 8080
|
|
||||||
name: http
|
|
||||||
envFrom:
|
|
||||||
- configMapRef:
|
|
||||||
name: cm-common
|
|
||||||
- configMapRef:
|
|
||||||
name: cm-event-service
|
|
||||||
- secretRef:
|
|
||||||
name: secret-common
|
|
||||||
- secretRef:
|
|
||||||
name: secret-event-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "256m"
|
|
||||||
memory: "256Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "1024m"
|
|
||||||
memory: "1024Mi"
|
|
||||||
startupProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /actuator/health
|
|
||||||
port: 8080
|
|
||||||
initialDelaySeconds: 30
|
|
||||||
periodSeconds: 10
|
|
||||||
failureThreshold: 30
|
|
||||||
readinessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /actuator/health/readiness
|
|
||||||
port: 8080
|
|
||||||
initialDelaySeconds: 10
|
|
||||||
periodSeconds: 5
|
|
||||||
failureThreshold: 3
|
|
||||||
livenessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /actuator/health/liveness
|
|
||||||
port: 8080
|
|
||||||
initialDelaySeconds: 30
|
|
||||||
periodSeconds: 10
|
|
||||||
failureThreshold: 3
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: secret-event-service
|
|
||||||
type: Opaque
|
|
||||||
stringData:
|
|
||||||
# Database Password
|
|
||||||
DB_PASSWORD: "Hi5Jessica!"
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: event-service
|
|
||||||
labels:
|
|
||||||
app: event-service
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- port: 80
|
|
||||||
targetPort: 8080
|
|
||||||
protocol: TCP
|
|
||||||
name: http
|
|
||||||
selector:
|
|
||||||
app: event-service
|
|
||||||
@@ -1,116 +0,0 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: kt-event-marketing
|
|
||||||
annotations:
|
|
||||||
nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
|
||||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: kt-event-marketing-api.20.214.196.128.nip.io
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
# User Service
|
|
||||||
- path: /api/v1/users
|
|
||||||
pathType: Prefix
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: user-service
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
|
|
||||||
# Content Service
|
|
||||||
- path: /api/v1/content
|
|
||||||
pathType: Prefix
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: content-service
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
|
|
||||||
# Event Service
|
|
||||||
- path: /api/v1/events
|
|
||||||
pathType: Prefix
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: event-service
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
|
|
||||||
- path: /api/v1/jobs
|
|
||||||
pathType: Prefix
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: event-service
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
|
|
||||||
- path: /api/v1/redis-test
|
|
||||||
pathType: Prefix
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: event-service
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
|
|
||||||
# AI Service
|
|
||||||
- path: /api/v1/ai-service
|
|
||||||
pathType: Prefix
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: ai-service
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
|
|
||||||
# Participation Service
|
|
||||||
- path: /api/v1/participations
|
|
||||||
pathType: Prefix
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: participation-service
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
|
|
||||||
- path: /api/v1/winners
|
|
||||||
pathType: Prefix
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: participation-service
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
|
|
||||||
- path: /debug
|
|
||||||
pathType: Prefix
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: participation-service
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
|
|
||||||
# Analytics Service - Event Analytics
|
|
||||||
- path: /api/v1/events/([0-9]+)/analytics
|
|
||||||
pathType: ImplementationSpecific
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: analytics-service
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
|
|
||||||
# Analytics Service - User Analytics
|
|
||||||
- path: /api/v1/users/([0-9]+)/analytics
|
|
||||||
pathType: ImplementationSpecific
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: analytics-service
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
|
|
||||||
# Distribution Service
|
|
||||||
- path: /distribution
|
|
||||||
pathType: Prefix
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: distribution-service
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
@@ -1,76 +0,0 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
|
|
||||||
# Common resources
|
|
||||||
resources:
|
|
||||||
# Common ConfigMaps and Secrets
|
|
||||||
- cm-common.yaml
|
|
||||||
- secret-common.yaml
|
|
||||||
- secret-imagepull.yaml
|
|
||||||
|
|
||||||
# Ingress
|
|
||||||
- ingress.yaml
|
|
||||||
|
|
||||||
# user-service
|
|
||||||
- user-service-deployment.yaml
|
|
||||||
- user-service-service.yaml
|
|
||||||
- user-service-cm-user-service.yaml
|
|
||||||
- user-service-secret-user-service.yaml
|
|
||||||
|
|
||||||
# event-service
|
|
||||||
- event-service-deployment.yaml
|
|
||||||
- event-service-service.yaml
|
|
||||||
- event-service-cm-event-service.yaml
|
|
||||||
- event-service-secret-event-service.yaml
|
|
||||||
|
|
||||||
# ai-service
|
|
||||||
- ai-service-deployment.yaml
|
|
||||||
- ai-service-service.yaml
|
|
||||||
- ai-service-cm-ai-service.yaml
|
|
||||||
- ai-service-secret-ai-service.yaml
|
|
||||||
|
|
||||||
# content-service
|
|
||||||
- content-service-deployment.yaml
|
|
||||||
- content-service-service.yaml
|
|
||||||
- content-service-cm-content-service.yaml
|
|
||||||
- content-service-secret-content-service.yaml
|
|
||||||
|
|
||||||
# distribution-service
|
|
||||||
- distribution-service-deployment.yaml
|
|
||||||
- distribution-service-service.yaml
|
|
||||||
- distribution-service-cm-distribution-service.yaml
|
|
||||||
- distribution-service-secret-distribution-service.yaml
|
|
||||||
|
|
||||||
# participation-service
|
|
||||||
- participation-service-deployment.yaml
|
|
||||||
- participation-service-service.yaml
|
|
||||||
- participation-service-cm-participation-service.yaml
|
|
||||||
- participation-service-secret-participation-service.yaml
|
|
||||||
|
|
||||||
# analytics-service
|
|
||||||
- analytics-service-deployment.yaml
|
|
||||||
- analytics-service-service.yaml
|
|
||||||
- analytics-service-cm-analytics-service.yaml
|
|
||||||
- analytics-service-secret-analytics-service.yaml
|
|
||||||
|
|
||||||
# Common labels for all resources
|
|
||||||
commonLabels:
|
|
||||||
app.kubernetes.io/managed-by: kustomize
|
|
||||||
app.kubernetes.io/part-of: kt-event-marketing
|
|
||||||
|
|
||||||
# Image tag replacement (will be overridden by overlays)
|
|
||||||
images:
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/user-service
|
|
||||||
newTag: latest
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/event-service
|
|
||||||
newTag: latest
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/ai-service
|
|
||||||
newTag: latest
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/content-service
|
|
||||||
newTag: latest
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/distribution-service
|
|
||||||
newTag: latest
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/participation-service
|
|
||||||
newTag: latest
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/analytics-service
|
|
||||||
newTag: latest
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: cm-participation-service
|
|
||||||
data:
|
|
||||||
# Server Configuration
|
|
||||||
SERVER_PORT: "8084"
|
|
||||||
|
|
||||||
# Database Configuration
|
|
||||||
DB_HOST: "participation-postgresql"
|
|
||||||
DB_PORT: "5432"
|
|
||||||
DB_NAME: "participationdb"
|
|
||||||
DB_USERNAME: "eventuser"
|
|
||||||
|
|
||||||
# Redis Configuration (service-specific)
|
|
||||||
REDIS_DATABASE: "4"
|
|
||||||
|
|
||||||
# Kafka Configuration (service-specific)
|
|
||||||
KAFKA_CONSUMER_GROUP: "participation-service-consumers"
|
|
||||||
|
|
||||||
# Logging Configuration
|
|
||||||
LOG_LEVEL: "INFO"
|
|
||||||
SHOW_SQL: "false"
|
|
||||||
LOG_FILE: "logs/participation-service.log"
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: participation-service
|
|
||||||
labels:
|
|
||||||
app: participation-service
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: participation-service
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: participation-service
|
|
||||||
spec:
|
|
||||||
imagePullSecrets:
|
|
||||||
- name: kt-event-marketing
|
|
||||||
containers:
|
|
||||||
- name: participation-service
|
|
||||||
image: acrdigitalgarage01.azurecr.io/kt-event-marketing/participation-service:latest
|
|
||||||
imagePullPolicy: Always
|
|
||||||
ports:
|
|
||||||
- containerPort: 8084
|
|
||||||
name: http
|
|
||||||
envFrom:
|
|
||||||
- configMapRef:
|
|
||||||
name: cm-common
|
|
||||||
- configMapRef:
|
|
||||||
name: cm-participation-service
|
|
||||||
- secretRef:
|
|
||||||
name: secret-common
|
|
||||||
- secretRef:
|
|
||||||
name: secret-participation-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "256m"
|
|
||||||
memory: "256Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "1024m"
|
|
||||||
memory: "1024Mi"
|
|
||||||
startupProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /actuator/health/liveness
|
|
||||||
port: 8084
|
|
||||||
initialDelaySeconds: 60
|
|
||||||
periodSeconds: 10
|
|
||||||
failureThreshold: 30
|
|
||||||
livenessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /actuator/health/liveness
|
|
||||||
port: 8084
|
|
||||||
initialDelaySeconds: 0
|
|
||||||
periodSeconds: 10
|
|
||||||
failureThreshold: 3
|
|
||||||
readinessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /actuator/health/readiness
|
|
||||||
port: 8084
|
|
||||||
initialDelaySeconds: 0
|
|
||||||
periodSeconds: 10
|
|
||||||
failureThreshold: 3
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: secret-participation-service
|
|
||||||
type: Opaque
|
|
||||||
stringData:
|
|
||||||
DB_PASSWORD: "Hi5Jessica!"
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: participation-service
|
|
||||||
labels:
|
|
||||||
app: participation-service
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- port: 80
|
|
||||||
targetPort: 8084
|
|
||||||
protocol: TCP
|
|
||||||
name: http
|
|
||||||
selector:
|
|
||||||
app: participation-service
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: secret-common
|
|
||||||
type: Opaque
|
|
||||||
stringData:
|
|
||||||
# Redis Password
|
|
||||||
REDIS_PASSWORD: "Hi5Jessica!"
|
|
||||||
|
|
||||||
# JWT Secret
|
|
||||||
JWT_SECRET: "QL0czzXckz18kHnxpaTDoWFkq+3qKO7VQXeNvf2bOoU="
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: kt-event-marketing
|
|
||||||
type: kubernetes.io/dockerconfigjson
|
|
||||||
stringData:
|
|
||||||
.dockerconfigjson: |
|
|
||||||
{
|
|
||||||
"auths": {
|
|
||||||
"acrdigitalgarage01.azurecr.io": {
|
|
||||||
"username": "acrdigitalgarage01",
|
|
||||||
"password": "+OY+rmOagorjWvQe/tTk6oqvnZI8SmNbY/Y2o5EDcY+ACRDCDbYk",
|
|
||||||
"auth": "YWNyZGlnaXRhbGdhcmFnZTAxOitPWStybU9hZ29yald2UWUvdFRrNm9xdm5aSThTbU5iWS9ZMm81RURjWStBQ1JEQ0RiWWs="
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: cm-user-service
|
|
||||||
data:
|
|
||||||
# Server Configuration
|
|
||||||
SERVER_PORT: "8081"
|
|
||||||
|
|
||||||
# Database Configuration
|
|
||||||
DB_URL: "jdbc:postgresql://user-postgresql:5432/userdb"
|
|
||||||
DB_HOST: "user-postgresql"
|
|
||||||
DB_PORT: "5432"
|
|
||||||
DB_NAME: "userdb"
|
|
||||||
DB_USERNAME: "eventuser"
|
|
||||||
DB_DRIVER: "org.postgresql.Driver"
|
|
||||||
DB_KIND: "postgresql"
|
|
||||||
DB_POOL_MAX: "20"
|
|
||||||
DB_POOL_MIN: "5"
|
|
||||||
DB_CONN_TIMEOUT: "30000"
|
|
||||||
DB_IDLE_TIMEOUT: "600000"
|
|
||||||
DB_MAX_LIFETIME: "1800000"
|
|
||||||
DB_LEAK_THRESHOLD: "60000"
|
|
||||||
|
|
||||||
# Redis Configuration (service-specific)
|
|
||||||
REDIS_DATABASE: "0"
|
|
||||||
|
|
||||||
# Kafka Configuration (service-specific)
|
|
||||||
KAFKA_CONSUMER_GROUP: "user-service-consumers"
|
|
||||||
|
|
||||||
# Logging Configuration
|
|
||||||
LOG_FILE_PATH: "logs/user-service.log"
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: user-service
|
|
||||||
labels:
|
|
||||||
app: user-service
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: user-service
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: user-service
|
|
||||||
spec:
|
|
||||||
imagePullSecrets:
|
|
||||||
- name: kt-event-marketing
|
|
||||||
containers:
|
|
||||||
- name: user-service
|
|
||||||
image: acrdigitalgarage01.azurecr.io/kt-event-marketing/user-service:latest
|
|
||||||
imagePullPolicy: Always
|
|
||||||
ports:
|
|
||||||
- containerPort: 8081
|
|
||||||
name: http
|
|
||||||
envFrom:
|
|
||||||
- configMapRef:
|
|
||||||
name: cm-common
|
|
||||||
- configMapRef:
|
|
||||||
name: cm-user-service
|
|
||||||
- secretRef:
|
|
||||||
name: secret-common
|
|
||||||
- secretRef:
|
|
||||||
name: secret-user-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "256m"
|
|
||||||
memory: "256Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "1024m"
|
|
||||||
memory: "1024Mi"
|
|
||||||
startupProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /actuator/health
|
|
||||||
port: 8081
|
|
||||||
initialDelaySeconds: 30
|
|
||||||
periodSeconds: 10
|
|
||||||
failureThreshold: 30
|
|
||||||
readinessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /actuator/health/readiness
|
|
||||||
port: 8081
|
|
||||||
initialDelaySeconds: 10
|
|
||||||
periodSeconds: 5
|
|
||||||
failureThreshold: 3
|
|
||||||
livenessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /actuator/health/liveness
|
|
||||||
port: 8081
|
|
||||||
initialDelaySeconds: 30
|
|
||||||
periodSeconds: 10
|
|
||||||
failureThreshold: 3
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: secret-user-service
|
|
||||||
type: Opaque
|
|
||||||
stringData:
|
|
||||||
# Database Password
|
|
||||||
DB_PASSWORD: "Hi5Jessica!"
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: user-service
|
|
||||||
labels:
|
|
||||||
app: user-service
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- port: 80
|
|
||||||
targetPort: 8081
|
|
||||||
protocol: TCP
|
|
||||||
name: http
|
|
||||||
selector:
|
|
||||||
app: user-service
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: ai-service
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: ai-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "256m"
|
|
||||||
memory: "256Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "1024m"
|
|
||||||
memory: "1024Mi"
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: analytics-service
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: analytics-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "256m"
|
|
||||||
memory: "256Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "1024m"
|
|
||||||
memory: "1024Mi"
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: content-service
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: content-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "256m"
|
|
||||||
memory: "256Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "1024m"
|
|
||||||
memory: "1024Mi"
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: distribution-service
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: distribution-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "256m"
|
|
||||||
memory: "256Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "1024m"
|
|
||||||
memory: "1024Mi"
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: event-service
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: event-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "256m"
|
|
||||||
memory: "256Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "1024m"
|
|
||||||
memory: "1024Mi"
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
|
|
||||||
namespace: kt-event-marketing
|
|
||||||
|
|
||||||
bases:
|
|
||||||
- ../../base
|
|
||||||
|
|
||||||
# Environment-specific labels
|
|
||||||
commonLabels:
|
|
||||||
environment: dev
|
|
||||||
|
|
||||||
# Environment-specific patches
|
|
||||||
patchesStrategicMerge:
|
|
||||||
- user-service-patch.yaml
|
|
||||||
- event-service-patch.yaml
|
|
||||||
- ai-service-patch.yaml
|
|
||||||
- content-service-patch.yaml
|
|
||||||
- distribution-service-patch.yaml
|
|
||||||
- participation-service-patch.yaml
|
|
||||||
- analytics-service-patch.yaml
|
|
||||||
|
|
||||||
# Override image tags for dev environment
|
|
||||||
images:
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/user-service
|
|
||||||
newTag: dev
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/event-service
|
|
||||||
newTag: dev
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/ai-service
|
|
||||||
newTag: dev
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/content-service
|
|
||||||
newTag: dev
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/distribution-service
|
|
||||||
newTag: dev
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/participation-service
|
|
||||||
newTag: dev
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/analytics-service
|
|
||||||
newTag: dev
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: participation-service
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: participation-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "256m"
|
|
||||||
memory: "256Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "1024m"
|
|
||||||
memory: "1024Mi"
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: user-service
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: user-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "256m"
|
|
||||||
memory: "256Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "1024m"
|
|
||||||
memory: "1024Mi"
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: ai-service
|
|
||||||
spec:
|
|
||||||
replicas: 3
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: ai-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "1024m"
|
|
||||||
memory: "1024Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "4096m"
|
|
||||||
memory: "4096Mi"
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: analytics-service
|
|
||||||
spec:
|
|
||||||
replicas: 3
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: analytics-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "1024m"
|
|
||||||
memory: "1024Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "4096m"
|
|
||||||
memory: "4096Mi"
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: content-service
|
|
||||||
spec:
|
|
||||||
replicas: 3
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: content-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "1024m"
|
|
||||||
memory: "1024Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "4096m"
|
|
||||||
memory: "4096Mi"
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: distribution-service
|
|
||||||
spec:
|
|
||||||
replicas: 3
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: distribution-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "1024m"
|
|
||||||
memory: "1024Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "4096m"
|
|
||||||
memory: "4096Mi"
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: event-service
|
|
||||||
spec:
|
|
||||||
replicas: 3
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: event-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "1024m"
|
|
||||||
memory: "1024Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "4096m"
|
|
||||||
memory: "4096Mi"
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
|
|
||||||
namespace: kt-event-marketing
|
|
||||||
|
|
||||||
bases:
|
|
||||||
- ../../base
|
|
||||||
|
|
||||||
# Environment-specific labels
|
|
||||||
commonLabels:
|
|
||||||
environment: prod
|
|
||||||
|
|
||||||
# Environment-specific patches
|
|
||||||
patchesStrategicMerge:
|
|
||||||
- user-service-patch.yaml
|
|
||||||
- event-service-patch.yaml
|
|
||||||
- ai-service-patch.yaml
|
|
||||||
- content-service-patch.yaml
|
|
||||||
- distribution-service-patch.yaml
|
|
||||||
- participation-service-patch.yaml
|
|
||||||
- analytics-service-patch.yaml
|
|
||||||
|
|
||||||
# Override image tags for prod environment
|
|
||||||
images:
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/user-service
|
|
||||||
newTag: prod
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/event-service
|
|
||||||
newTag: prod
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/ai-service
|
|
||||||
newTag: prod
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/content-service
|
|
||||||
newTag: prod
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/distribution-service
|
|
||||||
newTag: prod
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/participation-service
|
|
||||||
newTag: prod
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/analytics-service
|
|
||||||
newTag: prod
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: participation-service
|
|
||||||
spec:
|
|
||||||
replicas: 3
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: participation-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "1024m"
|
|
||||||
memory: "1024Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "4096m"
|
|
||||||
memory: "4096Mi"
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: user-service
|
|
||||||
spec:
|
|
||||||
replicas: 3
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: user-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "1024m"
|
|
||||||
memory: "1024Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "4096m"
|
|
||||||
memory: "4096Mi"
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: ai-service
|
|
||||||
spec:
|
|
||||||
replicas: 2
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: ai-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "512m"
|
|
||||||
memory: "512Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "2048m"
|
|
||||||
memory: "2048Mi"
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: analytics-service
|
|
||||||
spec:
|
|
||||||
replicas: 2
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: analytics-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "512m"
|
|
||||||
memory: "512Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "2048m"
|
|
||||||
memory: "2048Mi"
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: content-service
|
|
||||||
spec:
|
|
||||||
replicas: 2
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: content-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "512m"
|
|
||||||
memory: "512Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "2048m"
|
|
||||||
memory: "2048Mi"
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: distribution-service
|
|
||||||
spec:
|
|
||||||
replicas: 2
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: distribution-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "512m"
|
|
||||||
memory: "512Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "2048m"
|
|
||||||
memory: "2048Mi"
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: event-service
|
|
||||||
spec:
|
|
||||||
replicas: 2
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: event-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "512m"
|
|
||||||
memory: "512Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "2048m"
|
|
||||||
memory: "2048Mi"
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
|
|
||||||
namespace: kt-event-marketing
|
|
||||||
|
|
||||||
bases:
|
|
||||||
- ../../base
|
|
||||||
|
|
||||||
# Environment-specific labels
|
|
||||||
commonLabels:
|
|
||||||
environment: staging
|
|
||||||
|
|
||||||
# Environment-specific patches
|
|
||||||
patchesStrategicMerge:
|
|
||||||
- user-service-patch.yaml
|
|
||||||
- event-service-patch.yaml
|
|
||||||
- ai-service-patch.yaml
|
|
||||||
- content-service-patch.yaml
|
|
||||||
- distribution-service-patch.yaml
|
|
||||||
- participation-service-patch.yaml
|
|
||||||
- analytics-service-patch.yaml
|
|
||||||
|
|
||||||
# Override image tags for staging environment
|
|
||||||
images:
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/user-service
|
|
||||||
newTag: staging
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/event-service
|
|
||||||
newTag: staging
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/ai-service
|
|
||||||
newTag: staging
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/content-service
|
|
||||||
newTag: staging
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/distribution-service
|
|
||||||
newTag: staging
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/participation-service
|
|
||||||
newTag: staging
|
|
||||||
- name: acrdigitalgarage01.azurecr.io/kt-event-marketing/analytics-service
|
|
||||||
newTag: staging
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: participation-service
|
|
||||||
spec:
|
|
||||||
replicas: 2
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: participation-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "512m"
|
|
||||||
memory: "512Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "2048m"
|
|
||||||
memory: "2048Mi"
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: user-service
|
|
||||||
spec:
|
|
||||||
replicas: 2
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: user-service
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "512m"
|
|
||||||
memory: "512Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "2048m"
|
|
||||||
memory: "2048Mi"
|
|
||||||
@@ -1,79 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
"""
|
|
||||||
Copy K8s manifests to Kustomize base directory and remove namespace declarations
|
|
||||||
"""
|
|
||||||
import os
|
|
||||||
import shutil
|
|
||||||
import yaml
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
# Service names
|
|
||||||
SERVICES = [
|
|
||||||
'user-service',
|
|
||||||
'event-service',
|
|
||||||
'ai-service',
|
|
||||||
'content-service',
|
|
||||||
'distribution-service',
|
|
||||||
'participation-service',
|
|
||||||
'analytics-service'
|
|
||||||
]
|
|
||||||
|
|
||||||
# Base directories
|
|
||||||
SOURCE_DIR = Path('deployment/k8s')
|
|
||||||
BASE_DIR = Path('.github/kustomize/base')
|
|
||||||
|
|
||||||
def remove_namespace_from_yaml(content):
|
|
||||||
"""Remove namespace field from YAML content"""
|
|
||||||
docs = list(yaml.safe_load_all(content))
|
|
||||||
|
|
||||||
for doc in docs:
|
|
||||||
if doc and isinstance(doc, dict):
|
|
||||||
if 'metadata' in doc and 'namespace' in doc['metadata']:
|
|
||||||
del doc['metadata']['namespace']
|
|
||||||
|
|
||||||
return yaml.dump_all(docs, default_flow_style=False, sort_keys=False)
|
|
||||||
|
|
||||||
def copy_and_process_file(source_path, dest_path):
|
|
||||||
"""Copy file and remove namespace declaration"""
|
|
||||||
with open(source_path, 'r', encoding='utf-8') as f:
|
|
||||||
content = f.read()
|
|
||||||
|
|
||||||
# Remove namespace from YAML
|
|
||||||
processed_content = remove_namespace_from_yaml(content)
|
|
||||||
|
|
||||||
# Write to destination
|
|
||||||
dest_path.parent.mkdir(parents=True, exist_ok=True)
|
|
||||||
with open(dest_path, 'w', encoding='utf-8') as f:
|
|
||||||
f.write(processed_content)
|
|
||||||
|
|
||||||
print(f"✓ Copied and processed: {source_path} -> {dest_path}")
|
|
||||||
|
|
||||||
def main():
|
|
||||||
print("Starting manifest copy to Kustomize base...")
|
|
||||||
|
|
||||||
# Copy common resources
|
|
||||||
print("\n[Common Resources]")
|
|
||||||
common_dir = SOURCE_DIR / 'common'
|
|
||||||
for file in ['cm-common.yaml', 'secret-common.yaml', 'secret-imagepull.yaml', 'ingress.yaml']:
|
|
||||||
source = common_dir / file
|
|
||||||
if source.exists():
|
|
||||||
dest = BASE_DIR / file
|
|
||||||
copy_and_process_file(source, dest)
|
|
||||||
|
|
||||||
# Copy service-specific resources
|
|
||||||
print("\n[Service Resources]")
|
|
||||||
for service in SERVICES:
|
|
||||||
service_dir = SOURCE_DIR / service
|
|
||||||
if not service_dir.exists():
|
|
||||||
print(f"⚠ Service directory not found: {service_dir}")
|
|
||||||
continue
|
|
||||||
|
|
||||||
print(f"\nProcessing {service}...")
|
|
||||||
for file in service_dir.glob('*.yaml'):
|
|
||||||
dest = BASE_DIR / f"{service}-{file.name}"
|
|
||||||
copy_and_process_file(file, dest)
|
|
||||||
|
|
||||||
print("\n✅ All manifests copied to base directory!")
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main()
|
|
||||||
@@ -1,181 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
set -e
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Backend Services Deployment Script for AKS
|
|
||||||
#
|
|
||||||
# Usage:
|
|
||||||
# ./deploy.sh <environment> [service-name]
|
|
||||||
#
|
|
||||||
# Arguments:
|
|
||||||
# environment - Target environment (dev, staging, prod)
|
|
||||||
# service-name - Specific service to deploy (optional, deploys all if not specified)
|
|
||||||
#
|
|
||||||
# Examples:
|
|
||||||
# ./deploy.sh dev # Deploy all services to dev
|
|
||||||
# ./deploy.sh prod user-service # Deploy only user-service to prod
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
# Color output
|
|
||||||
RED='\033[0;31m'
|
|
||||||
GREEN='\033[0;32m'
|
|
||||||
YELLOW='\033[1;33m'
|
|
||||||
NC='\033[0m' # No Color
|
|
||||||
|
|
||||||
# Functions
|
|
||||||
log_info() {
|
|
||||||
echo -e "${GREEN}[INFO]${NC} $1"
|
|
||||||
}
|
|
||||||
|
|
||||||
log_warn() {
|
|
||||||
echo -e "${YELLOW}[WARN]${NC} $1"
|
|
||||||
}
|
|
||||||
|
|
||||||
log_error() {
|
|
||||||
echo -e "${RED}[ERROR]${NC} $1"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Validate arguments
|
|
||||||
if [ $# -lt 1 ]; then
|
|
||||||
log_error "Usage: $0 <environment> [service-name]"
|
|
||||||
log_error "Environment must be one of: dev, staging, prod"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
ENVIRONMENT=$1
|
|
||||||
SERVICE=${2:-all}
|
|
||||||
|
|
||||||
# Validate environment
|
|
||||||
if [[ ! "$ENVIRONMENT" =~ ^(dev|staging|prod)$ ]]; then
|
|
||||||
log_error "Invalid environment: $ENVIRONMENT"
|
|
||||||
log_error "Must be one of: dev, staging, prod"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Load environment variables
|
|
||||||
ENV_FILE=".github/config/deploy_env_vars_${ENVIRONMENT}"
|
|
||||||
if [ ! -f "$ENV_FILE" ]; then
|
|
||||||
log_error "Environment file not found: $ENV_FILE"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
source "$ENV_FILE"
|
|
||||||
log_info "Loaded environment configuration: $ENVIRONMENT"
|
|
||||||
|
|
||||||
# Service list
|
|
||||||
SERVICES=(
|
|
||||||
"user-service"
|
|
||||||
"event-service"
|
|
||||||
"ai-service"
|
|
||||||
"content-service"
|
|
||||||
"distribution-service"
|
|
||||||
"participation-service"
|
|
||||||
"analytics-service"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Validate service if specified
|
|
||||||
if [ "$SERVICE" != "all" ]; then
|
|
||||||
if [[ ! " ${SERVICES[@]} " =~ " ${SERVICE} " ]]; then
|
|
||||||
log_error "Invalid service: $SERVICE"
|
|
||||||
log_error "Must be one of: ${SERVICES[*]}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
SERVICES=("$SERVICE")
|
|
||||||
fi
|
|
||||||
|
|
||||||
log_info "Services to deploy: ${SERVICES[*]}"
|
|
||||||
|
|
||||||
# Check prerequisites
|
|
||||||
log_info "Checking prerequisites..."
|
|
||||||
|
|
||||||
if ! command -v az &> /dev/null; then
|
|
||||||
log_error "Azure CLI not found. Please install Azure CLI."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! command -v kubectl &> /dev/null; then
|
|
||||||
log_error "kubectl not found. Please install kubectl."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! command -v kustomize &> /dev/null; then
|
|
||||||
log_error "kustomize not found. Please install kustomize."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Azure login check
|
|
||||||
log_info "Checking Azure authentication..."
|
|
||||||
if ! az account show &> /dev/null; then
|
|
||||||
log_error "Not logged in to Azure. Please run 'az login'"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Get AKS credentials
|
|
||||||
log_info "Getting AKS credentials..."
|
|
||||||
az aks get-credentials \
|
|
||||||
--resource-group "$RESOURCE_GROUP" \
|
|
||||||
--name "$AKS_CLUSTER" \
|
|
||||||
--overwrite-existing
|
|
||||||
|
|
||||||
# Check namespace
|
|
||||||
log_info "Checking namespace: $NAMESPACE"
|
|
||||||
if ! kubectl get namespace "$NAMESPACE" &> /dev/null; then
|
|
||||||
log_warn "Namespace $NAMESPACE does not exist. Creating..."
|
|
||||||
kubectl create namespace "$NAMESPACE"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Build and deploy with Kustomize
|
|
||||||
OVERLAY_DIR=".github/kustomize/overlays/${ENVIRONMENT}"
|
|
||||||
if [ ! -d "$OVERLAY_DIR" ]; then
|
|
||||||
log_error "Kustomize overlay directory not found: $OVERLAY_DIR"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
log_info "Building Kustomize manifests for $ENVIRONMENT..."
|
|
||||||
cd "$OVERLAY_DIR"
|
|
||||||
|
|
||||||
# Update image tags
|
|
||||||
log_info "Updating image tags to: $ENVIRONMENT"
|
|
||||||
kustomize edit set image \
|
|
||||||
${ACR_NAME}.azurecr.io/kt-event-marketing/user-service:${ENVIRONMENT} \
|
|
||||||
${ACR_NAME}.azurecr.io/kt-event-marketing/event-service:${ENVIRONMENT} \
|
|
||||||
${ACR_NAME}.azurecr.io/kt-event-marketing/ai-service:${ENVIRONMENT} \
|
|
||||||
${ACR_NAME}.azurecr.io/kt-event-marketing/content-service:${ENVIRONMENT} \
|
|
||||||
${ACR_NAME}.azurecr.io/kt-event-marketing/distribution-service:${ENVIRONMENT} \
|
|
||||||
${ACR_NAME}.azurecr.io/kt-event-marketing/participation-service:${ENVIRONMENT} \
|
|
||||||
${ACR_NAME}.azurecr.io/kt-event-marketing/analytics-service:${ENVIRONMENT}
|
|
||||||
|
|
||||||
# Apply manifests
|
|
||||||
log_info "Applying manifests to AKS..."
|
|
||||||
kustomize build . | kubectl apply -f -
|
|
||||||
|
|
||||||
cd - > /dev/null
|
|
||||||
|
|
||||||
# Wait for deployments
|
|
||||||
log_info "Waiting for deployments to be ready..."
|
|
||||||
for service in "${SERVICES[@]}"; do
|
|
||||||
log_info "Waiting for $service deployment..."
|
|
||||||
if ! kubectl rollout status deployment/"$service" -n "$NAMESPACE" --timeout=5m; then
|
|
||||||
log_error "Deployment of $service failed!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
log_info "✓ $service is ready"
|
|
||||||
done
|
|
||||||
|
|
||||||
# Verify deployment
|
|
||||||
log_info "Verifying deployment..."
|
|
||||||
echo ""
|
|
||||||
echo "=== Pods Status ==="
|
|
||||||
kubectl get pods -n "$NAMESPACE" -l app.kubernetes.io/part-of=kt-event-marketing
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "=== Services ==="
|
|
||||||
kubectl get svc -n "$NAMESPACE"
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "=== Ingress ==="
|
|
||||||
kubectl get ingress -n "$NAMESPACE"
|
|
||||||
|
|
||||||
log_info "Deployment completed successfully!"
|
|
||||||
log_info "Environment: $ENVIRONMENT"
|
|
||||||
log_info "Services: ${SERVICES[*]}"
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
SERVICES=(user-service event-service ai-service content-service distribution-service participation-service analytics-service)
|
|
||||||
|
|
||||||
# Staging patches (2 replicas, increased resources)
|
|
||||||
for service in "${SERVICES[@]}"; do
|
|
||||||
cat > ".github/kustomize/overlays/staging/${service}-patch.yaml" << YAML
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: ${service}
|
|
||||||
spec:
|
|
||||||
replicas: 2
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: ${service}
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "512m"
|
|
||||||
memory: "512Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "2048m"
|
|
||||||
memory: "2048Mi"
|
|
||||||
YAML
|
|
||||||
done
|
|
||||||
|
|
||||||
# Prod patches (3 replicas, maximum resources)
|
|
||||||
for service in "${SERVICES[@]}"; do
|
|
||||||
cat > ".github/kustomize/overlays/prod/${service}-patch.yaml" << YAML
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: ${service}
|
|
||||||
spec:
|
|
||||||
replicas: 3
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: ${service}
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "1024m"
|
|
||||||
memory: "1024Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "4096m"
|
|
||||||
memory: "4096Mi"
|
|
||||||
YAML
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "✅ Generated all patch files for staging and prod"
|
|
||||||
@@ -1,207 +0,0 @@
|
|||||||
name: Backend CI/CD Pipeline
|
|
||||||
|
|
||||||
on:
|
|
||||||
# push:
|
|
||||||
# branches:
|
|
||||||
# - develop
|
|
||||||
# - main
|
|
||||||
# paths:
|
|
||||||
# - '*-service/**'
|
|
||||||
# - '.github/workflows/backend-cicd.yaml'
|
|
||||||
# - '.github/kustomize/**'
|
|
||||||
pull_request:
|
|
||||||
branches:
|
|
||||||
- develop
|
|
||||||
- main
|
|
||||||
paths:
|
|
||||||
- '*-service/**'
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
environment:
|
|
||||||
description: 'Target environment'
|
|
||||||
required: true
|
|
||||||
type: choice
|
|
||||||
options:
|
|
||||||
- dev
|
|
||||||
- staging
|
|
||||||
- prod
|
|
||||||
service:
|
|
||||||
description: 'Service to deploy (all for all services)'
|
|
||||||
required: true
|
|
||||||
default: 'all'
|
|
||||||
|
|
||||||
env:
|
|
||||||
ACR_NAME: acrdigitalgarage01
|
|
||||||
RESOURCE_GROUP: rg-digitalgarage-01
|
|
||||||
AKS_CLUSTER: aks-digitalgarage-01
|
|
||||||
NAMESPACE: kt-event-marketing
|
|
||||||
JDK_VERSION: '21'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
detect-changes:
|
|
||||||
name: Detect Changed Services
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
outputs:
|
|
||||||
services: ${{ steps.detect.outputs.services }}
|
|
||||||
environment: ${{ steps.env.outputs.environment }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Determine environment
|
|
||||||
id: env
|
|
||||||
run: |
|
|
||||||
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
|
|
||||||
echo "environment=${{ github.event.inputs.environment }}" >> $GITHUB_OUTPUT
|
|
||||||
elif [ "${{ github.ref }}" = "refs/heads/main" ]; then
|
|
||||||
echo "environment=prod" >> $GITHUB_OUTPUT
|
|
||||||
elif [ "${{ github.ref }}" = "refs/heads/develop" ]; then
|
|
||||||
echo "environment=dev" >> $GITHUB_OUTPUT
|
|
||||||
else
|
|
||||||
echo "environment=dev" >> $GITHUB_OUTPUT
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Detect changed services
|
|
||||||
id: detect
|
|
||||||
run: |
|
|
||||||
if [ "${{ github.event_name }}" = "workflow_dispatch" ] && [ "${{ github.event.inputs.service }}" != "all" ]; then
|
|
||||||
echo "services=[\"${{ github.event.inputs.service }}\"]" >> $GITHUB_OUTPUT
|
|
||||||
elif [ "${{ github.event_name }}" = "workflow_dispatch" ] && [ "${{ github.event.inputs.service }}" = "all" ]; then
|
|
||||||
echo "services=[\"user-service\",\"event-service\",\"ai-service\",\"content-service\",\"distribution-service\",\"participation-service\",\"analytics-service\"]" >> $GITHUB_OUTPUT
|
|
||||||
else
|
|
||||||
CHANGED_SERVICES=$(git diff --name-only ${{ github.event.before }} ${{ github.sha }} | \
|
|
||||||
grep -E '^(user|event|ai|content|distribution|participation|analytics)-service/' | \
|
|
||||||
cut -d'/' -f1 | sort -u | \
|
|
||||||
jq -R -s -c 'split("\n") | map(select(length > 0))')
|
|
||||||
|
|
||||||
if [ "$CHANGED_SERVICES" = "[]" ] || [ -z "$CHANGED_SERVICES" ]; then
|
|
||||||
echo "services=[\"user-service\",\"event-service\",\"ai-service\",\"content-service\",\"distribution-service\",\"participation-service\",\"analytics-service\"]" >> $GITHUB_OUTPUT
|
|
||||||
else
|
|
||||||
echo "services=$CHANGED_SERVICES" >> $GITHUB_OUTPUT
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
build-and-push:
|
|
||||||
name: Build and Push - ${{ matrix.service }}
|
|
||||||
needs: detect-changes
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
service: ${{ fromJson(needs.detect-changes.outputs.services) }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set up JDK ${{ env.JDK_VERSION }}
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
java-version: ${{ env.JDK_VERSION }}
|
|
||||||
distribution: 'temurin'
|
|
||||||
cache: 'gradle'
|
|
||||||
|
|
||||||
- name: Grant execute permission for gradlew
|
|
||||||
run: chmod +x gradlew
|
|
||||||
|
|
||||||
- name: Build with Gradle
|
|
||||||
run: ./gradlew ${{ matrix.service }}:build -x test
|
|
||||||
|
|
||||||
# - name: Run tests
|
|
||||||
# run: ./gradlew ${{ matrix.service }}:test
|
|
||||||
|
|
||||||
- name: Build JAR
|
|
||||||
run: ./gradlew ${{ matrix.service }}:bootJar
|
|
||||||
|
|
||||||
- name: Log in to Azure Container Registry
|
|
||||||
uses: docker/login-action@v3
|
|
||||||
with:
|
|
||||||
registry: ${{ env.ACR_NAME }}.azurecr.io
|
|
||||||
username: ${{ secrets.ACR_USERNAME }}
|
|
||||||
password: ${{ secrets.ACR_PASSWORD }}
|
|
||||||
|
|
||||||
- name: Build and push Docker image
|
|
||||||
uses: docker/build-push-action@v5
|
|
||||||
with:
|
|
||||||
context: ./${{ matrix.service }}
|
|
||||||
file: ./${{ matrix.service }}/Dockerfile
|
|
||||||
push: true
|
|
||||||
tags: |
|
|
||||||
${{ env.ACR_NAME }}.azurecr.io/kt-event-marketing/${{ matrix.service }}:${{ needs.detect-changes.outputs.environment }}
|
|
||||||
${{ env.ACR_NAME }}.azurecr.io/kt-event-marketing/${{ matrix.service }}:${{ github.sha }}
|
|
||||||
${{ env.ACR_NAME }}.azurecr.io/kt-event-marketing/${{ matrix.service }}:latest
|
|
||||||
|
|
||||||
deploy:
|
|
||||||
name: Deploy to AKS - ${{ needs.detect-changes.outputs.environment }}
|
|
||||||
needs: [detect-changes, build-and-push]
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
environment: ${{ needs.detect-changes.outputs.environment }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Azure login
|
|
||||||
uses: azure/login@v1
|
|
||||||
with:
|
|
||||||
creds: ${{ secrets.AZURE_CREDENTIALS }}
|
|
||||||
|
|
||||||
- name: Get AKS credentials
|
|
||||||
run: |
|
|
||||||
az aks get-credentials \
|
|
||||||
--resource-group ${{ env.RESOURCE_GROUP }} \
|
|
||||||
--name ${{ env.AKS_CLUSTER }} \
|
|
||||||
--overwrite-existing
|
|
||||||
|
|
||||||
- name: Setup Kustomize
|
|
||||||
uses: imranismail/setup-kustomize@v2
|
|
||||||
|
|
||||||
- name: Deploy with Kustomize
|
|
||||||
run: |
|
|
||||||
cd .github/kustomize/overlays/${{ needs.detect-changes.outputs.environment }}
|
|
||||||
kustomize edit set image \
|
|
||||||
acrdigitalgarage01.azurecr.io/kt-event-marketing/user-service:${{ needs.detect-changes.outputs.environment }} \
|
|
||||||
acrdigitalgarage01.azurecr.io/kt-event-marketing/event-service:${{ needs.detect-changes.outputs.environment }} \
|
|
||||||
acrdigitalgarage01.azurecr.io/kt-event-marketing/ai-service:${{ needs.detect-changes.outputs.environment }} \
|
|
||||||
acrdigitalgarage01.azurecr.io/kt-event-marketing/content-service:${{ needs.detect-changes.outputs.environment }} \
|
|
||||||
acrdigitalgarage01.azurecr.io/kt-event-marketing/distribution-service:${{ needs.detect-changes.outputs.environment }} \
|
|
||||||
acrdigitalgarage01.azurecr.io/kt-event-marketing/participation-service:${{ needs.detect-changes.outputs.environment }} \
|
|
||||||
acrdigitalgarage01.azurecr.io/kt-event-marketing/analytics-service:${{ needs.detect-changes.outputs.environment }}
|
|
||||||
|
|
||||||
kustomize build . | kubectl apply -f -
|
|
||||||
|
|
||||||
- name: Wait for deployment rollout
|
|
||||||
run: |
|
|
||||||
for service in $(echo '${{ needs.detect-changes.outputs.services }}' | jq -r '.[]'); do
|
|
||||||
echo "Waiting for ${service} deployment..."
|
|
||||||
kubectl rollout status deployment/${service} -n ${{ env.NAMESPACE }} --timeout=5m
|
|
||||||
done
|
|
||||||
|
|
||||||
- name: Verify deployment
|
|
||||||
run: |
|
|
||||||
echo "=== Pods Status ==="
|
|
||||||
kubectl get pods -n ${{ env.NAMESPACE }} -l app.kubernetes.io/part-of=kt-event-marketing
|
|
||||||
|
|
||||||
echo "=== Services ==="
|
|
||||||
kubectl get svc -n ${{ env.NAMESPACE }}
|
|
||||||
|
|
||||||
echo "=== Ingress ==="
|
|
||||||
kubectl get ingress -n ${{ env.NAMESPACE }}
|
|
||||||
|
|
||||||
notify:
|
|
||||||
name: Notify Deployment Result
|
|
||||||
needs: [detect-changes, deploy]
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
if: always()
|
|
||||||
steps:
|
|
||||||
- name: Deployment Success
|
|
||||||
if: needs.deploy.result == 'success'
|
|
||||||
run: |
|
|
||||||
echo "✅ Deployment to ${{ needs.detect-changes.outputs.environment }} succeeded!"
|
|
||||||
echo "Services: ${{ needs.detect-changes.outputs.services }}"
|
|
||||||
|
|
||||||
- name: Deployment Failure
|
|
||||||
if: needs.deploy.result == 'failure'
|
|
||||||
run: |
|
|
||||||
echo "❌ Deployment to ${{ needs.detect-changes.outputs.environment }} failed!"
|
|
||||||
echo "Services: ${{ needs.detect-changes.outputs.services }}"
|
|
||||||
exit 1
|
|
||||||
-10
@@ -8,7 +8,6 @@ yarn-error.log*
|
|||||||
# IDE
|
# IDE
|
||||||
.idea/
|
.idea/
|
||||||
.vscode/
|
.vscode/
|
||||||
.run/
|
|
||||||
*.swp
|
*.swp
|
||||||
*.swo
|
*.swo
|
||||||
*~
|
*~
|
||||||
@@ -32,13 +31,6 @@ logs/
|
|||||||
logs/
|
logs/
|
||||||
*.log
|
*.log
|
||||||
|
|
||||||
# Gradle
|
|
||||||
.gradle/
|
|
||||||
gradle-app.setting
|
|
||||||
!gradle-wrapper.jar
|
|
||||||
!gradle-wrapper.properties
|
|
||||||
.gradletasknamecache
|
|
||||||
|
|
||||||
# Environment
|
# Environment
|
||||||
.env
|
.env
|
||||||
.env.local
|
.env.local
|
||||||
@@ -61,5 +53,3 @@ k8s/**/*-local.yaml
|
|||||||
|
|
||||||
# Gradle (로컬 환경 설정)
|
# Gradle (로컬 환경 설정)
|
||||||
gradle.properties
|
gradle.properties
|
||||||
*.hprof
|
|
||||||
test-data.json
|
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 94 KiB |
@@ -1,31 +0,0 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
|
||||||
<configuration default="false" name="AiServiceApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" nameIsGenerated="true">
|
|
||||||
<option name="ACTIVE_PROFILES" />
|
|
||||||
<module name="kt-event-marketing.ai-service.main" />
|
|
||||||
<option name="SPRING_BOOT_MAIN_CLASS" value="com.kt.ai.AiApplication" />
|
|
||||||
<extension name="coverage">
|
|
||||||
<pattern>
|
|
||||||
<option name="PATTERN" value="com.kt.ai.*" />
|
|
||||||
<option name="ENABLED" value="true" />
|
|
||||||
</pattern>
|
|
||||||
</extension>
|
|
||||||
<envs>
|
|
||||||
<env name="SERVER_PORT" value="8081" />
|
|
||||||
<env name="DB_HOST" value="4.230.112.141" />
|
|
||||||
<env name="DB_PORT" value="5432" />
|
|
||||||
<env name="DB_NAME" value="aidb" />
|
|
||||||
<env name="DB_USERNAME" value="eventuser" />
|
|
||||||
<env name="DB_PASSWORD" value="Hi5Jessica!" />
|
|
||||||
<env name="REDIS_HOST" value="20.214.210.71" />
|
|
||||||
<env name="REDIS_PORT" value="6379" />
|
|
||||||
<env name="REDIS_PASSWORD" value="Hi5Jessica!" />
|
|
||||||
<env name="KAFKA_BOOTSTRAP_SERVERS" value="4.230.50.63:9092" />
|
|
||||||
<env name="KAFKA_CONSUMER_GROUP" value="ai" />
|
|
||||||
<env name="JPA_DDL_AUTO" value="update" />
|
|
||||||
<env name="JPA_SHOW_SQL" value="false" />
|
|
||||||
</envs>
|
|
||||||
<method v="2">
|
|
||||||
<option name="Make" enabled="true" />
|
|
||||||
</method>
|
|
||||||
</configuration>
|
|
||||||
</component>
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
|
||||||
<configuration default="false" name="AnalyticsServiceApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" nameIsGenerated="true">
|
|
||||||
<option name="ACTIVE_PROFILES" />
|
|
||||||
<module name="kt-event-marketing.analytics-service.main" />
|
|
||||||
<option name="SPRING_BOOT_MAIN_CLASS" value="com.kt.analytics.AnalyticsApplication" />
|
|
||||||
<extension name="coverage">
|
|
||||||
<pattern>
|
|
||||||
<option name="PATTERN" value="com.kt.analytics.*" />
|
|
||||||
<option name="ENABLED" value="true" />
|
|
||||||
</pattern>
|
|
||||||
</extension>
|
|
||||||
<envs>
|
|
||||||
<env name="SERVER_PORT" value="8087" />
|
|
||||||
<env name="DB_HOST" value="4.230.49.9" />
|
|
||||||
<env name="DB_PORT" value="5432" />
|
|
||||||
<env name="DB_NAME" value="analyticdb" />
|
|
||||||
<env name="DB_USERNAME" value="eventuser" />
|
|
||||||
<env name="DB_PASSWORD" value="Hi5Jessica!" />
|
|
||||||
<env name="REDIS_HOST" value="20.214.210.71" />
|
|
||||||
<env name="REDIS_PORT" value="6379" />
|
|
||||||
<env name="REDIS_PASSWORD" value="Hi5Jessica!" />
|
|
||||||
<env name="KAFKA_BOOTSTRAP_SERVERS" value="4.230.50.63:9092" />
|
|
||||||
<env name="KAFKA_CONSUMER_GROUP" value="analytic" />
|
|
||||||
<env name="JPA_DDL_AUTO" value="update" />
|
|
||||||
<env name="JPA_SHOW_SQL" value="false" />
|
|
||||||
</envs>
|
|
||||||
<method v="2">
|
|
||||||
<option name="Make" enabled="true" />
|
|
||||||
</method>
|
|
||||||
</configuration>
|
|
||||||
</component>
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user