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

> Default install of the firebolt-instance Helm chart with one Engine, Gateway, the Metadata Service, and bundled PostgreSQL.

# Single engine

This page walks through a default install with a single engine.

<Note>
  Engines need object storage configured under `customEngineConfig.storage`. Without it, the engine pod never becomes Ready. Configure it first ([Object Storage](./object-storage/amazon-s3)).
</Note>

The commands below assume a `my-values.yaml` that sets `customEngineConfig.storage`.

## Install

Install the chart into the `firebolt` namespace, creating it if it does not exist:

```bash theme={"theme":{"light":"css-variables","dark":"css-variables"}}
helm install firebolt ./helm \
  --namespace firebolt --create-namespace \
  -f my-values.yaml
```

## Verify

List the workloads the release created:

```bash theme={"theme":{"light":"css-variables","dark":"css-variables"}}
kubectl -n firebolt get statefulset,deployment
```

Expect `firebolt-engine-default-node-0`, `firebolt-metadata-pg`, `firebolt-gateway`, and `firebolt-metadata-service` to reach `READY`.

## Query

Forward the gateway Service to a local port and send a SQL query through it:

```bash theme={"theme":{"light":"css-variables","dark":"css-variables"}}
# Forward the gateway Service to localhost:8080 in the background.
kubectl -n firebolt port-forward svc/firebolt-gateway 8080:80 &

# Send `SELECT 1` to the gateway. The X-Firebolt-Engine header selects the engine.
curl -s http://localhost:8080/ \
  -H "X-Firebolt-Engine: default" \
  -H "Content-Type: text/plain" \
  --data "SELECT 1"
```

The gateway routes by the `X-Firebolt-Engine` header.

## Test and tear down

Run the chart's smoke tests, then uninstall everything:

```bash theme={"theme":{"light":"css-variables","dark":"css-variables"}}
make test       # run helm test against the release (engine ready, gateway ready, smoke SQL)
make cleanup    # uninstall the release, delete its PVCs, and delete the namespace
```
