Enable auth-service/api-gateway on production, build their images in CI
This commit is contained in:
+24
-17
@@ -8,9 +8,10 @@ Production (`realvuxbaro.me`) chạy trên k3s, quản lý bởi ArgoCD Applicat
|
||||
**`medical-chatbot-data`** (PostgreSQL + Qdrant, tách release để prune/self-heal
|
||||
phía app không bao giờ đụng vào dữ liệu). Cả hai đặt `syncPolicy.automated` với
|
||||
`selfHeal` + `prune` — **mọi merge vào `master` áp thẳng vào production, không
|
||||
có cổng duyệt thủ công.** EC2 Docker Compose (`52.0.158.61`) không còn nhận
|
||||
deploy tự động; xem `coordination/CLAUDE_PLAN_CICD_SAFETY_2026-08-18.md` cho
|
||||
lý do và tình trạng hiện tại của máy đó.
|
||||
có cổng duyệt thủ công.** EC2 Docker Compose (`52.0.158.61`) đã **stop** từ
|
||||
2026-08-18, không còn nhận deploy tự động và không còn là đường lui sống; xem
|
||||
`coordination/CLAUDE_PLAN_CICD_SAFETY_2026-08-18.md` cho lý do và mục Rollback
|
||||
bên dưới cho cách khởi động lại nếu cần.
|
||||
|
||||
## Deploy
|
||||
|
||||
@@ -39,25 +40,31 @@ Sau deploy (cả hai loại):
|
||||
|
||||
## Rollback
|
||||
|
||||
Không có workflow rollback một-cú-bấm cho k3s hiện tại — đây là phần còn thiếu,
|
||||
xem `coordination/CLAUDE_PLAN_CICD_SAFETY_2026-08-18.md` mục PR C.
|
||||
|
||||
**Image bị lỗi (phổ biến nhất):** gọi trực tiếp ArgoCD API bằng logic của
|
||||
`sync_practice_argocd.py` nhưng với `IMAGE_TAG=<sha tốt lần trước>` — lấy SHA
|
||||
đó từ lần chạy `build-practice-images.yml` thành công gần nhất trước đó
|
||||
(`gh run list --workflow=build-practice-images.yml`). Không có nút bấm sẵn cho
|
||||
việc này; phải chạy script hoặc gọi API thủ công.
|
||||
**Image bị lỗi (phổ biến nhất):** `gh workflow run rollback-k3s.yml -f
|
||||
target_sha=<sha tốt lần trước>`. Lấy SHA đó từ lần chạy `build-practice-images.yml`
|
||||
thành công gần nhất trước đó (`gh run list --workflow=build-practice-images.yml`).
|
||||
Workflow tự xác nhận image đã tồn tại trên GHCR, repoint `medical-chatbot-app`
|
||||
(dùng chung `sync_practice_argocd.py` với đường deploy xuôi), chờ tới khi
|
||||
Application thật sự `Synced`/`Healthy` trên đúng tag đó (không chỉ tin lệnh
|
||||
sync đã gọi xong — có race với ArgoCD `selfHeal`, xem comment trong script),
|
||||
rồi mới xác nhận `realvuxbaro.me` sống. Chưa tự động hoá; kích hoạt thủ công
|
||||
qua `workflow_dispatch`, không trigger theo push.
|
||||
|
||||
**Chart/config bị lỗi:** `git revert` commit gây lỗi trên `master` qua PR bình
|
||||
thường; ArgoCD `selfHeal` tự áp bản revert. Muốn ngay lập tức thay vì chờ chu kỳ
|
||||
poll, sync thủ công qua ArgoCD UI/CLI.
|
||||
|
||||
**Sự cố nặng ở tầng cluster** (k3s tự nó hỏng, không phải lỗi ở app): trong lúc
|
||||
Compose EC2 (`52.0.158.61`) còn tồn tại và chưa bị tắt, đường lui cuối cùng là
|
||||
trỏ A record `realvuxbaro.me` về IP đó (TTL 60s) — **chỉ đúng khi Compose đang
|
||||
chạy bản tương thích với corpus/schema hiện tại**, không phải đường lui mặc
|
||||
định. Một khi Compose bị dừng/xoá theo quyết định giữ 1 EC2, đường lui này
|
||||
không còn.
|
||||
**Sự cố nặng ở tầng cluster** (k3s tự nó hỏng, không phải lỗi ở app): Compose
|
||||
EC2 (`i-039fc8f6102467a54`, `52.0.158.61`) đã **stop** (không terminate) ngày
|
||||
2026-08-18 theo quyết định chỉ dùng 1 EC2 — **không còn là đường lui sống**.
|
||||
Máy vẫn tồn tại (root EBS `DeleteOnTermination=true`, nên terminate mới mất
|
||||
vĩnh viễn), đóng băng ở code `df57e6b` từ trước cutover. Muốn dùng lại làm
|
||||
đường lui khẩn cấp: `aws ec2 start-instances --instance-ids
|
||||
i-039fc8f6102467a54`, chờ container tự khởi động (`docker-compose.prod.yml`
|
||||
không có auto-start service, kiểm tra lại), xác nhận corpus/schema còn tương
|
||||
thích với migration hiện tại của production trước khi trỏ A record — thời
|
||||
gian đứng máy càng lâu, xác suất lệch corpus càng cao. Đây là việc thủ công,
|
||||
không có script/workflow nào làm sẵn.
|
||||
|
||||
Không có cơ chế nào ở trên tự rollback Qdrant corpus hay database migration.
|
||||
Với corpus, dùng snapshot/migration riêng; không rollback dữ liệu phá huỷ khi
|
||||
|
||||
Reference in New Issue
Block a user