🐟swkoo.kr

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 기반 전체 인프라 구성

Success/ActiveCI ProcessCD ProcessFuture/Planned

데이터/이벤트 흐름

  1. main push → GitHub Actions 가 backend/frontend 이미지 빌드, OCIR 로 push.
  2. workflow 가 deploy/base manifest 의 image tag 를 새 SHA 로 갱신 + commit.
  3. ArgoCD 가 새 commit 감지 → cluster sync.
  4. Prometheus 가 새 Pod 의 메트릭 수집 시작 → Observatory 가 timeline 으로 시각화.

실패/알림 흐름

  1. CI 실패 → image 가 생성 안 됨, 다음 단계 자동 차단.
  2. sync 실패 / health 저하 → Alertmanager → Discord.
  3. /deploy/[login]/[repo] 상태 화면이 실패 reason 과 사용자 조치를 함께 표시.

Trade-offs

선택하지 않은 옵션을 기록한다.

  • 고가용성 미구현

    단일 노드 환경에서 운영 복잡도 대비 효과가 낮다.

    노드 장애 시 서비스 중단을 감수.

  • Managed Kubernetes 미사용

    운영 범위를 명확히 하고 비용 통제를 우선.

    업그레이드/패치 책임이 운영자에게 집중.

  • 단일 클러스터 전략

    리소스 제약과 운영 복잡도 최소화 우선.

    테넌트 자원 격리에 한계가 존재.

  • Cloud Monitoring 미사용

    관측 스택을 직접 운영해 알람 기준을 주도.

    알람 튜닝과 노이즈 감소 책임을 직접 감당.