# HPA Review

## Overview

HorizontalPodAutoscaler (HPA) has been configured for RPC nodes to automatically scale based on CPU and memory usage.

## HPA Configuration

### Target
- **StatefulSet**: besu-rpc
- **Namespace**: besu-network

### Scaling Parameters
- **Min Replicas**: 2
- **Max Replicas**: 10
- **CPU Target**: 70% utilization
- **Memory Target**: 80% utilization

### Scaling Behavior
- **Scale Up**: 100% increase or 2 pods per minute (whichever is higher)
- **Scale Down**: 50% decrease per minute
- **Stabilization Window**: 300 seconds (scale down), 0 seconds (scale up)

## Validation

Run the validation script:
```bash
./scripts/validation/validate-hpa.sh
```

## Application

Apply HPA:
```bash
kubectl apply -f k8s/base/rpc/hpa.yaml
```

## Testing

Generate load on RPC endpoints and verify HPA scales pods based on CPU/memory usage.

## Requirements

- Metrics server must be installed in the cluster
- Resource requests and limits must be set on pods
- HPA requires metrics API to be available

