FireboltEngineClass provides reusable defaults to Engines in the same namespace. Set FireboltEngine.spec.engineClassRef to the class name.
Values resolve in this order:
- The Engine value
- The namespace
FireboltEnginePresetvalue, when one object exists - The referenced EngineClass value
- The Firebolt Operator default
Pod template precedence
The Engine template overrides Preset, and Preset overrides the class, for conflicting scalar values. Collection behavior depends on the field:
The Firebolt Operator owns fields required for Engine identity, networking, probes, and StatefulSet behavior. See the FireboltEngineClass CRD reference for the complete allowed-field table.
Override a class image for one Engine
Use the class image as the shared default:Inherited Engine settings
FireboltEnginePreset
FireboltEnginePreset is an optional ambient overlay in the same namespace. Engines do not reference it by name. The object must be named firebolt — a validation rule baked into the CRD pins the name, so name uniqueness caps a namespace at one object.
Set spec.requirePreset: true on an Engine to keep it from becoming Ready until that object exists and is Ready. A present but unready Preset object fails closed for every Engine in the namespace even when requirePreset is unset.
See FireboltEnginePreset overview.
Class changes
Changes to class settings that alter Engine pods roll every bound Engine in the namespace. These include the pod template, storage, custom Engine configuration, and UI sidecar setting. AFireboltEnginePreset edit to the pod template, storage, or custom Engine configuration rolls every Engine in the namespace.
Changes to rollout, drain-check, and auto-stop policy take effect without forcing a pod rollout by themselves.
Inspect the number of referencing Engines with:
Delete a class
Class deletion remains blocked while Engines in the same namespace reference it. Remove or replacespec.engineClassRef on every bound Engine, wait for those updates to reconcile, then delete the class.
If deletion is blocked, status.conditions[type=Ready] reports reason DeletionBlocked and status.boundEngines shows the current consumer count.