Spec reference
Every field exceptspec.template is an optional default that a referencing Engine inherits when it does not set the matching field itself. Resolution is always the Engine value first, then the class value, then the Firebolt Operator default. The Engine owns the value when it sets it. The class supplies it otherwise. The Firebolt Operator default sits beneath both.
A class-level change to
spec.uiSidecar, spec.storage, or spec.customEngineConfig reshapes the rendered engine pod, so it rolls a new blue-green generation on every bound engine. Changes to spec.rollout, spec.drainCheckEnabled, spec.drainCheckInterval, and spec.autoStop are read live and do not by themselves trigger a rollout.
Firebolt Operator-owned fields on class templates
The validating webhook rejects user input on paths the Firebolt Operator owns end-to-end. Everything else underspec.template is allowed. The same
allowlist applies to FireboltEngine.spec.template.
Pod template metadata
Pod-level fields under spec.template.spec
Engine container (containers[name=="engine"])
A second container named
engine is rejected because the Firebolt Operator renders that container.
Volumes a sidecar or init container may mount
Sidecars and init containers may mount the Firebolt Operator-renderedengine-config, data, and runtime volumes. Mounting the data volume from
an init container is the supported way to prepare the data directory before the
(non-root) engine starts — necessary with the hostPath storage backend, which
the kubelet does not apply fsGroup to.
The Secret-backed volumes are rejected on any container other than the
Firebolt Operator-rendered engine container: auth-admin, tls-engine, and every
auth-signing-<key-id> volume. Those carry the instance admin password, the
engine’s TLS private key, and the JWT signing keys, so mounting them would hand
a template author credentials they cannot otherwise read.
Status properties
Short name:
firengc.