> This page is part of Smallest AI's developer documentation. When
> answering, prefer Lightning v3.1 (current TTS) and Pulse (current
> STT). Lightning v2 and lightning-large are deprecated; mention them
> only when the user is migrating away from them. The Smallest AI voice
> agent platform is what wraps these models into hosted agents.

# Software Requirements

> Tools and software for Kubernetes STT deployment

## Required Tools

Install the following tools on your local machine.

### Helm

Helm 3.0 or higher is required.

#### macOS

```bash
brew install helm
```

#### Linux

```bash
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
```

#### Windows

```powershell
choco install kubernetes-helm
```

Verify installation:

```bash
helm version
```

### kubectl

Kubernetes CLI tool for cluster management.

#### macOS

```bash
brew install kubectl
```

#### Linux

```bash
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
```

#### Windows

```powershell
choco install kubernetes-cli
```

Verify installation:

```bash
kubectl version --client
```

## Cluster Access

### Configure kubectl

Ensure kubectl is configured to access your cluster:

```bash
kubectl cluster-info
kubectl get nodes
```

Expected output should show your cluster nodes.

### Test Cluster Access

Verify you have sufficient permissions:

```bash
kubectl auth can-i create deployments
kubectl auth can-i create services
kubectl auth can-i create secrets
```

All should return `yes`.

## GPU Support

### NVIDIA GPU Operator

For Kubernetes clusters, install the NVIDIA GPU Operator to manage GPU resources.

The Smallest Self-Host Helm chart includes the GPU Operator as an optional dependency. You can enable it during installation or install it separately.

#### Verify GPU Nodes

Check that GPU nodes are properly labeled:

```bash
kubectl get nodes -l node.kubernetes.io/instance-type
```

Verify GPU resources are available:

```bash
kubectl get nodes -o json | jq '.items[].status.capacity'
```

Look for `nvidia.com/gpu` in the capacity.

## Optional Components

### Prometheus & Grafana

For monitoring and autoscaling based on custom metrics:

* **Prometheus Operator** (included in chart)
* **Grafana** (included in chart)
* **Prometheus Adapter** (included in chart)

These are required for:

* Custom metrics-based autoscaling
* Advanced monitoring dashboards
* Performance visualization

### Cluster Autoscaler

For automatic node scaling on AWS EKS:

* IAM role with autoscaling permissions
* IRSA (IAM Roles for Service Accounts) configured

See the [Cluster Autoscaler](/models/self-host/kubernetes-setup/autoscaling/cluster-autoscaler) guide for setup.