# Peikarband Helm Chart

Official Helm chart برای deploy کردن Peikarband Cloud Platform.

## نصب

### اضافه کردن Repository

```bash
helm repo add peikarband https://peikarband.github.io/charts
helm repo update
```

### نصب Chart

```bash
helm install peikarband peikarband/peikarband \
  --namespace production \
  --create-namespace \
  --set image.tag=0.1.0
```

## پیکربندی

### مهم‌ترین Values

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| `replicaCount` | int | `2` | تعداد replicas |
| `image.repository` | string | `registry.example.com/peikarband/landing` | Docker image repository |
| `image.tag` | string | `latest` | Image tag |
| `image.pullPolicy` | string | `IfNotPresent` | Image pull policy |
| `resources.limits.cpu` | string | `1000m` | CPU limit |
| `resources.limits.memory` | string | `1Gi` | Memory limit |
| `autoscaling.enabled` | bool | `true` | فعال کردن HPA |
| `autoscaling.minReplicas` | int | `2` | حداقل replicas |
| `autoscaling.maxReplicas` | int | `10` | حداکثر replicas |
| `ingress.enabled` | bool | `true` | فعال کردن Ingress |
| `ingress.hosts[0].host` | string | `peikarband.ir` | Domain |

### مثال‌های استفاده

#### نصب با مقادیر سفارشی

```bash
helm install peikarband peikarband/peikarband \
  --set image.tag=0.2.0 \
  --set replicaCount=3 \
  --set resources.limits.cpu=2000m \
  --set ingress.hosts[0].host=example.com
```

#### استفاده از values file

```bash
helm install peikarband peikarband/peikarband \
  -f my-values.yaml
```

#### Upgrade

```bash
helm upgrade peikarband peikarband/peikarband \
  --set image.tag=0.3.0 \
  --reuse-values
```

## Requirements

- Kubernetes 1.24+
- Helm 3.10+
- PostgreSQL (external یا in-cluster)
- Redis (external یا in-cluster)

## Values فایل‌ها

این chart شامل چند values file است:

- `values.yaml` - مقادیر پیش‌فرض
- `values-production.yaml` - تنظیمات production

## Components

این Chart شامل موارد زیر است:

- **Deployment**: اجرای application
- **Service**: ClusterIP service برای internal access
- **Ingress**: External access با TLS
- **ConfigMap**: تنظیمات application
- **ServiceAccount**: Kubernetes service account
- **HPA**: Horizontal Pod Autoscaler
- **PDB**: Pod Disruption Budget
- **NetworkPolicy**: محدودیت‌های network

## پیش‌نیازها

### ساخت Secrets

```bash
kubectl create secret generic peikarband-secrets \
  --from-literal=db-username=USERNAME \
  --from-literal=db-password=PASSWORD \
  --from-literal=redis-password=REDIS_PASS \
  -n production
```

### cert-manager (برای TLS)

```bash
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.13.0/cert-manager.yaml
```

## Troubleshooting

### مشاهده وضعیت

```bash
helm status peikarband -n production
kubectl get all -n production
kubectl get pods -l app.kubernetes.io/name=peikarband -n production
```

### مشاهده Logs

```bash
kubectl logs -f deployment/peikarband -n production
```

### Rollback

```bash
helm rollback peikarband -n production
```

## توسعه

### Lint

```bash
helm lint .
```

### Template

```bash
helm template peikarband . --debug
```

### Package

```bash
helm package .
```

## لایسنس

MIT

## پشتیبانی

- Email: support@peikarband.ir
- Website: https://peikarband.ir
- Docs: https://docs.peikarband.ir

