ABOUT
A GitOps deployment system, running on a free-tier cloud.
GitHub App, Kubernetes, ArgoCD, OCI 를 엮어 단일 운영자가 다수 앱을 배포·관측하는 사이드 프로젝트.
OCI A1.Flex · single-node k3s · 2 OCPU / 12 GB Free Tier target
Core claims
Repo to Runtime
GitHub repo 를 선택하면 Dockerfile · GitHub Actions workflow · k8s manifest · ArgoCD Application 까지 자동으로 만들어진다.
GitOps by Default
클러스터 상태는 git commit + ArgoCD Application 의 함수. 롤백은 git revert 한 줄.
Tenant-aware
사용자별 namespace + NetworkPolicy default-deny + Pod Security Admission restricted + ResourceQuota.
Observable Operations
pipeline timeline · image scan · resource report · OCIR retention · Discord alert.
Technology
키워드를 누르면 어디에 쓰였는지 펼쳐진다.
System patterns
설계 의도와 그 결과를 항목별로.
Architecture
코드 변경부터 운영 알람까지 한 흐름.
OCI IaaS 기반 전체 인프라 구성
데이터/이벤트 흐름
- main push → GitHub Actions 가 backend/frontend 이미지 빌드, OCIR 로 push.
- workflow 가 deploy/base manifest 의 image tag 를 새 SHA 로 갱신 + commit.
- ArgoCD 가 새 commit 감지 → cluster sync.
- Prometheus 가 새 Pod 의 메트릭 수집 시작 → Observatory 가 timeline 으로 시각화.
실패/알림 흐름
- CI 실패 → image 가 생성 안 됨, 다음 단계 자동 차단.
- sync 실패 / health 저하 → Alertmanager → Discord.
- /deploy/[login]/[repo] 상태 화면이 실패 reason 과 사용자 조치를 함께 표시.
Trade-offs
선택하지 않은 옵션을 기록한다.
고가용성 미구현
단일 노드 환경에서 운영 복잡도 대비 효과가 낮다.
↳ 노드 장애 시 서비스 중단을 감수.
Managed Kubernetes 미사용
운영 범위를 명확히 하고 비용 통제를 우선.
↳ 업그레이드/패치 책임이 운영자에게 집중.
단일 클러스터 전략
리소스 제약과 운영 복잡도 최소화 우선.
↳ 테넌트 자원 격리에 한계가 존재.
Cloud Monitoring 미사용
관측 스택을 직접 운영해 알람 기준을 주도.
↳ 알람 튜닝과 노이즈 감소 책임을 직접 감당.