Skip to main content
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

Install the operator and rent your first GPU.

HyperbolicLabs/rental-operator

Source, releases, and the full reference.

What’s available

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. kubectl get hyperbolic -A lists every one of them.

Managed Kubernetes or Rental Operator?

If you want Hyperbolic to run the cluster, see Managed Kubernetes.

Limitations

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. 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 with no cluster-wide access to Secrets. Report vulnerabilities in the operator privately, as its security policy describes.

Reference

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

Install, upgrade and uninstall

Cluster-wide and namespaced installs, verifying a release, CRD upgrades.

Custom resources

What each field does, and the conditions and reasons.

Common operations

Regions, ports, terminating, orphaning and rebooting.

Observability

Prometheus metrics and the alerts the chart ships.

API reference

Every field, generated from the Go types.

Architecture

The rental lifecycle and how creates and deletes stay safe.

API versioning

What v1alpha1 promises and how the API will graduate.

Support and releases

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

Rent GPUs, manage SSH keys and storage, and read your balance from Go.