FishBase Dashboard의 Helm 차트 및 ArgoCD 배포 설정입니다.
config/
└── charts/
└── fishbase/ # Helm 차트
├── Chart.yaml
├── values.yaml
├── values-dev.yaml
├── values-prod.yaml
└── templates/
- Kubernetes 클러스터
- ArgoCD (argocd.heeho.net)
- External Secrets Operator
- CloudNativePG Operator (개발 환경)
- Cert-manager (wildcard.heeho.net 인증서)
vault kv put secret/fishbase/dev \
database_url="postgresql://fishuser:[email protected]:5432/fishbase?schema=public"vault kv put secret/fishbase/prod \
database_url="postgresql://username:password@your-rds-endpoint:5432/fishbase?schema=public"ArgoCD Application은 클러스터 레벨에서 별도로 관리됩니다. 클러스터 관리자는 다음과 같은 설정으로 Application을 생성해야 합니다:
- Application Name: fishbase-dev
- Repository: https://github.com/infograb/fishbase-dashboard-config
- Path: charts/fishbase
- Target Revision: main
- Values Files: values-dev.yaml
- Destination Namespace: fishbase-dev
- Application Name: fishbase-prod
- Repository: https://github.com/infograb/fishbase-dashboard-config
- Path: charts/fishbase
- Target Revision: main
- Values Files: values-prod.yaml
- Destination Namespace: fishbase-prod
cd config/charts/fishbase
# 차트 검증
helm lint .
# 템플릿 렌더링 확인
helm template fishbase-dev . -f values-dev.yaml
helm template fishbase-prod . -f values-prod.yaml- URL: https://fishbase-dev.heeho.net
- 네임스페이스: fishbase-dev
- 데이터베이스: CloudNativePG (클러스터 내부)
- 레플리카: 2개
- 리소스: 낮음 (50m CPU, 128Mi Memory)
- URL: https://fishbase.heeho.net
- 네임스페이스: fishbase-prod
- 데이터베이스: 외부 관리형 DB
- 레플리카: 3개 (HPA로 10개까지 확장)
- 리소스: 높음 (100m-1000m CPU, 256Mi-1Gi Memory)
ArgoCD Image Updater가 자동으로 새 이미지를 감지하고 배포합니다:
- 개발:
ghcr.io/infograb/fishbase-dashboard:dev - 운영:
ghcr.io/infograb/fishbase-dashboard:latest및 semver 태그
# Secret Store 상태 확인
kubectl describe secretstore -n fishbase-dev
# External Secret 상태 확인
kubectl describe externalsecret -n fishbase-dev# 클러스터 상태
kubectl get cluster -n fishbase-dev
# Pod 로그
kubectl logs -n fishbase-dev fishbase-dev-postgres-1# 애플리케이션 상태
argocd app get fishbase-dev
argocd app get fishbase-prod
# 수동 동기화
argocd app sync fishbase-dev
argocd app sync fishbase-prod