{
  "title": "معماری Helm",
  "slug": "team/devops/helm-architecture",
  "url": "/docs/team/devops/helm-architecture",
  "frontmatter": {
    "layout": "doc",
    "title": "معماری Helm",
    "description": "معماری چارت‌های Helm در پلتفرم NONS، ساختار، مدیریت مقادیر محیطی و دستورات استقرار",
    "version": "1.0.0",
    "status": "APPROVED",
    "author": "Antigravity",
    "owner": "Devops Team",
    "created_at": "2026-06-15",
    "updated_at": "2026-06-15",
    "tags": "",
    "reviewers": ""
  },
  "sections": [
    {
      "level": 1,
      "heading": "معماری Helm",
      "content": "**Helm Charts Architecture**\n\n---"
    },
    {
      "level": 2,
      "heading": "۱. ساختار چارت‌ها",
      "content": "تمامی میکروسرویس‌ها و سرویس‌های زیرساختی به صورت چارت‌های اختصاصی Helm در پوشه `deploy/helm/` بسته‌بندی می‌شوند:\n\n| چارت | دایرکتوری | توضیح |\n|------|----------|-------|\n| Gateway | `deploy/helm/gateway/` | Traefik v3، IngressRoutes، Forward Auth |\n| Auth Service | `deploy/helm/auth-service/` | سرویس واسط احراز هویت (Stateless) |\n| Kratos | `deploy/helm/kratos/` | Ory Kratos v1.2.0 |\n| Hydra | `deploy/helm/hydra/` | Ory Hydra v2.2.0 |\n| NATS | `deploy/helm/nats/` | NATS JetStream 2.10 |\n| Redis | `deploy/helm/redis/` | Redis 7 (AOF enabled) |\n| PostgreSQL | `deploy/helm/postgres/` | PostgreSQL 16 |\n| Monitoring (Roadmap) | `deploy/helm/monitoring/` | Prometheus, Grafana, Jaeger (منتقل‌شده به نقشه راه - D4) |\n\n---"
    },
    {
      "level": 2,
      "heading": "۲. مدیریت محیط‌ها",
      "content": "مقادیر هر محیط در `deploy/environments/` نگهداری می‌شود:\n\n```text\ndeploy/environments/\n├── local/values.yaml       # K3d توسعه محلی\n├── staging/values.yaml     # تست و پیش‌تولید\n└── production/values.yaml  # عملیاتی (K3s)\n```"
    },
    {
      "level": 3,
      "heading": "تفاوت‌های کلیدی بین محیط‌ها",
      "content": "| پارامتر | Local (K3d) | Production (K3s) |\n|---------|-------------|------------------|\n| replicaCount | 1 | 2 تا 5 |\n| ingress host | localhost | api.nons.ir |\n| منابع سخت‌افزاری | بدون محدودیت | limits + requests |\n| حجم PostgreSQL | 1Gi | 50Gi |\n\n---"
    },
    {
      "level": 2,
      "heading": "۳. دستورات استقرار",
      "content": ""
    },
    {
      "level": 3,
      "heading": "نصب اولیه (محلی)",
      "content": "```bash"
    },
    {
      "level": 1,
      "heading": "Namespace",
      "content": "kubectl create namespace nons-platform\nkubectl create namespace nons-system"
    },
    {
      "level": 1,
      "heading": "زیرساخت",
      "content": "helm install nons-postgres ./deploy/helm/postgres -n nons-platform -f ./deploy/environments/local/values.yaml\nhelm install nons-redis ./deploy/helm/redis -n nons-platform -f ./deploy/environments/local/values.yaml\nhelm install nons-nats ./deploy/helm/nats -n nons-platform -f ./deploy/environments/local/values.yaml"
    },
    {
      "level": 1,
      "heading": "هویت",
      "content": "helm install nons-kratos ./deploy/helm/kratos -n nons-platform -f ./deploy/environments/local/values.yaml\nhelm install nons-hydra ./deploy/helm/hydra -n nons-platform -f ./deploy/environments/local/values.yaml"
    },
    {
      "level": 1,
      "heading": "سرویس‌ها",
      "content": "k3d image import nons-auth-service:latest -c nons\nhelm install nons-auth-service ./deploy/helm/auth-service -n nons-platform -f ./deploy/environments/local/values.yaml"
    },
    {
      "level": 1,
      "heading": "Gateway",
      "content": "helm install nons-gateway ./deploy/helm/gateway -n nons-system -f ./deploy/environments/local/values.yaml\n```"
    },
    {
      "level": 3,
      "heading": "آپگرید",
      "content": "```bash\nhelm upgrade nons-auth-service ./deploy/helm/auth-service \\\n  --set image.tag=v1.1.0 \\\n  -n nons-platform \\\n  -f ./deploy/environments/local/values.yaml\n```\n\n---"
    },
    {
      "level": 2,
      "heading": "۴. عیب‌یابی Helm",
      "content": "```bash"
    },
    {
      "level": 1,
      "heading": "بررسی وضعیت",
      "content": "helm list -n nons-platform\nhelm status nons-auth-service -n nons-platform"
    },
    {
      "level": 1,
      "heading": "تاریخچه رول‌اوت",
      "content": "helm history nons-auth-service -n nons-platform"
    },
    {
      "level": 1,
      "heading": "بازگشت به نسخه قبل",
      "content": "helm rollback nons-auth-service <revision> -n nons-platform"
    },
    {
      "level": 1,
      "heading": "مشاهده مقادیر جاری",
      "content": "helm get values nons-auth-service -n nons-platform\n```\n\n---"
    },
    {
      "level": 2,
      "heading": "۵. سرویس‌های خارج از Helm (انتقال به نقشه راه - D4)",
      "content": "سرویس‌های زیر از معماری فعال MVP خارج شده و به نقشه راه (Roadmap) منتقل شده‌اند و چارت‌های Helm فعال برای آن‌ها در MVP وجود ندارد:\n\n- **TigerBeetle Helm Chart** — دفترکل مالی (double-entry ledger)\n- **MongoDB Helm Chart** — ذخیره‌سازی پیام‌های چت\n- **Monitoring Stack** — پشته نظارت و ردیابی (Prometheus, Grafana, Jaeger)\n\n> [!NOTE]\n> جزئیات کامل انتقال این موارد به همراه دلایل عدم نیاز در MVP، وابستگی‌ها و اثرات آن‌ها بر معماری در سند [مسیر توسعه](../backend/roadmap.md) ثبت شده است."
    }
  ]
}