activeReplicas and idleReplicas; it does not add replicas in proportion to query volume.
Configure auto-stop
You can place the policy on an EngineClass. If an Engine sets
spec.autoStop, the entire Engine policy replaces the class policy; individual auto-stop fields are not merged.
When auto-stop is enabled, avoid managing spec.replicas with another controller. The Firebolt Operator writes that field to enforce the configured active and idle levels.
Scale-down behavior
The Firebolt Operator treats running and suspended queries as activity. It does not scale down after a failed metrics scrape because unavailable metrics must not be interpreted as an idle Engine. An active schedule window keeps the Engine atactiveReplicas. Outside schedule windows, an Engine scales to idleReplicas after the idle timeout.
Inspect the decision and timestamps in Engine status:
Wake a stopped Engine with the Gateway
With Helm valuewakeAgent.enabled=true (the default) and the Firebolt Operator-managed Gateway ServiceAccount, a query sent through the Instance Gateway can wake an Engine at zero replicas:
- The Gateway holds the request while the Engine has no ready endpoints.
- The Firebolt Operator sets the Engine to
activeReplicas. - The held request proceeds after Engine endpoints become ready.
503 with Retry-After while wake-up continues.
Wake-up applies to any zero-replica Engine with auto-stop enabled, including one whose replica count was set to zero manually. To keep an Engine stopped, disable auto-stop as well:
/healthz endpoint itself, before any wake handling, so health checks and uptime monitors pointed at the Gateway never wake a stopped Engine.
Set wakeAgent.enabled=false in the Helm values to disable Gateway wake-up. Queries to running Engines are unaffected; a query for a stopped Engine returns 503.
Setting spec.gateway.template.spec.serviceAccountName also disables wake-on-zero for that Gateway, because the Firebolt Operator does not attach its wake-agent RBAC to a user-managed identity. Leave serviceAccountName unset when wake-on-zero is required; annotations on the Firebolt Operator-managed ServiceAccount remain available for workload-identity integrations.
Sampling limitations
Auto-stop samples activity once perpollInterval:
- A query shorter than the polling interval might not reset the idle timer.
- Scale-down can occur up to one polling interval earlier than the configured
idleTimeout.