# راهنمای کامل دیپلوی Production - پیکربند این مستند شامل تمام مراحل لازم برای راه‌اندازی پروژه پیکربند در محیط Production با استفاده از Woodpecker CI، Harbor Registry و ArgoCD است. ## 📋 جدول محتویات 1. [پیش‌نیازها](#پیش‌نیازها) 2. [تنظیمات Harbor Registry](#تنظیمات-harbor-registry) 3. [تنظیمات Kubernetes](#تنظیمات-kubernetes) 4. [تنظیمات ArgoCD](#تنظیمات-argocd) 5. [تنظیمات Woodpecker CI](#تنظیمات-woodpecker-ci) 6. [دیپلوی اولیه](#دیپلوی-اولیه) 7. [مانیتورینگ و لاگ](#مانیتورینگ-و-لاگ) 8. [عیب‌یابی](#عیب‌یابی) --- ## 🔧 پیش‌نیازها ### Infrastructure Requirements - **Kubernetes Cluster**: نسخه 1.24+ با حداقل 3 worker nodes - **Harbor Registry**: نسخه 2.8+ برای نگهداری images - **ArgoCD**: نسخه 2.9+ برای GitOps deployment - **Woodpecker CI**: نسخه 2.0+ برای CI/CD pipeline - **PostgreSQL**: نسخه 14+ برای database - **Redis**: نسخه 7+ برای caching ### Resources مورد نیاز **Production Environment:** - CPU: حداقل 6 cores (2 cores per pod × 3 replicas) - Memory: حداقل 6GB (2GB per pod × 3 replicas) - Storage: 50GB برای logs و uploads - Network: Load Balancer با IP عمومی **Staging Environment:** - CPU: حداقل 3 cores - Memory: حداقل 3GB - Storage: 20GB ### Domain & SSL - Domain اصلی: `peikarband.ir` - Staging: `staging.peikarband.ir` - Harbor: `harbor.peikarband.ir` - ArgoCD: `argocd.peikarband.ir` - SSL Certificate: Let's Encrypt (via cert-manager) --- ## 🐳 تنظیمات Harbor Registry ### 1. نصب Harbor ```bash # با Helm helm repo add harbor https://helm.goharbor.io helm repo update helm install harbor harbor/harbor \ --namespace harbor \ --create-namespace \ --set expose.type=ingress \ --set expose.ingress.hosts.core=harbor.peikarband.ir \ --set externalURL=https://harbor.peikarband.ir \ --set persistence.enabled=true \ --set harborAdminPassword="CHANGE_ME_STRONG_PASSWORD" ``` ### 2. ساخت Project در Harbor 1. لاگین به Harbor UI: `https://harbor.peikarband.ir` 2. رفتن به **Projects** > **New Project** 3. نام: `peikarband` 4. Access Level: **Private** 5. فعال‌سازی **Vulnerability Scanning** ### 3. ساخت Robot Account ```bash # از طریق Harbor UI: # Projects > peikarband > Robot Accounts > New Robot Account Name: deployer Expiration: Never Permissions: - Push Repository - Pull Repository - Read Helm Chart - Create Helm Chart Version # Token را کپی کنید (فقط یکبار نمایش داده می‌شود) ``` ### 4. تست دسترسی به Harbor ```bash # لاگین از local machine docker login harbor.peikarband.ir Username: robot$peikarband+deployer Password: [TOKEN] # تست push image docker pull nginx:alpine docker tag nginx:alpine harbor.peikarband.ir/peikarband/test:latest docker push harbor.peikarband.ir/peikarband/test:latest ``` --- ## ☸️ تنظیمات Kubernetes ### 1. ایجاد Namespaces ```bash kubectl create namespace peikarband kubectl create namespace peikarband-staging kubectl create namespace argocd kubectl create namespace woodpecker ``` ### 2. نصب Cert-Manager (برای SSL) ```bash kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.13.0/cert-manager.yaml # ایجاد ClusterIssuer برای Let's Encrypt cat <