Applications

CD repo는 source repo가 publish한 deployable image를 Kubernetes workload로 표현합니다.

각 app은 catalog base를 갖고, 환경 overlay에서 image tag와 runtime 차이를 조정합니다. 이 방식은 app manifest의 공통 구조와 환경별 정책을 분리합니다.

1. Deployable Apps

현재 CD repo가 다루는 app은 다음과 같습니다.

App Runtime shape Image repository
dev-guide-docs Deployment + Service ghcr.io/tirosh-chain/guide/dev-guide-docs
patient-risk-python-api Deployment + Service ghcr.io/tirosh-chain/guide/patient-risk-python-api
patient-risk-web Deployment + Service ghcr.io/tirosh-chain/guide/patient-risk-web
risk-monitor-operator Job ghcr.io/tirosh-chain/guide/risk-monitor-operator
signal-device-simulator Deployment ghcr.io/tirosh-chain/guide/signal-device-simulator

2. Web and API Boundary

patient-risk-web만 외부 app host로 노출합니다.

Browser는 같은 origin의 /api/를 호출하고, web container의 Nginx가 namespace 내부의 patient-risk-python-api:8080으로 proxy합니다. 그래서 API service를 별도 public host로 열지 않습니다.

3. Docs Boundary

dev-guide-docs는 static docs image입니다.

MkDocs는 runtime에서 실행하지 않습니다. Source repo workflow가 MkDocs output을 static file로 build하고, Nginx image가 그 결과만 서빙합니다.

4. Operator Boundary

risk-monitor-operator는 현재 demo manifest를 읽고 reconcile status를 확인하는 Job입니다.

장시간 실행되는 controller Deployment가 아니므로 CD repo에서는 Job으로 선언합니다. 나중에 실제 controller loop를 운영하면 Deployment나 controller-specific manifest로 바꿀 수 있습니다.

5. Simulator Boundary

signal-device-simulator는 dev 환경에서 synthetic SignalPacket을 계속 전송하는 demo helper입니다.

이 app은 clinical logic을 계산하지 않습니다. Source repo의 signal fixture를 transport payload로 바꾸고, patient-risk-python-apiPOST /signal-packets endpoint로 주기적으로 전송합니다. stg는 release image가 준비된 뒤 별도 promotion PR에서 붙입니다.