Skip to main content

Spec reference

Pod configuration for the gateway and metadata components lives on a raw PodTemplateSpec under spec.gateway.template and spec.metadata.template respectively. They use the same shape as FireboltEngineClass.spec.template. The validating webhook restricts what users may set on those templates. See Firebolt Operator-owned fields and Instance reconciliation. * Required when the parent field is set.

Firebolt Operator-owned fields on component templates

spec.gateway.template and spec.metadata.template are full PodTemplateSpec embeds. The validating webhook (vfireboltinstance.compute.firebolt.io) walks every template at admission time and rejects user input on fields the Firebolt Operator manages end-to-end. The same set of pod-level fields is rejected on both components: Per-component primary container rejections: Per-component pass-through (allowed without restriction):
  • All pod-level scheduling fields: nodeSelector, tolerations, affinity, topologySpreadConstraints, priorityClassName.
  • Pod-level: securityContext (PodSecurityContext), imagePullSecrets, serviceAccountName, additional volumes (names that do not collide with Firebolt Operator-owned volume names).
  • Additional containers (sidecars): Appended after the Firebolt Operator-rendered primary container.
  • Additional initContainers: Passed through verbatim.
  • Pod-template metadata.labels and metadata.annotations outside the firebolt.io/ reserved prefix.
A second container or initContainer using the Firebolt Operator-rendered primary name (envoy, metadata) is rejected as a duplicate. The authoritative rule sets live in api/v1alpha1/operatorauthority.go as GatewayPodTemplateRules and MetadataPodTemplateRules.

Instance phases

Status properties

Short name: fire.