> ## Documentation Index
> Fetch the complete documentation index at: https://hyperbolic.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Rental Operator

> Rent Hyperbolic on-demand GPUs from your own Kubernetes cluster with GPURental custom resources.

> [!NOTE]
>
> Rental Operator is in **beta**. Its API is `compute.hyperbolic.ai/v1alpha1`, so fields may still change in a minor release, and the release notes call out each change with migration steps.

Rental Operator is an open-source Kubernetes operator that rents Hyperbolic on-demand GPUs from your own cluster. You store your API key in a Secret and apply a `GPURental`. The operator creates the rental through the Hyperbolic API, keeps its status current, and puts the SSH details on the resource. Delete the resource and the rental ends.

> **[Quick start](https://hyperbolic.ai/docs/rental-operator/quickstart.md)**
>
> Install the operator and rent your first GPU.

> **[HyperbolicLabs/rental-operator](https://github.com/HyperbolicLabs/rental-operator)**
>
> Source, releases, and the full reference.

## What's available

| | |
| - | - |
| **API group** | `compute.hyperbolic.ai/v1alpha1` |
| **Resources** | `GPURental`, `ProviderConfig`, `ClusterProviderConfig`, `SSHKey`, `GPUAvailability` |
| **Install** | Helm chart at `oci://ghcr.io/hyperboliclabs/charts/rental-operator` |
| **Kubernetes** | 1.35, 1.36 and 1.37 |
| **Authentication** | A Hyperbolic API key in a labeled Kubernetes Secret |
| **Billing** | On-demand rentals on your account, at the same hourly rates. The operator adds no charge. |
| **License** | Apache-2.0 |

## How it works

The operator is a controller in your cluster. It calls the Hyperbolic API with your API key, the same way you would, and keeps no durable state of its own.

1. A `ProviderConfig` points at the Secret holding your API key. The operator checks the key and shows your balance, active rentals and hourly cost on it, as Hyperbolic reports them.
2. You apply a `GPURental` with a GPU type and count. The operator checks that your balance covers about an hour of it, creates the rental, and follows it to `Running`.
3. The rental's SSH address appears in the resource's status, and you connect over SSH.
4. You delete the `GPURental`. The operator terminates the rental and keeps the resource in `Terminating` until Hyperbolic confirms it is gone.

A create is never retried blindly, so a timeout can't rent twice. A GPURental is never deleted while its rental may still be billing, and deleting a namespace still terminates its rentals. Status is polled about every 10 seconds while a rental starts and every 60 seconds once it runs.

| Resource | Scope | What it does |
| - | - | - |
| `GPURental` | Namespace | One on-demand rental, from create to terminate |
| `ProviderConfig` | Namespace | Points at your API key's Secret and shows your account's balance, active rentals and hourly cost |
| `ClusterProviderConfig` | Cluster | Shares one API key across namespaces. Its Secret stays in the operator's namespace. |
| `SSHKey` | Namespace | Saves an SSH public key on your account, so rentals can authorize it by name |
| `GPUAvailability` | Namespace | A filtered view of what your account can rent, refreshed regularly |

`kubectl get hyperbolic -A` lists every one of them.

## Managed Kubernetes or Rental Operator?

| | Managed Kubernetes | Rental Operator |
| - | - | - |
| **Who runs the cluster** | Hyperbolic runs the control plane | You run your own cluster |
| **How you start** | Launch a cluster in the dashboard | `helm install` into your cluster |

If you want Hyperbolic to run the cluster, see [Managed Kubernetes](https://hyperbolic.ai/docs/on-demand/managed-kubernetes.md).

## Limitations

> [!WARNING]
>
> The operator must be running to end a rental. Deleting the cluster or uninstalling the operator leaves rentals billing until you terminate them in the [dashboard](https://app.hyperbolic.ai). Delete your GPURentals first.

* **On-demand virtual machines only.** Reserved terms and bare metal are not supported.
* **A saved SSH key becomes the account's default.** A rental that names no keys gets the account's newest key, or under an Organization, the Organization's newest key. Name keys in `sshKeyRefs` rather than relying on the default.
* **Rental fields are fixed at creation.** GPU type, count, region, network type and ports can't change, so resizing means replacing the `GPURental`.
* **Setting `terminated: true` is permanent.** It ends the rental and keeps the resource as a record. Rent again with a new `GPURental`.

## Security

Your API key stays in a Secret you control. The operator uses and caches only Secrets labeled `compute.hyperbolic.ai/credentials=true`, sends the key only to the configured Hyperbolic endpoint over HTTPS, and never logs it or writes it to status. For least privilege, the chart has a [namespaced install](https://github.com/HyperbolicLabs/rental-operator/blob/main/docs/install.md#namespaced-install) with no cluster-wide access to Secrets.

Report vulnerabilities in the operator privately, as its [security policy](https://github.com/HyperbolicLabs/rental-operator/blob/main/SECURITY.md) describes.

## Reference

The reference lives in the repository, next to the code.

> **[Install, upgrade and uninstall](https://github.com/HyperbolicLabs/rental-operator/blob/main/docs/install.md)**
>
> Cluster-wide and namespaced installs, verifying a release, CRD upgrades.

> **[Custom resources](https://github.com/HyperbolicLabs/rental-operator/blob/main/docs/resources.md)**
>
> What each field does, and the conditions and reasons.

> **[Common operations](https://github.com/HyperbolicLabs/rental-operator/blob/main/docs/operations.md)**
>
> Regions, ports, terminating, orphaning and rebooting.

> **[Observability](https://github.com/HyperbolicLabs/rental-operator/blob/main/docs/observability.md)**
>
> Prometheus metrics and the alerts the chart ships.

> **[API reference](https://github.com/HyperbolicLabs/rental-operator/blob/main/docs/reference/api.md)**
>
> Every field, generated from the Go types.

> **[Architecture](https://github.com/HyperbolicLabs/rental-operator/blob/main/docs/architecture.md)**
>
> The rental lifecycle and how creates and deletes stay safe.

> **[API versioning](https://github.com/HyperbolicLabs/rental-operator/blob/main/docs/api-versioning.md)**
>
> What `v1alpha1` promises and how the API will graduate.

> **[Support and releases](https://github.com/HyperbolicLabs/rental-operator/blob/main/SUPPORT.md)**
>
> Supported releases, Kubernetes versions and where to get help.

## Build on the API

Rental Operator is built on hyperbolic-go, the official Go SDK for the Hyperbolic API. The SDK is generated from the API's published OpenAPI specification and is open source too.

> **[HyperbolicLabs/hyperbolic-go](https://github.com/HyperbolicLabs/hyperbolic-go)**
>
> Rent GPUs, manage SSH keys and storage, and read your balance from Go.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.