On-premises 배포¶
.github/workflows/onprem-cd.yml은 develop push 또는 수동 실행에서 image를
build/push한 뒤, 외부 holamago/mago-onprem-infra 저장소의 main branch에 있는
서비스별 image.yaml을 직접 갱신합니다. Workflow는 cluster에 배포하지 않습니다.
Workflow의 성공 메시지는 Argo CD 관리자가 manual sync할 것을 명시합니다.
sequenceDiagram
actor Developer
participant Action as CD (on-prem)
participant GAR as Artifact Registry
participant Infra as mago-onprem-infra/main
participant Argo as Argo CD
actor Admin
Developer->>Action: develop push 또는 workflow_dispatch
Action->>GAR: 12자 source SHA image push
Action->>Infra: image.yaml commit/push
Argo->>Infra: desired tag 읽기
Argo-->>Admin: diff / OutOfSync
Admin->>Argo: sync
저장소별 책임¶
| 위치 | 현재 책임 |
|---|---|
| 이 저장소 | 애플리케이션, Chart, deploy/values-onprem.yaml, image build workflow |
mago-onprem-infra |
Argo CD Application/override와 서비스별 image.yaml |
| 관리자 | Argo CD diff 확인과 실제 sync |
Workflow가 갱신하는 경로:
Workflow는 GitHub App token으로 외부 저장소를 checkout하고 HEAD:main을 직접
push합니다. 실패 시 fetch/rebase 후 최대 5회 재시도합니다. PR을 만들지 않으므로
외부 main ruleset이 해당 GitHub App push를 허용해야 합니다.
현재 runtime 값¶
| 항목 | 값 |
|---|---|
| Application/release identity | sohri-graph-builder-onprem |
| Image | asia-northeast3-docker.pkg.dev/mago-services/mago/sohri-graph-builder |
| Image tag | source commit SHA 앞 12자리 |
| Replica | 기본값 1 |
| Service | ClusterIP :59212 |
| Runtime Secret | sohri-graph-builder-openai, key OPENAI_API_KEY |
| Image pull Secret | gcp-artifact-registry |
| Skill Runtime | http://sohri-skill-runtime:59213 |
| ExternalSecret / NEG / Ingress | 비활성 |
| HPA / PDB | 기본 비활성 |
Ingress를 켜면 /dm(/|$)(.*)를 /$2로 rewrite합니다. Skill Runtime이 없어도 Pod
자체는 시작할 수 있지만 Skill 호출은 실패·fallback 경로로 들어갑니다.
필요한 credential¶
Workflow secrets:
GCP_ARTIFACT_REGISTRY_WRITER_KEYONPREM_INFRA_APP_IDONPREM_INFRA_APP_PRIVATE_KEY
Cluster secrets:
gcp-artifact-registrysohri-graph-builder-openai의OPENAI_API_KEY
절차¶
develop에 변경을 반영합니다.CD (on-prem)의 image push와 외부image.yamlcommit을 확인합니다.- Argo CD가 실제로 이 저장소의 Chart/
values-onprem.yaml과 외부 image values를 조합하는지 확인합니다. - Diff에서 image tag, replica, Secret, ConfigMap과 Service identity를 확인합니다.
- 관리자가 sync한 뒤 rollout과 API/Skill 연결을 검증합니다.
현재 제한¶
- 이 저장소는 외부 Argo CD Application의 source revision, values 조합 또는 manual sync 설정을 검증하지 않습니다.
deploy/values-onprem.yaml자체의 tag는latest이며 실제 immutable tag는 외부image.yamloverlay에 의존합니다.dm/tests/test_deploy_contract.py의 on-prem 기대값은 현재 workflow와 불일치합니다. 실제 workflow는 서비스 저장소 branch나 로컬deploy/values-onprem-image.yaml을 갱신하지 않습니다.