Skip to main content
This quickstart creates the minimal resources needed to run a Firebolt Engine with the Firebolt Operator.

Before you get started

You need the following tools installed on your machine:
  • kind. You use this to create a local Kubernetes cluster.
  • Docker. Required to run containers for kind.
  • kubectl. You use this to interact with your Kubernetes cluster.
  • Helm. You use this to install the Firebolt Operator.

Create a local cluster

Create a Kubernetes cluster with kind on your local machine:
Verify the cluster is running:
You should see a single node with Ready status:

Install the Firebolt Operator

Install the CRDs and operator with Helm:
The oci.firebolt.io host is Firebolt’s Scarf gateway. It records anonymous download statistics and redirects to GitHub Container Registry. To bypass the gateway, use oci://ghcr.io/firebolt-db/helm-charts instead. For more installation options, see Installation.

Create a namespace

Create a namespace for the instance and engine:

Create a FireboltInstance

A FireboltInstance provisions the metadata infrastructure that engines depend on.
Apply the manifest:
Check progress:
Wait until the instance is Ready before creating an engine. See the FireboltInstance CRD reference for all supported fields and phases.

Configure object storage

Every FireboltEngine requires object storage for managed tablet data. Local filesystem storage mode is not supported by the Firebolt Operator and the engine will refuse to start without object storage. On a real cluster, point the engine at an existing bucket (S3, GCS, or Azure Blob) and grant access through your platform’s workload identity. For Amazon S3, see Amazon S3. For a local cluster (Kind, minikube), deploy a small S3-compatible emulator (floci) and create a bucket:
This deploys floci into the firebolt namespace, exposes it at http://floci.firebolt.svc.cluster.local:4566, and creates a my-engine-bucket bucket. The engine references it through spec.customEngineConfig.storage in the next step.

Create a FireboltEngine

Once the instance is Ready, create an engine that references it. The customEngineConfig.storage block points the engine at the object storage configured above.
Apply the manifest:
Check progress:
Wait until the engine reaches stable phase with READY=True:
See the FireboltEngine CRD reference for the full field surface.

Run a query

Once the engine is ready, run a query through the instance gateway with the Firebolt CLI bundled in the engine image:
--endpoint targets the instance gateway Service. --set engine=<name> selects the engine to route to (the same value you would pass in the X-Firebolt-Engine header). --no-interactive prints the result and exits, which suits non-TTY kubectl exec sessions. You should see the query result in the output.

Clean up

Delete the kind cluster to free all resources: