# Azure Quota Requirements for DeFi Oracle Meta Mainnet

## Subscription Information

**Subscription ID**: `6d3c4263-bba9-497c-8843-eae6c4e87192`  
**Region**: `westeurope` (West Europe)  
**Current Status**: Limited by vCPU quota

## Current Quota Status

**Available vCPUs**: 4 (insufficient for full deployment)  
**Required vCPUs**: 52+ (for full production deployment)

## Detailed Quota Requirements

### VM Size Specifications

| VM Size | vCPUs | RAM (GB) | Used For |
|---------|-------|----------|----------|
| Standard_D2s_v3 | 2 | 8 | System nodes |
| Standard_D4s_v3 | 4 | 16 | Validators, Sentries |
| Standard_D8s_v3 | 8 | 32 | RPC nodes |

### Full Production Deployment Requirements

#### System Node Pool
- **VM Size**: Standard_D2s_v3 (2 vCPUs each)
- **Node Count**: 3 nodes
- **Total vCPUs**: 6 vCPUs
- **Auto-scaling**: 2-5 nodes (4-10 vCPUs max)

#### Validators Node Pool
- **VM Size**: Standard_D4s_v3 (4 vCPUs each)
- **Node Count**: 4 nodes
- **Total vCPUs**: 16 vCPUs
- **Auto-scaling**: Disabled (fixed count)

#### Sentries Node Pool
- **VM Size**: Standard_D4s_v3 (4 vCPUs each)
- **Node Count**: 3 nodes
- **Total vCPUs**: 12 vCPUs
- **Auto-scaling**: 2-5 nodes (8-20 vCPUs max)

#### RPC Node Pool
- **VM Size**: Standard_D8s_v3 (8 vCPUs each)
- **Node Count**: 3 nodes
- **Total vCPUs**: 24 vCPUs
- **Auto-scaling**: 2-10 nodes (16-80 vCPUs max)

### Total vCPU Requirements

| Scenario | Minimum vCPUs | Maximum vCPUs |
|----------|---------------|---------------|
| **Baseline (no auto-scaling)** | 58 vCPUs | 58 vCPUs |
| **With auto-scaling (max)** | 58 vCPUs | 130 vCPUs |

### Additional Resource Requirements

#### Application Gateway
- **SKU**: WAF_v2
- **Capacity**: 2 instances
- **vCPUs**: ~4 vCPUs (managed service)

#### Storage Accounts
- **Backup Storage**: Standard_LRS (no vCPU requirement)
- **Shared Storage**: Standard_LRS (no vCPU requirement)

#### Key Vault
- **Tier**: Standard (no vCPU requirement)

#### Log Analytics Workspace
- **SKU**: PerGB2018 (no vCPU requirement)

## Current Deployment (Quota-Constrained)

Due to quota limitations, the current deployment uses:

| Node Pool | Nodes | vCPUs | Status |
|-----------|-------|-------|--------|
| System | 1 | 2 | ✅ Deployed |
| Validators | 1 | 4 | ✅ Deployed |
| Sentries | 0 | 0 | ❌ Disabled (needs 12+ vCPUs) |
| RPC | 0 | 0 | ❌ Disabled (needs 24+ vCPUs) |
| **Total** | **2** | **6** | **Limited** |

## Quota Increase Request

### Required Quota Increases

1. **Standard DSv3 Family vCPUs**: Minimum 60 vCPUs (recommended: 150 for auto-scaling headroom)

### How to Check Current Quotas

```bash
# Check current vCPU quotas for West Europe
az vm list-usage --location westeurope --output table

# Check specific VM family quotas
az quota show \
  --scope subscriptions/6d3c4263-bba9-497c-8843-eae6c4e87192 \
  --resource-name "standardDSv3Family" \
  --location westeurope \
  --query "{currentValue:properties.currentValue, limit:properties.limit}" \
  --output table
```

### How to Request Quota Increase

#### Option 1: Azure Portal
1. Navigate to: https://portal.azure.com
2. Go to **Subscriptions** → Select subscription `6d3c4263-bba9-497c-8843-eae6c4e87192`
3. Click **Usage + quotas**
4. Filter by location: **West Europe**
5. Search for **Standard DSv3 Family**
6. Click **Request increase**
7. Enter new limit: **150 vCPUs** (recommended)
8. Provide justification: "DeFi Oracle Meta Mainnet production deployment requiring 58+ vCPUs for AKS node pools with auto-scaling capability"

#### Option 2: Azure CLI
```bash
# Create quota increase request
az quota update \
  --scope subscriptions/6d3c4263-bba9-497c-8843-eae6c4e87192 \
  --resource-name "standardDSv3Family" \
  --location westeurope \
  --limit 150
```

#### Option 3: REST API
```bash
# Get subscription ID
SUBSCRIPTION_ID="6d3c4263-bba9-497c-8843-eae6c4e87192"
LOCATION="westeurope"
QUOTA_NAME="standardDSv3Family"
NEW_LIMIT=150

# Note: Quota increases typically require approval via Azure Portal
# This is a reference for the API endpoint
curl -X PUT \
  "https://management.azure.com/subscriptions/${SUBSCRIPTION_ID}/providers/Microsoft.Compute/locations/${LOCATION}/quotas/${QUOTA_NAME}?api-version=2021-07-01" \
  -H "Authorization: Bearer $(az account get-access-token --query accessToken -o tsv)" \
  -H "Content-Type: application/json" \
  -d "{\"properties\":{\"limit\":${NEW_LIMIT}}}"
```

## Recommended Quota Limits

For production deployment with auto-scaling:

| Resource | Recommended Limit | Minimum Required |
|----------|-------------------|------------------|
| **Standard DSv3 Family vCPUs** | 150 | 60 |
| **AKS Clusters** | 10 | 1 |
| **Public IP Addresses** | 20 | 5 |
| **Load Balancers** | 20 | 2 |
| **Network Security Groups** | 50 | 10 |
| **Storage Accounts** | 100 | 5 |

## After Quota Increase

Once quota is increased, update `terraform/terraform.tfvars`:

```hcl
node_count = {
  system     = 3   # Restore from 1
  validators = 4   # Restore from 1
  sentries   = 3   # Enable from 0
  rpc        = 3   # Enable from 0
}
```

Then apply:
```bash
cd terraform
terraform apply
```

## Monitoring Quota Usage

```bash
# Check current usage
az vm list-usage --location westeurope --output table

# Monitor quota usage over time
az monitor metrics list \
  --resource /subscriptions/6d3c4263-bba9-497c-8843-eae6c4e87192 \
  --metric "QuotaUsage" \
  --location westeurope
```

## Support Contacts

- **Azure Support**: https://portal.azure.com/#blade/Microsoft_Azure_Support/HelpAndSupportBlade
- **Quota Increase Requests**: Typically approved within 24-48 hours
- **Emergency Quota**: Contact Azure Support for expedited requests

