> ## 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.

# FireboltEnginePreset overview

> Optional namespaced ambient overlay for service account, storage, and engine config shared by every FireboltEngine in a namespace.

## Overview

`FireboltEnginePreset` is an optional namespaced resource that holds ambient engine settings for a namespace: a pod-template fragment plus defaults for `storage` and `customEngineConfig`. Every Firebolt Engine in the same namespace merges it. Engines do not reference the object by name.

Values resolve **Engine > Preset > EngineClass > Firebolt Operator default**. SKU-shaped settings (`rollout`, `autoStop`, `uiSidecar`, drain checks) stay on `FireboltEngineClass`.

The object must be named `firebolt`: a validation rule baked into the CRD pins `metadata.name`, so the Kubernetes API server rejects any other name and name uniqueness guarantees at most one `FireboltEnginePreset` per namespace. The guarantee holds whether or not the Firebolt Operator's admission webhooks are enabled.

Set `FireboltEngine.spec.requirePreset: true` when an Engine must not become Ready until Preset exists and is Ready. A present but unready object fails closed for every Engine even when `requirePreset` is unset.

The Firebolt Operator validates `spec.template` with the same operator-owned-path rules as `FireboltEngineClass`, and reports `Ready` on the object. Deleting the object is refused while any Firebolt Engine exists in the namespace. A Preset edit that changes the pod template, storage, or engine config rolls a new blue-green generation.

For the allowlist of user-settable and Firebolt Operator-owned template fields, see the [FireboltEnginePreset CRD reference](../crd-reference/fireboltenginepreset-crd-reference).

## Inspecting status

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

```
NAME       BOUND   READY   AGE
firebolt   3       True    24h
```

`BOUND` is the number of Firebolt Engines in the namespace. Preset is ambient, so every engine in the namespace counts.

## Example

```yaml theme={"theme":{"light":"css-variables","dark":"css-variables"}}
apiVersion: compute.firebolt.io/v1alpha1
kind: FireboltEnginePreset
metadata:
  name: firebolt
  namespace: firebolt
spec:
  template:
    spec:
      serviceAccountName: firebolt-engine
      containers:
        - name: engine
          envFrom:
            - secretRef:
                name: engine-object-store
  storage:
    emptyDir: {}
  customEngineConfig:
    storage:
      managed_table_storage: s3
      managed_table_bucket_name: my-bucket
```

Apply the manifest:

```bash theme={"theme":{"light":"css-variables","dark":"css-variables"}}
kubectl apply --server-side -f firebolt-engine-preset.yaml
```
