From 21b8965c1054d084681dd7d5d0153a441518a035 Mon Sep 17 00:00:00 2001 From: masoodafar-web Date: Tue, 17 Feb 2026 02:11:39 +0330 Subject: [PATCH] =?UTF-8?q?docs:=20=D9=85=D8=B4=DA=A9=D9=84=20=DB=B1=DB=B4?= =?UTF-8?q?-=DB=B1=DB=B6=20=E2=80=94=20K8S=5FSERVER=20=D8=A7=D8=B4=D8=AA?= =?UTF-8?q?=D8=A8=D8=A7=D9=87,=20=D9=86=D8=A8=D9=88=D8=AF=20appsettings.Pr?= =?UTF-8?q?oduction,=20nginx=20image=20path?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- INDEX.md | 2 +- deployment/CICD-PIPELINE-GUIDE.md | 64 +++++++++++++++++++++++++++++- deployment/INFRASTRUCTURE-GUIDE.md | 7 +++- 3 files changed, 69 insertions(+), 4 deletions(-) diff --git a/INDEX.md b/INDEX.md index 61b97dc..9b5a3db 100644 --- a/INDEX.md +++ b/INDEX.md @@ -2,7 +2,7 @@ > آخرین بروزرسانی: February 17, 2026 > ۲۲۰ فایل → ۳۰ فایل (تجمیع ۳ فازی + cleanup نهایی) -> آخرین تغییرات: فیکس ZarinPal callback، تخفیف ۱۰۰٪ اجباری، VAT checkout، ExpirePendingOrders، فیکس DeliveryStatus mapping، دیپلوی Production، فیکس CI/CD cross-deploy +> آخرین تغییرات: فیکس ZarinPal callback، تخفیف ۱۰۰٪ اجباری، VAT checkout، ExpirePendingOrders، فیکس DeliveryStatus mapping، دیپلوی Production، فیکس CI/CD cross-deploy، ساخت appsettings.Production.json هر ۳ پروژه، فیکس K8S_SERVER، فیکس nginx image path --- diff --git a/deployment/CICD-PIPELINE-GUIDE.md b/deployment/CICD-PIPELINE-GUIDE.md index 86bdc8c..50024ec 100644 --- a/deployment/CICD-PIPELINE-GUIDE.md +++ b/deployment/CICD-PIPELINE-GUIDE.md @@ -613,4 +613,66 @@ jobs: | **Registry** | `194.5.195.53:30080` (local) | همان staging registry | | **Image Tags** | `:latest` | `:prod` + `:sha` | | **Branch** | `kub-stage` | `production` | -| **Domains** | `*.se.kbs1.ir` | `*.kbs1.ir` | \ No newline at end of file +| **Domains** | `*.se.kbs1.ir` | `*.kbs1.ir` | + +--- + +## 🐛 مشکل ۱۴: K8S_SERVER اشتباه در prod-deploy.yml (CMS + BackOffice) + +**تاریخ:** February 17, 2026 +**علت:** `K8S_SERVER` در `prod-deploy.yml` CMS و BackOffice هنوز `194.5.195.53` (staging) بود بجای `45.149.79.127` (production). +**عارضه:** `kubectl set image` به سرور staging ارسال می‌شد — deployment production آپدیت نمی‌شد. + +**فایل‌های فیکس شده:** +- `CMS/.gitea/workflows/prod-deploy.yml` — `K8S_SERVER: 194.5.195.53` → `45.149.79.127` +- `BackOffice/.gitea/workflows/prod-deploy.yml` — `K8S_SERVER: 194.5.195.53` → `45.149.79.127` +- FrontOffice قبلاً درست بود ✅ + +**فیکس اضافی:** هر دو workflow از `kubectl rollout restart` به `kubectl set image` تغییر کردن تا ایمیج SHA-tagged واقعاً set بشه. + +--- + +## 🐛 مشکل ۱۵: نبود appsettings.Production.json — URLهای staging روی production + +**تاریخ:** February 17, 2026 +**علت:** هیچکدوم از ۳ پروژه `appsettings.Production.json` نداشتن. از طرفی `ASPNETCORE_ENVIRONMENT=Production` ست بود → fallback به `appsettings.json` (که URLهای staging داشت). + +**عارضه‌ها:** +- CMS: `CmsBaseUrl=cms.se.kbs1.ir` → ZarinPal callback به staging برمی‌گشت +- CMS: `FrontOfficeBaseUrl=foursat.se.kbs1.ir` → redirect بعد از پرداخت به staging می‌رفت +- FrontOffice: `GwUrl=localhost:32846` → gRPC به هیچ‌جا وصل نمی‌شد +- BackOffice: `GwUrl=localhost:32847` → gRPC به هیچ‌جا وصل نمی‌شد + +**فایل‌های ساخته شده:** + +| پروژه | فایل | محتوای کلیدی | +|--------|------|-------------| +| CMS | `src/CMSMicroservice.WebApi/appsettings.Production.json` | `CmsBaseUrl=cms.kbs1.ir`, `FrontOfficeBaseUrl=kbs1.ir`, `DB=KBS`, `ZarinPal.UseSandbox=false` | +| FrontOffice | `src/FrontOffice.Main/appsettings.Production.json` | `GwUrl=cms.kbs1.ir` | +| BackOffice | `src/BackOffice/wwwroot/appsettings.Production.json` | `GwUrl=cms.kbs1.ir` | + +> ⚠️ **نکته:** CMS فایل `appsettings.Production.json` در `.gitignore` هست (`**/ appsettings.Production.json`). با `git add -f` ترک شد. بعد از هر تغییر باید دوباره force add بشه. + +--- + +## 🐛 مشکل ۱۶: nginx image path اشتباه در BackOffice Dockerfile (production branch) + +**تاریخ:** February 17, 2026 +**علت:** Dockerfile روی برنچ `production` از `194.5.195.53:32082/library/nginx:alpine` استفاده می‌کرد که در رجیستری وجود نداشت. روی `kub-stage` قبلاً فیکس شده بود ولی merge به production این خط رو override کرده بود. + +**ارور CI:** +``` +Step 9/14 : FROM 194.5.195.53:32082/library/nginx:alpine AS final +manifest for 194.5.195.53:32082/library/nginx:alpine not found: manifest unknown +``` + +**رفع:** +```dockerfile +# قبل (اشتباه) +FROM 194.5.195.53:32082/library/nginx:alpine AS final + +# بعد (صحیح) +FROM 194.5.195.53:32082/nginx:alpine AS final +``` + +**نکته:** این فیکس مستقیماً روی برنچ `production` انجام و push شد (کامیت `743403e`). \ No newline at end of file diff --git a/deployment/INFRASTRUCTURE-GUIDE.md b/deployment/INFRASTRUCTURE-GUIDE.md index 28c10ff..d608999 100644 --- a/deployment/INFRASTRUCTURE-GUIDE.md +++ b/deployment/INFRASTRUCTURE-GUIDE.md @@ -47,8 +47,11 @@ # Staging Server=mssql-svc,1433;Database=Foursat;User Id=sa;Password=87zH26nbqT;TrustServerCertificate=true -# Production (env override) -Server=45.149.79.127,31433;Database=KBS;User Id=sa;Password=YourStrong@Passw0rd;TrustServerCertificate=true +# Production (appsettings.Production.json) +Server=mssql-svc;Database=KBS;User Id=sa;Password=YourStrong@Passw0rd;TrustServerCertificate=True + +# Production (env override — قدیمی، از بیرون cluster) +# Server=45.149.79.127,31433;Database=KBS;User Id=sa;Password=YourStrong@Passw0rd;TrustServerCertificate=true ``` ---