API Reference

Packages

superset.apache.org/v1alpha1

Package v1alpha1 contains API Schema definitions for the superset v1alpha1 API group.

Resource Types

AdminUserSpec

AdminUserSpec defines admin user credentials for dev-mode initialization.

Appears in:

FieldDescriptionDefaultValidation
username stringAdmin username.adminOptional: {}
password stringAdmin password. Stored as plain-text env var in Development mode.adminOptional: {}
firstName stringAdmin first name.SupersetOptional: {}
lastName stringAdmin last name.AdminOptional: {}
email stringAdmin email.admin@example.comOptional: {}

AutoscalingSpec

AutoscalingSpec configures a HorizontalPodAutoscaler.

Appears in:

FieldDescriptionDefaultValidation
minReplicas integerMinimum replica count (defaults to 1).Minimum: 1
Optional: {}
maxReplicas integerMaximum replica count; HPA will not scale above this.Maximum: 100
Minimum: 1
metrics MetricSpec arrayMetrics for the HPA. Supports CPU, memory, custom, and external metrics.
When empty, Kubernetes defaults to 80% average CPU utilization.
Optional: {}

BaseTaskSpec

BaseTaskSpec contains fields shared by all lifecycle task types.

Appears in:

FieldDescriptionDefaultValidation
command string arrayCommand override for the task Job.Optional: {}
trigger stringTrigger is an opaque string. Changing its value forces a re-run of this
task and all downstream tasks. Use a timestamp, UUID, or CI build ID.
Optional: {}
requiresDrain booleanRequiresDrain controls whether components must be drained before this
task runs. When true, the operator removes component workloads before
executing the task Job, preventing database connection conflicts. Drain is
skipped when the task is already complete for the current checksum, or when
no configured component has desired replicas greater than zero.
Defaults vary per task type: true for seed, migrate, and rotate; false for init.
Optional: {}
timeout DurationMaximum timeout per attempt.Optional: {}
maxRetries integerMaximum number of retries before permanent failure.3Minimum: 1
Optional: {}
disabled booleanDisabled skips this task entirely when true.Optional: {}

CeleryBeatComponentSpec

CeleryBeatComponentSpec defines the celery beat component on the parent CRD. CeleryBeat is a singleton: it always runs with one replica, and the inherited spec.replicas value (if any) is ignored. The spec exposes no replicas field, no autoscaling, and no PodDisruptionBudget by design.

Appears in:

FieldDescriptionDefaultValidation
deploymentTemplate DeploymentTemplateDeployment-level overrides (strategy, revision history). Replica count
is fixed at 1 by the controller and cannot be overridden.
Optional: {}
podTemplate PodTemplatePod and container template for Celery beat pods.Optional: {}
image ImageOverrideSpecImage tag and/or repository overrides; inherits from spec.image if unset.Optional: {}
config stringPer-component raw Python appended after top-level config.Optional: {}
bootstrapScript stringPer-component bootstrap script. Overrides spec.bootstrapScript. Set to an
empty string to disable inherited bootstrap for this component.
Optional: {}
sqlaEngineOptions SQLAlchemyEngineOptionsSpecPer-component SQLAlchemy engine options (overrides spec.sqlaEngineOptions entirely).Optional: {}

CeleryFlowerComponentSpec

CeleryFlowerComponentSpec defines the celery flower component on the parent CRD.

Appears in:

FieldDescriptionDefaultValidation
deploymentTemplate DeploymentTemplateDeployment template (Deployment-level configuration).Optional: {}
podTemplate PodTemplatePod template (Pod and container configuration).Optional: {}
replicas integerDesired replica count; overridden by autoscaling when active. Defaults to spec.replicas if unset.Optional: {}
autoscaling AutoscalingSpecHorizontalPodAutoscaler configuration. When set, the HPA manages replica count. Overrides spec.autoscaling.Optional: {}
podDisruptionBudget PDBSpecPodDisruptionBudget for protecting availability during voluntary disruptions. Overrides spec.podDisruptionBudget.Optional: {}
image ImageOverrideSpecImage tag and/or repository overrides; inherits from spec.image if unset.Optional: {}
config stringPer-component raw Python appended after top-level config.Optional: {}
bootstrapScript stringPer-component bootstrap script. Overrides spec.bootstrapScript. Set to an
empty string to disable inherited bootstrap for this component.
Optional: {}
service ComponentServiceSpecService configuration (type, port, annotations).Optional: {}

CeleryWorkerComponentSpec

CeleryWorkerComponentSpec defines the celery worker component on the parent CRD.

Appears in:

FieldDescriptionDefaultValidation
deploymentTemplate DeploymentTemplateDeployment template (Deployment-level configuration).Optional: {}
podTemplate PodTemplatePod template (Pod and container configuration).Optional: {}
replicas integerDesired replica count; overridden by autoscaling when active. Defaults to spec.replicas if unset.Optional: {}
autoscaling AutoscalingSpecHorizontalPodAutoscaler configuration. When set, the HPA manages replica count. Overrides spec.autoscaling.Optional: {}
podDisruptionBudget PDBSpecPodDisruptionBudget for protecting availability during voluntary disruptions. Overrides spec.podDisruptionBudget.Optional: {}
image ImageOverrideSpecImage tag and/or repository overrides; inherits from spec.image if unset.Optional: {}
config stringPer-component raw Python appended after top-level config.Optional: {}
bootstrapScript stringPer-component bootstrap script. Overrides spec.bootstrapScript. Set to an
empty string to disable inherited bootstrap for this component.
Optional: {}
celery CeleryWorkerProcessSpecCelery worker execution configuration. Controls concurrency, pool type, and related parameters.Optional: {}
sqlaEngineOptions SQLAlchemyEngineOptionsSpecPer-component SQLAlchemy engine options (overrides spec.sqlaEngineOptions entirely).Optional: {}

CeleryWorkerProcessSpec

CeleryWorkerProcessSpec configures Celery worker execution parameters. Fields controlled by presets: concurrency, pool. All other fields have static defaults independent of preset.

Appears in:

FieldDescriptionDefaultValidation
preset stringPreset controlling concurrency and pool defaults.
Individual fields override preset-computed values.
Enum: [disabled conservative balanced performance aggressive]
Optional: {}
concurrency integerNumber of concurrent task workers (maps to celery -c flag).Minimum: 1
Optional: {}
pool stringCelery pool implementation.Enum: [prefork threads gevent eventlet solo]
Optional: {}
optimization stringTask distribution optimization strategy.Enum: [default fair]
Optional: {}
maxTasksPerChild integerMaximum tasks a worker process handles before being replaced (prefork only; 0 = unlimited).Minimum: 0
Optional: {}
maxMemoryPerChild integerMaximum resident memory in bytes per worker before being replaced (prefork only; 0 = disabled).Minimum: 0
Optional: {}
prefetchMultiplier integerTask prefetch multiplier — number of tasks prefetched per worker.Minimum: 0
Optional: {}
softTimeLimit integerSoft time limit in seconds — raises SoftTimeLimitExceeded (0 = disabled).Minimum: 0
Optional: {}
timeLimit integerHard time limit in seconds — kills the task (0 = disabled).Minimum: 0
Optional: {}

ComponentRefStatus

ComponentRefStatus holds the status summary of a managed component.

Appears in:

FieldDescriptionDefaultValidation
phase stringPhase summarizes the component workload state.Enum: [Pending Progressing Ready Unavailable Drained]
Optional: {}
resources ComponentResourceStatus arrayResources lists the Kubernetes resources currently expected for this
component and whether the operator can observe them.
Optional: {}
image stringImage currently configured on the component's main container.Optional: {}
replicas integerDesired replica count used for status reporting.Optional: {}
readyReplicas integerReadyReplicas is the number of ready component pods.Optional: {}
updatedReplicas integerUpdatedReplicas is the number of pods updated to the current template.Optional: {}
availableReplicas integerAvailableReplicas is the number of available component pods.Optional: {}
configChecksum stringChecksum stamped on the component pod template by the parent. Drives
rolling restarts; surfaced here so users can see which revision each
component is reconciling against.
Optional: {}
message stringMessage gives a short human-oriented reason when the component is not ready.Optional: {}

ComponentResourceStatus

ComponentResourceStatus describes one Kubernetes resource managed for a component.

Appears in:

FieldDescriptionDefaultValidation
kind stringResource kind, for example Deployment, Service, ConfigMap, HorizontalPodAutoscaler.
name stringResource name.
status stringObserved status: Present or Missing.Enum: [Present Missing]

ComponentServiceSpec

ComponentServiceSpec defines the Service configuration for a component.

Appears in:

FieldDescriptionDefaultValidation
type ServiceTypeService type (ClusterIP, NodePort, LoadBalancer).ClusterIPEnum: [ClusterIP NodePort LoadBalancer]
Optional: {}
port integerService port exposed to clients. Defaults to the component's standard port (8088 for web server, 5555 for Flower).Optional: {}
nodePort integerFixed NodePort number when type=NodePort (30000-32767). If omitted, Kubernetes auto-assigns.Maximum: 32767
Minimum: 30000
Optional: {}
annotations object (keys:string, values:string)Service annotations (e.g., for cloud load balancer configuration).Optional: {}
labels object (keys:string, values:string)Service labels; merged with operator-managed labels.Optional: {}
gatewayPath stringURL path prefix for this component's HTTPRoute rule.
Only used when spec.networking.gateway is set.
Defaults: /ws (websocket), /mcp (MCP server), /flower (Celery Flower).
Pattern: ^/[a-zA-Z0-9/_.-]+$
Optional: {}

ComponentSpec

ComponentSpec defines per-component identity fields. Embedded by all component specs except InitSpec.

Appears in:

FieldDescriptionDefaultValidation
image ImageOverrideSpecImage tag and/or repository overrides; inherits from spec.image if unset.Optional: {}

ComponentStatusMap

ComponentStatusMap holds status for each component.

Appears in:

FieldDescriptionDefaultValidation
webServer ComponentRefStatusOptional: {}
celeryWorker ComponentRefStatusOptional: {}
celeryBeat ComponentRefStatusOptional: {}
celeryFlower ComponentRefStatusOptional: {}
websocketServer ComponentRefStatusOptional: {}
mcpServer ComponentRefStatusOptional: {}

ContainerImageSpec

ContainerImageSpec defines a generic container image. Unlike ImageSpec, it has no Superset-specific repository default — the operator selects a context-appropriate default at reconcile time when fields are omitted (e.g., nginx:alpine for the maintenance page, postgres:17-alpine / mysql:8-alpine for the seed Job). Use this type for non-Superset images.

Appears in:

FieldDescriptionDefaultValidation
repository stringContainer image repository.Optional: {}
tag stringImage tag.Optional: {}
pullPolicy PullPolicyImage pull policy (IfNotPresent, Always, Never).IfNotPresentOptional: {}
pullSecrets LocalObjectReference arrayReferences to Secrets for pulling images from private registries.Optional: {}

ContainerTemplate

ContainerTemplate configures fields on the main Superset container.

Appears in:

FieldDescriptionDefaultValidation
resources ResourceRequirementsResource requirements (CPU, memory).Optional: {}
env EnvVar arrayEnvironment variables.Optional: {}
envFrom EnvFromSource arrayEnvironment variable sources (ConfigMaps, Secrets).Optional: {}
volumeMounts VolumeMount arrayVolume mounts for the main container.Optional: {}
ports ContainerPort arrayContainer ports. Replaces operator defaults when set.Optional: {}
securityContext SecurityContextContainer-level security context.Optional: {}
command string arrayContainer entrypoint override.Optional: {}
args string arrayContainer arguments override.Optional: {}
livenessProbe ProbeLiveness probe; container is restarted when the probe fails.Optional: {}
readinessProbe ProbeReadiness probe; pod is removed from Service endpoints when the probe fails.Optional: {}
startupProbe ProbeStartup probe; liveness and readiness probes are deferred until this probe succeeds.Optional: {}
lifecycle LifecycleLifecycle hooks for the main container.Optional: {}

DeploymentTemplate

DeploymentTemplate configures Kubernetes Deployment-level fields for operator-managed Deployments. Pod and container configuration is in the sibling PodTemplate field.

Appears in:

FieldDescriptionDefaultValidation
revisionHistoryLimit integerNumber of old ReplicaSets to retain for rollback.Optional: {}
minReadySeconds integerMinimum seconds a pod must be ready before considered available.Optional: {}
progressDeadlineSeconds integerMaximum seconds for a deployment to make progress before considered failed.Optional: {}
strategy DeploymentStrategyDeployment update strategy.Optional: {}
labels object (keys:string, values:string)Deployment metadata labels (merged with operator-managed labels which
cannot be overridden).
Optional: {}
annotations object (keys:string, values:string)Deployment metadata annotations.Optional: {}

GatewaySpec

GatewaySpec defines HTTPRoute configuration.

Appears in:

FieldDescriptionDefaultValidation
gatewayRef ParentReferenceReference to the Gateway resource to attach the HTTPRoute to.
hostnames Hostname arrayHostnames for the HTTPRoute (e.g., “superset.example.com”).Optional: {}
annotations object (keys:string, values:string)HTTPRoute annotations.Optional: {}
labels object (keys:string, values:string)HTTPRoute labels.Optional: {}

GunicornSpec

GunicornSpec configures Gunicorn worker parameters for the web server. Fields controlled by presets: workers, threads, workerClass. All other fields have static defaults independent of preset.

Appears in:

FieldDescriptionDefaultValidation
preset stringPreset controlling workers, threads, and workerClass defaults.
Individual fields override preset-computed values.
Enum: [disabled conservative balanced performance aggressive]
Optional: {}
workers integerNumber of Gunicorn worker processes.Minimum: 1
Optional: {}
threads integerNumber of threads per worker (only effective with gthread worker class).Minimum: 1
Optional: {}
workerClass stringGunicorn worker class.Enum: [sync gthread gevent eventlet]
Optional: {}
timeout integerRequest timeout in seconds.Minimum: 1
Optional: {}
keepAlive integerKeep-alive timeout in seconds for waiting for requests on a connection.Minimum: 0
Optional: {}
maxRequests integerMaximum requests per worker before recycling (0 = disabled).Minimum: 0
Optional: {}
maxRequestsJitter integerRandom jitter added to maxRequests to prevent thundering herd on worker recycling.Minimum: 0
Optional: {}
limitRequestLine integerMaximum size of HTTP request line in bytes (0 = unlimited).Minimum: 0
Optional: {}
limitRequestFieldSize integerMaximum size of HTTP request header field in bytes (0 = unlimited).Minimum: 0
Optional: {}
logLevel stringGunicorn log level.Enum: [debug info warning error critical]
Optional: {}

ImageOverrideSpec

ImageOverrideSpec allows a component to override specific image fields. Unset fields inherit from spec.image.

Appears in:

FieldDescriptionDefaultValidation
tag stringOverride the image tag for this component; inherits from spec.image.tag if omitted.Optional: {}
repository stringOverride the image repository for this component; inherits from spec.image.repository if omitted.Optional: {}
pullPolicy PullPolicyOverride the image pull policy for this component; inherits from spec.image.pullPolicy if omitted.Enum: [Always IfNotPresent Never]
Optional: {}

ImageSpec

ImageSpec defines the container image configuration.

Appears in:

FieldDescriptionDefaultValidation
repository stringContainer image repository.apachesuperset.docker.scarf.sh/apache/supersetOptional: {}
tag stringImage tag.MinLength: 1
pullPolicy PullPolicyImage pull policy (IfNotPresent, Always, Never).IfNotPresentOptional: {}
pullSecrets LocalObjectReference arrayReferences to Secrets for pulling images from private registries.Optional: {}

IngressHost

IngressHost defines a host rule for the Ingress.

Appears in:

FieldDescriptionDefaultValidation
host stringOptional: {}
paths IngressPath arrayOptional: {}

IngressPath

IngressPath defines a path rule for an Ingress host.

Appears in:

FieldDescriptionDefaultValidation
path string/
pathType PathTypePrefixOptional: {}

IngressSpec

IngressSpec defines Ingress configuration.

Appears in:

FieldDescriptionDefaultValidation
className stringIngressClass name (e.g., “nginx”) that determines which controller processes this Ingress.Optional: {}
host stringPrimary hostname for the Ingress rule (e.g., “superset.example.com”).Optional: {}
annotations object (keys:string, values:string)Ingress annotations (e.g., for TLS, auth, or controller-specific configuration).Optional: {}
labels object (keys:string, values:string)Ingress labels.Optional: {}
hosts IngressHost arrayAdditional host/path rules beyond the primary host.Optional: {}
tls IngressTLS arrayTLS configuration (certificate secrets and hostnames).Optional: {}

InitTaskSpec

InitTaskSpec defines the application initialization task. Triggers on config changes and upstream task re-execution.

Appears in:

FieldDescriptionDefaultValidation
command string arrayCommand override for the task Job.Optional: {}
trigger stringTrigger is an opaque string. Changing its value forces a re-run of this
task and all downstream tasks. Use a timestamp, UUID, or CI build ID.
Optional: {}
requiresDrain booleanRequiresDrain controls whether components must be drained before this
task runs. When true, the operator removes component workloads before
executing the task Job, preventing database connection conflicts. Drain is
skipped when the task is already complete for the current checksum, or when
no configured component has desired replicas greater than zero.
Defaults vary per task type: true for seed, migrate, and rotate; false for init.
Optional: {}
timeout DurationMaximum timeout per attempt.Optional: {}
maxRetries integerMaximum number of retries before permanent failure.3Minimum: 1
Optional: {}
disabled booleanDisabled skips this task entirely when true.Optional: {}
adminUser AdminUserSpecAdmin user to create during initialization. Only allowed in Development mode.
When set, the operator appends a superset fab create-admin step to the init command.
Optional: {}
loadExamples booleanLoad example dashboards and data during initialization. Only allowed in Development mode.
When true, the operator appends a superset load-examples step to the init command.
Optional: {}

LifecycleSpec

LifecycleSpec defines lifecycle management configuration for database migrations and application initialization tasks.

Appears in:

FieldDescriptionDefaultValidation
upgradeMode stringUpgradeMode controls whether upgrades require manual approval.
Automatic runs immediately on image change; Supervised waits for an
approval annotation matching the recorded upgrade token before proceeding.
AutomaticEnum: [Automatic Supervised]
Optional: {}
disabled booleanSet to true to skip all lifecycle tasks entirely.Optional: {}
image ImageOverrideSpecImage override for lifecycle task Jobs.Optional: {}
podTemplate PodTemplatePod and container template for lifecycle task Jobs.Optional: {}
podRetention PodRetentionSpecRetention policy for completed lifecycle task Jobs and their Pods.Optional: {}
config stringPer-lifecycle raw Python appended after top-level config.Optional: {}
bootstrapScript stringBootstrap script for lifecycle migrate, rotate, and init task Jobs.
Overrides spec.bootstrapScript. Set to an empty string to disable inherited
bootstrap for lifecycle tasks.
Optional: {}
sqlaEngineOptions SQLAlchemyEngineOptionsSpecPer-lifecycle SQLAlchemy engine options (overrides spec.sqlaEngineOptions entirely).Optional: {}
maintenancePage MaintenancePageSpecMaintenancePage configures a lightweight maintenance page served during
lifecycle drain and task execution. Presence enables the feature when a
drain will actually run and an existing web-server workload is present.
In managed mode (no image override), an nginx:alpine container serves
a default or custom HTML page. In custom mode (image set), the user's
image handles serving, and content fields are passed as env vars.
Optional: {}
seed SeedTaskSpecSeed configures database seeding from an external source before running
migrations. The seed target is always spec.metastore. Only allowed in
Development or Staging mode.
Optional: {}
migrate MigrateTaskSpecDatabase migration task configuration.Optional: {}
rotate RotateTaskSpecSecret key rotation task configuration. Runs after migrate and before init.
Presence enables the task; absence disables it.
Optional: {}
init InitTaskSpecApplication initialization task configuration.Optional: {}

LifecycleStatus

LifecycleStatus tracks the current lifecycle task execution state.

Appears in:

FieldDescriptionDefaultValidation
phase stringPhase of the lifecycle: Seeding, Draining, Migrating, Rotating, Initializing, Restoring, Complete, Blocked, AwaitingApproval.Optional: {}
maintenanceActive booleanMaintenanceActive indicates the maintenance page is currently serving traffic
via the web-server Service.
Optional: {}
lastCompletedChecksums object (keys:string, values:string)LastCompletedChecksums maps task type to its task checksum at last
successful completion. Used to detect input drift when task status refs
are absent.
Optional: {}
seed TaskRefStatusSeed task status summary.Optional: {}
migrate TaskRefStatusMigrate task status summary.Optional: {}
rotate TaskRefStatusRotate task status summary.Optional: {}
init TaskRefStatusInit task status summary.Optional: {}
upgrade UpgradeContextUpgrade context (populated during active upgrade).Optional: {}

MaintenancePageSpec

MaintenancePageSpec configures a lightweight maintenance page served while components are drained for lifecycle tasks. The page is only started when a drain will actually run and an existing web-server workload is present. Supports two modes:

  • Managed (default): uses nginx:alpine with operator-generated HTML and nginx config.
  • Custom (image set): user provides their own image/command; content fields are passed as SUPERSET_OPERATOR__MAINTENANCE_* env vars.

Appears in:

FieldDescriptionDefaultValidation
title stringTitle displayed on the maintenance page heading (managed mode).
In custom mode, passed as env var SUPERSET_OPERATOR__MAINTENANCE_TITLE.
Optional: {}
message stringMessage displayed below the title (managed mode).
In custom mode, passed as env var SUPERSET_OPERATOR__MAINTENANCE_MESSAGE.
Optional: {}
body stringFull HTML page content. When set in managed mode, title and message are
ignored and this value is served as the complete page.
In custom mode, passed as env var SUPERSET_OPERATOR__MAINTENANCE_BODY.
Optional: {}
image ContainerImageSpecImage for the maintenance page container. When set, switches to custom
mode: no nginx config is injected, and the user‘s image is responsible
for serving HTTP traffic on the web-server port (default 8088). The port
must match the web-server Service’s target port since the maintenance page
takes over that Service during lifecycle tasks.
When unset, defaults to nginx:alpine (managed mode). Partial specs (e.g.,
only tag set) inherit the nginx default for the omitted fields.
Optional: {}
replicas integerNumber of maintenance page pod replicas.1Optional: {}
deploymentTemplate DeploymentTemplateDeployment-level overrides for the maintenance page (strategy, revision history).
For pod-level settings, use PodTemplate.
Optional: {}
podTemplate PodTemplatePod template for the maintenance page pod.Optional: {}

McpServerComponentSpec

McpServerComponentSpec defines the MCP server component on the parent CRD.

Appears in:

FieldDescriptionDefaultValidation
deploymentTemplate DeploymentTemplateDeployment template (Deployment-level configuration).Optional: {}
podTemplate PodTemplatePod template (Pod and container configuration).Optional: {}
replicas integerDesired replica count; overridden by autoscaling when active. Defaults to spec.replicas if unset.Optional: {}
autoscaling AutoscalingSpecHorizontalPodAutoscaler configuration. When set, the HPA manages replica count. Overrides spec.autoscaling.Optional: {}
podDisruptionBudget PDBSpecPodDisruptionBudget for protecting availability during voluntary disruptions. Overrides spec.podDisruptionBudget.Optional: {}
image ImageOverrideSpecImage tag and/or repository overrides; inherits from spec.image if unset.Optional: {}
config stringPer-component raw Python appended after top-level config.Optional: {}
bootstrapScript stringPer-component bootstrap script. Overrides spec.bootstrapScript. Set to an
empty string to disable inherited bootstrap for this component.
Optional: {}
service ComponentServiceSpecService configuration (type, port, annotations).Optional: {}
sqlaEngineOptions SQLAlchemyEngineOptionsSpecPer-component SQLAlchemy engine options (overrides spec.sqlaEngineOptions entirely).Optional: {}

MetastoreSpec

MetastoreSpec defines the database connection for Superset's metastore. Either a URI (passthrough) or structured fields (host, database, etc.) can be used. They are mutually exclusive.

Appears in:

FieldDescriptionDefaultValidation
uri stringFull SQLAlchemy database URI. Mutually exclusive with structured fields and uriFrom.
In Staging or Production, CRD validation rejects plain text URIs — use uriFrom to reference a Kubernetes Secret.
Optional: {}
uriFrom SecretKeySelectorReference to a Secret key containing the full SQLAlchemy URI.
Mutually exclusive with uri and structured fields.
Optional: {}
type stringDatabase type. Determines the SQLAlchemy dialect and default driver.PostgreSQLEnum: [PostgreSQL MySQL]
Optional: {}
driver stringSQLAlchemy driver name for structured mode. When omitted, PostgreSQL uses
psycopg2 and MySQL uses mysqldb. Set this to a driver installed in the
Superset image, such as psycopg, pg8000, pymysql, or mysqlconnector. The
operator selects the SQLAlchemy scheme only; it does not install Python
driver packages into the image.
Pattern: ^[A-Za-z0-9_]+$
Optional: {}
host stringDatabase hostname.Optional: {}
port integerDatabase port. Defaults per type (5432 for PostgreSQL, 3306 for MySQL).Optional: {}
database stringDatabase name.Optional: {}
username stringDatabase username.Optional: {}
password stringDatabase password. In Staging or Production, CRD validation rejects plain text passwords — use passwordFrom to reference a Kubernetes Secret.Optional: {}
passwordFrom SecretKeySelectorReference to a Secret key containing the database password.
Mutually exclusive with password.
Optional: {}
createDatabase booleanCreateDatabase, when true, instructs the operator to attach a one-shot
init container to the migrate Job that issues CREATE DATABASE against
the server before superset db upgrade runs. Existing databases are
detected and the step becomes a no-op. Requires the configured metastore
user to hold CREATEDB (PostgreSQL) or CREATE (MySQL) privilege on the
server. Only valid with structured metastore (host/database/username);
rejected when uri or uriFrom is set.
Optional: {}

MigrateTaskSpec

MigrateTaskSpec defines the database migration task. Triggers on image tag changes and upstream task re-execution.

Appears in:

FieldDescriptionDefaultValidation
command string arrayCommand override for the task Job.Optional: {}
trigger stringTrigger is an opaque string. Changing its value forces a re-run of this
task and all downstream tasks. Use a timestamp, UUID, or CI build ID.
Optional: {}
requiresDrain booleanRequiresDrain controls whether components must be drained before this
task runs. When true, the operator removes component workloads before
executing the task Job, preventing database connection conflicts. Drain is
skipped when the task is already complete for the current checksum, or when
no configured component has desired replicas greater than zero.
Defaults vary per task type: true for seed, migrate, and rotate; false for init.
Optional: {}
timeout DurationMaximum timeout per attempt.Optional: {}
maxRetries integerMaximum number of retries before permanent failure.3Minimum: 1
Optional: {}
disabled booleanDisabled skips this task entirely when true.Optional: {}

MonitoringSpec

MonitoringSpec defines Prometheus monitoring configuration.

Appears in:

FieldDescriptionDefaultValidation
serviceMonitor ServiceMonitorSpecOptional: {}

NetworkPolicySpec

NetworkPolicySpec defines network segmentation configuration.

Appears in:

FieldDescriptionDefaultValidation
extraIngress NetworkPolicyIngressRule arrayAdditional ingress rules appended to the operator-generated NetworkPolicy (e.g., allow traffic from monitoring namespace).Optional: {}
extraEgress NetworkPolicyEgressRule arrayAdditional egress rules appended to the operator-generated NetworkPolicy.Optional: {}

NetworkingSpec

NetworkingSpec defines external access configuration.

Appears in:

FieldDescriptionDefaultValidation
gateway GatewaySpecGateway API HTTPRoute configuration.Optional: {}
ingress IngressSpecIngress configuration.Optional: {}

PDBSpec

PDBSpec configures a PodDisruptionBudget.

Appears in:

FieldDescriptionDefaultValidation
minAvailable IntOrStringMinimum pods that must remain available during voluntary disruptions. Mutually exclusive with maxUnavailable.Optional: {}
maxUnavailable IntOrStringMaximum pods allowed to be unavailable during voluntary disruptions. Mutually exclusive with minAvailable.Optional: {}

PodRetentionSpec

PodRetentionSpec defines retention behavior for lifecycle task Jobs and their Pods.

Appears in:

FieldDescriptionDefaultValidation
policy stringRetention policy: Delete removes Jobs and Pods after completion, Retain keeps all,
RetainOnFailure (the default) keeps only failed Jobs and Pods for debugging and
deletes successful ones to reduce noise. Retained Jobs and Pods are automatically
deleted when the task is reset or disabled, and garbage-collected when the
parent Superset CR is deleted.
RetainOnFailureEnum: [Delete Retain RetainOnFailure]
Optional: {}

PodTemplate

PodTemplate configures Kubernetes PodSpec fields for the pod template.

Appears in:

FieldDescriptionDefaultValidation
annotations object (keys:string, values:string)Pod annotations.Optional: {}
labels object (keys:string, values:string)Pod labels (merged with operator-managed labels which cannot be overridden).Optional: {}
affinity AffinityPod affinity and anti-affinity rules for scheduling.Optional: {}
tolerations Toleration arrayTolerations for scheduling on tainted nodes.Optional: {}
nodeSelector object (keys:string, values:string)Node labels for constraining pod scheduling.Optional: {}
topologySpreadConstraints TopologySpreadConstraint arrayTopology spread constraints for distributing pods across failure domains.Optional: {}
hostAliases HostAlias arrayEntries added to /etc/hosts in pod containers.Optional: {}
podSecurityContext PodSecurityContextPod-level security context (runAsUser, fsGroup, seccomp, etc.).Optional: {}
priorityClassName stringPriority class name for pod scheduling priority and preemption.Optional: {}
volumes Volume arrayAdditional volumes for the pod (mounted via container.volumeMounts).Optional: {}
sidecars Container arraySidecar containers added alongside the main Superset container.Optional: {}
initContainers Container arrayInit containers run before the main container starts.Optional: {}
terminationGracePeriodSeconds integerGrace period for pod termination in seconds.Optional: {}
dnsPolicy DNSPolicyDNS policy for pods.Optional: {}
dnsConfig PodDNSConfigCustom DNS configuration for pods.Optional: {}
runtimeClassName stringRuntimeClass for pods.Optional: {}
shareProcessNamespace booleanShare a single process namespace between all containers in a pod.Optional: {}
enableServiceLinks booleanControls whether service environment variables are injected into pods.Optional: {}
resources ResourceRequirementsPod-level resource requirements (CPU, memory). When set, defines the total
resources for the entire pod, enabling resource sharing among containers.
Requires Kubernetes 1.34+ with the PodLevelResources feature gate.
Optional: {}
container ContainerTemplateMain container configuration.Optional: {}

RotateTaskSpec

RotateTaskSpec defines the secret key rotation task. Runs superset re-encrypt-secrets between migrate and init when the secret key is rotated. Requires previousSecretKey or previousSecretKeyFrom to be set on the parent spec.

Appears in:

FieldDescriptionDefaultValidation
command string arrayCommand override for the task Job.Optional: {}
trigger stringTrigger is an opaque string. Changing its value forces a re-run of this
task and all downstream tasks. Use a timestamp, UUID, or CI build ID.
Optional: {}
requiresDrain booleanRequiresDrain controls whether components must be drained before this
task runs. When true, the operator removes component workloads before
executing the task Job, preventing database connection conflicts. Drain is
skipped when the task is already complete for the current checksum, or when
no configured component has desired replicas greater than zero.
Defaults vary per task type: true for seed, migrate, and rotate; false for init.
Optional: {}
timeout DurationMaximum timeout per attempt.Optional: {}
maxRetries integerMaximum number of retries before permanent failure.3Minimum: 1
Optional: {}
disabled booleanDisabled skips this task entirely when true.Optional: {}

SQLAlchemyEngineOptionsSpec

SQLAlchemyEngineOptionsSpec configures the SQLAlchemy connection pool. Fields controlled by presets: poolClass (NullPool vs QueuePool), poolSize, maxOverflow. Static defaults: poolRecycle=3600, poolPrePing=false.

Appears in:

FieldDescriptionDefaultValidation
preset stringPreset for connection pool behavior. “disabled” suppresses rendering entirely.
“conservative” uses NullPool (no persistent connections).
“balanced” through “aggressive” use QueuePool with increasing pool sizes.
Individual fields override preset-computed values.
Enum: [disabled conservative balanced performance aggressive]
Optional: {}
poolSize integerNumber of persistent connections in the pool. Overrides preset calculation.Minimum: 0
Optional: {}
maxOverflow integerMaximum overflow connections beyond poolSize (-1 = unlimited).Optional: {}
poolRecycle integerConnection max-age in seconds before recycling.Minimum: 0
Optional: {}
poolPrePing booleanVerify connections are alive before use.Optional: {}
poolTimeout integerSeconds to wait for a connection from the pool before giving up.Minimum: 0
Optional: {}

ScalableComponentSpec

ScalableComponentSpec provides deployment template and scaling fields. Embedded by scalable components (WebServer, CeleryWorker, CeleryFlower, WebsocketServer, McpServer). Non-scalable components (CeleryBeat, Init) use DeploymentTemplate or PodTemplate directly.

Appears in:

FieldDescriptionDefaultValidation
deploymentTemplate DeploymentTemplateDeployment template (Deployment-level configuration).Optional: {}
podTemplate PodTemplatePod template (Pod and container configuration).Optional: {}
replicas integerDesired replica count; overridden by autoscaling when active. Defaults to spec.replicas if unset.Optional: {}
autoscaling AutoscalingSpecHorizontalPodAutoscaler configuration. When set, the HPA manages replica count. Overrides spec.autoscaling.Optional: {}
podDisruptionBudget PDBSpecPodDisruptionBudget for protecting availability during voluntary disruptions. Overrides spec.podDisruptionBudget.Optional: {}

SchedulableBaseTaskSpec

SchedulableBaseTaskSpec extends BaseTaskSpec with cron-based scheduling. Tasks that embed this type can be periodically re-executed without external triggers. The schedule is additive to the manual trigger field.

Appears in:

FieldDescriptionDefaultValidation
command string arrayCommand override for the task Job.Optional: {}
trigger stringTrigger is an opaque string. Changing its value forces a re-run of this
task and all downstream tasks. Use a timestamp, UUID, or CI build ID.
Optional: {}
requiresDrain booleanRequiresDrain controls whether components must be drained before this
task runs. When true, the operator removes component workloads before
executing the task Job, preventing database connection conflicts. Drain is
skipped when the task is already complete for the current checksum, or when
no configured component has desired replicas greater than zero.
Defaults vary per task type: true for seed, migrate, and rotate; false for init.
Optional: {}
timeout DurationMaximum timeout per attempt.Optional: {}
maxRetries integerMaximum number of retries before permanent failure.3Minimum: 1
Optional: {}
disabled booleanDisabled skips this task entirely when true.Optional: {}
cronSchedule stringCronSchedule is a 5-field cron expression (minute hour day-of-month month
day-of-week) that triggers periodic re-execution of this task and all
downstream tasks. When the clock crosses a cron boundary, the task
checksum changes and the lifecycle pipeline re-runs.
Uses standard cron syntax. Examples: “0 2 * * *” (daily 2 AM UTC),
“0 */6 * * *” (every 6 hours), “30 1 * * 1” (Mondays 1:30 AM UTC).
Predefined schedules (e.g. “@daily”) are not accepted; use the explicit
5-field form. Pattern validation rejects only malformed shape at
admission (e.g. fewer than five fields, disallowed characters);
out-of-range values like “99 99 99 99 99” still pass admission and are
caught by the runtime parser, which blocks the lifecycle pipeline with
an InvalidCronSchedule condition until the expression is corrected.
MaxLength: 256
MinLength: 9
Pattern: ^[A-Za-z0-9*/,?-]+(\s+[A-Za-z0-9*/,?-]+)\{4\}$
Optional: {}

SeedSourceSpec

SeedSourceSpec defines the source database connection for seeding.

Appears in:

FieldDescriptionDefaultValidation
type stringDatabase type: PostgreSQL (default) or MySQL.PostgreSQLEnum: [PostgreSQL MySQL]
Optional: {}
host stringSource database hostname.
port integerSource database port. Defaults to 5432 (postgresql) or 3306 (mysql).Optional: {}
database stringDatabase name on the source server.
username stringUsername for the source database (should have read-only access).
password stringPassword for the source database (Development mode only). In Staging,
use passwordFrom to reference a Kubernetes Secret.
Optional: {}
passwordFrom SecretKeySelectorPasswordFrom references a Secret containing the source database password.Optional: {}

SeedTaskSpec

SeedTaskSpec configures database seeding from an external source into this CR's metastore. Runs before migrate and init tasks. The seed target is always spec.metastore — the metastore user must have CREATEDB rights. Only allowed in Development or Staging mode. Triggers on source config changes and the trigger field (inherited from BaseTaskSpec).

Appears in:

FieldDescriptionDefaultValidation
command string arrayCommand override for the task Job.Optional: {}
trigger stringTrigger is an opaque string. Changing its value forces a re-run of this
task and all downstream tasks. Use a timestamp, UUID, or CI build ID.
Optional: {}
requiresDrain booleanRequiresDrain controls whether components must be drained before this
task runs. When true, the operator removes component workloads before
executing the task Job, preventing database connection conflicts. Drain is
skipped when the task is already complete for the current checksum, or when
no configured component has desired replicas greater than zero.
Defaults vary per task type: true for seed, migrate, and rotate; false for init.
Optional: {}
timeout DurationMaximum timeout per attempt.Optional: {}
maxRetries integerMaximum number of retries before permanent failure.3Minimum: 1
Optional: {}
disabled booleanDisabled skips this task entirely when true.Optional: {}
cronSchedule stringCronSchedule is a 5-field cron expression (minute hour day-of-month month
day-of-week) that triggers periodic re-execution of this task and all
downstream tasks. When the clock crosses a cron boundary, the task
checksum changes and the lifecycle pipeline re-runs.
Uses standard cron syntax. Examples: “0 2 * * *” (daily 2 AM UTC),
“0 */6 * * *” (every 6 hours), “30 1 * * 1” (Mondays 1:30 AM UTC).
Predefined schedules (e.g. “@daily”) are not accepted; use the explicit
5-field form. Pattern validation rejects only malformed shape at
admission (e.g. fewer than five fields, disallowed characters);
out-of-range values like “99 99 99 99 99” still pass admission and are
caught by the runtime parser, which blocks the lifecycle pipeline with
an InvalidCronSchedule condition until the expression is corrected.
MaxLength: 256
MinLength: 9
Pattern: ^[A-Za-z0-9*/,?-]+(\s+[A-Za-z0-9*/,?-]+)\{4\}$
Optional: {}
source SeedSourceSpecSource database to seed from (typically production, read-only user).
excludeTables string arrayTables to exclude entirely from the dump (schema and data).Optional: {}
excludeTableData string arrayTables where schema is dumped but data is not. Useful for large tables
needed by migrations but not for testing (e.g., “logs”, “query”).
Optional: {}
postSeedSQL string arraySQL statements to execute against the target database after seeding.
Useful for sanitizing seeded data (e.g., disabling alerts, deleting
OAuth tokens, masking PII).
Optional: {}
image ContainerImageSpecImage for the seed Job. Defaults to postgres:17-alpine (PostgreSQL)
or mysql:8-alpine (MySQL) based on source.type. Partial specs (e.g.,
only tag set) inherit the type-appropriate default for omitted fields.
Optional: {}
podTemplate PodTemplatePod and container template for the seed task Job.Optional: {}
podRetention PodRetentionSpecRetention policy for completed seed Jobs and their Pods.Optional: {}

ServiceAccountSpec

ServiceAccountSpec defines ServiceAccount configuration.

Appears in:

FieldDescriptionDefaultValidation
create booleanWhen true (default), the operator creates a ServiceAccount. When false, it references an existing one.Optional: {}
name stringServiceAccount name. Created by the operator when create=true; must pre-exist when create=false.Optional: {}
annotations object (keys:string, values:string)ServiceAccount annotations (e.g., for IAM role bindings on cloud platforms).Optional: {}

ServiceMonitorSpec

ServiceMonitorSpec defines the ServiceMonitor configuration.

Appears in:

FieldDescriptionDefaultValidation
interval stringScrape interval (e.g., “30s”). How often Prometheus scrapes the web server metrics endpoint.30sOptional: {}
labels object (keys:string, values:string)Labels for Prometheus ServiceMonitor discovery (must match your Prometheus selector).Optional: {}
scrapeTimeout stringMaximum time to wait for a scrape response before timing out.Optional: {}

Superset

Superset is the top-level resource representing a complete Superset deployment.

FieldDescriptionDefaultValidation
apiVersion stringsuperset.apache.org/v1alpha1
kind stringSuperset
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec SupersetSpec
status SupersetStatus

SupersetSpec

SupersetSpec defines the desired state of a Superset deployment.

Appears in:

FieldDescriptionDefaultValidation
image ImageSpecImage configuration inherited by all components.
deploymentTemplate DeploymentTemplateDeployment template defaults inherited by all components (field-level merge).Optional: {}
podTemplate PodTemplatePod template defaults inherited by all components (field-level merge).Optional: {}
replicas integerDefault replica count for all scalable components; per-component replicas override this.Optional: {}
autoscaling AutoscalingSpecDefault autoscaling for all scalable components (component-level overrides this).Optional: {}
podDisruptionBudget PDBSpecDefault pod disruption budget for all scalable components (component-level overrides this).Optional: {}
environment stringEnvironment mode: “Development”, “Staging”, or “Production”. Controls validation strictness.
In Production mode, CRD validation rejects plain text secrets and disallows seeding.
In Staging mode, secrets are enforced (like Production) but seeding is allowed.
In Development mode, plain text secrets, seeding, admin user, and load examples are all permitted.
ProductionEnum: [Development Staging Production]
Optional: {}
secretKey stringPlain text secret key for session signing. Only allowed in Development mode.
In Staging or Production, use secretKeyFrom to reference a Kubernetes Secret.
Optional: {}
secretKeyFrom SecretKeySelectorReference to a Secret key containing the secret key for session signing.
Mutually exclusive with secretKey.
Optional: {}
previousSecretKey stringPlain text previous secret key for key rotation. Only allowed in Development mode.
When set, rendered as PREVIOUS_SECRET_KEY in superset_config.py for all
Python components, enabling fallback decryption during key transitions.
Optional: {}
previousSecretKeyFrom SecretKeySelectorReference to a Secret key containing the previous secret key for rotation.
Mutually exclusive with previousSecretKey.
Optional: {}
metastore MetastoreSpecMetastore database connection configuration.Optional: {}
valkey ValkeySpecValkey cache, broker, and results backend configuration.Optional: {}
config stringRaw Python appended after operator-generated superset_config.py.Optional: {}
bootstrapScript stringShell script mounted as superset_bootstrap.sh and sourced before the
default command for Python components and lifecycle tasks. This is trusted
executable input; prefer custom images for production dependency installs.
Per-component bootstrapScript overrides this value. Set an override to an
empty string to disable inherited bootstrap for that component.
Optional: {}
featureFlags object (keys:string, values:boolean)Feature flags toggled in superset_config.py via FEATURE_FLAGS = {...}.
Keys conventionally use UPPER_SNAKE_CASE (e.g. ALERT_REPORTS); values are booleans.
Optional: {}
sqlaEngineOptions SQLAlchemyEngineOptionsSpecSQLAlchemy engine options for connection pooling. Inherited by all Python
components; per-component sqlaEngineOptions overrides this entirely.
When unset, the operator computes balanced defaults per component.
Optional: {}
webServer WebServerComponentSpecWeb server (gunicorn) component. Presence enables it; absence disables.Optional: {}
celeryWorker CeleryWorkerComponentSpecCelery async task worker component. Uses spec.valkey as broker/backend when set;
otherwise the broker must be configured manually via spec.config.
Optional: {}
celeryBeat CeleryBeatComponentSpecCelery periodic task scheduler (singleton, always 1 replica). Uses spec.valkey
as broker/backend when set; otherwise the broker must be configured manually
via spec.config.
Optional: {}
celeryFlower CeleryFlowerComponentSpecCelery Flower monitoring UI component.Optional: {}
websocketServer WebsocketServerComponentSpecWebSocket server for real-time updates (Node.js, no Python config).
Experimental: the websocket server is not yet well supported and is
pending security hardening — it may exhibit gaps in the operator (e.g.
unvalidated gateway/ingress routing) or upstream in the Superset/websocket
image. It requires a custom Node.js image. Treat it as subject to change
and avoid enabling it in production until it is hardened.
Optional: {}
mcpServer McpServerComponentSpecFastMCP server component for AI tooling integration.Optional: {}
lifecycle LifecycleSpecLifecycle configuration (database migration, init, upgrade mode).Optional: {}
networking NetworkingSpecNetworking configuration (Ingress or Gateway API).Optional: {}
monitoring MonitoringSpecMonitoring configuration.Optional: {}
networkPolicy NetworkPolicySpecNetwork policy configuration.Optional: {}
serviceAccount ServiceAccountSpecServiceAccount configuration.Optional: {}
suspend booleanSuspend stops reconciliation when true.Optional: {}
forceReload stringForceReload is an opaque string injected into all pod templates. Changing its value
triggers a rolling restart of all components. Use a timestamp or incrementing value
(e.g. “2026-04-24T12:00:00Z”) to force a restart after rotating referenced Secrets.
Optional: {}

SupersetStatus

SupersetStatus defines the observed state of Superset.

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayOptional: {}
observedGeneration integerOptional: {}
ready stringReady summarizes ready component replicas across all enabled components
in “ready/desired” format.
Optional: {}
components ComponentStatusMapOptional: {}
lifecycle LifecycleStatusLifecycle tracks the current lifecycle state.Optional: {}
lastLifecycleImage stringLast image (repository:tag) that successfully completed the lifecycle.
Used to detect image changes on subsequent reconciles.
Optional: {}
tag stringTag is the resolved image tag currently reconciled.Optional: {}
configChecksum stringOptional: {}
phase stringHigh-level phase.Enum: [Initializing Upgrading Running Degraded Suspended Blocked AwaitingApproval]
Optional: {}

TaskRefStatus

TaskRefStatus holds the projected status summary of a lifecycle task.

Appears in:

FieldDescriptionDefaultValidation
state stringEnum: [Pending Running Complete Failed]
Optional: {}
startedAt TimeOptional: {}
completedAt TimeOptional: {}
attempts integerOptional: {}
maxRetries integerMaximum number of attempts before the task is considered permanently failed.Optional: {}
image stringOptional: {}
message stringOptional: {}
nextAttemptAt TimeNextAttemptAt is the earliest time the operator may retry this task after
a failure or timeout.
Optional: {}
desiredChecksum stringDesiredChecksum is the checksum for the task inputs the operator is
currently trying to execute.
Optional: {}
completedChecksum stringCompletedChecksum is the task input checksum that last reached a terminal
Complete or Failed state.
Optional: {}
conditions Condition arrayOptional: {}
lastScheduledAt TimeLastScheduledAt is the cron tick that triggered the most recent scheduled run.Optional: {}
nextScheduleAt TimeNextScheduleAt is the next future cron tick when the schedule will fire.Optional: {}

UpgradeContext

UpgradeContext tracks the current upgrade operation.

Appears in:

FieldDescriptionDefaultValidation
fromTag stringFromTag is the image tag previously reconciled.Optional: {}
toTag stringToTag is the image tag being reconciled.Optional: {}
approvalToken stringApprovalToken is the annotation value required to approve this exact upgrade transition.Optional: {}
startedAt TimeOptional: {}

ValkeyCacheSpec

ValkeyCacheSpec tunes a Superset Flask-Caching backend backed by Valkey.

Appears in:

FieldDescriptionDefaultValidation
disabled booleanDisable this cache section. When true, the operator does not render
this config — Superset falls back to its built-in default.
Optional: {}
database integerValkey database number.Optional: {}
keyPrefix stringCache key prefix.Optional: {}
defaultTimeout integerDefault cache timeout in seconds.Optional: {}

ValkeyCelerySpec

ValkeyCelerySpec tunes a Celery Valkey connection.

Appears in:

FieldDescriptionDefaultValidation
disabled booleanDisable this Celery backend. When true, the operator does not render this config.Optional: {}
database integerValkey database number.Optional: {}

ValkeyResultsBackendSpec

ValkeyResultsBackendSpec tunes the SQL Lab async results backend.

Appears in:

FieldDescriptionDefaultValidation
disabled booleanDisable the results backend. When true, the operator does not render this config.Optional: {}
database integerValkey database number.Optional: {}
keyPrefix stringCache key prefix for results.Optional: {}

ValkeySSLSpec

ValkeySSLSpec configures TLS for the Valkey connection.

Appears in:

FieldDescriptionDefaultValidation
certRequired stringCertificate verification mode.requiredEnum: [required optional none]
Optional: {}
keyFile stringPath to the client private key file (for mTLS).Optional: {}
certFile stringPath to the client certificate file (for mTLS).Optional: {}
caCertFile stringPath to the CA certificate file for server verification.Optional: {}

ValkeySpec

ValkeySpec configures Valkey as the shared cache backend, Celery message broker, and SQL Lab results backend for Superset. When set, all sections are enabled with sensible defaults — only host is required.

Appears in:

FieldDescriptionDefaultValidation
host stringValkey server hostname.
port integerValkey server port.6379Optional: {}
username stringValkey username. Useful for Redis ACL or managed Redis-compatible services.Optional: {}
password stringPlain text password. Only allowed in Development mode — use passwordFrom in Staging or Production.Optional: {}
passwordFrom SecretKeySelectorReference to a Secret key containing the Valkey password.
Mutually exclusive with password.
Optional: {}
ssl ValkeySSLSpecSSL/TLS configuration. When set, enables SSL for the Valkey connection.Optional: {}
cache ValkeyCacheSpecGeneral cache (CACHE_CONFIG). Default: db=1, prefix=“superset_”, timeout=300s.Optional: {}
dataCache ValkeyCacheSpecData/query results cache (DATA_CACHE_CONFIG). Default: db=2, prefix=“superset_data_”, timeout=86400s.Optional: {}
filterStateCache ValkeyCacheSpecDashboard filter state cache (FILTER_STATE_CACHE_CONFIG). Default: db=3, prefix=“superset_filter_”, timeout=3600s.Optional: {}
exploreFormDataCache ValkeyCacheSpecChart builder form state cache (EXPLORE_FORM_DATA_CACHE_CONFIG). Default: db=4, prefix=“superset_explore_”, timeout=3600s.Optional: {}
thumbnailCache ValkeyCacheSpecThumbnail cache (THUMBNAIL_CACHE_CONFIG). Default: db=5, prefix=“superset_thumbnail_”, timeout=3600s.Optional: {}
distributedCoordination ValkeyCacheSpecDistributed coordination backend (DISTRIBUTED_COORDINATION_CONFIG). Backs
real-time pub/sub messaging, atomic distributed locks, and Global Task
Framework signaling. Recommended for production deployments. Default:
db=7, prefix=“coordination_”, timeout=300s.
Optional: {}
celeryBroker ValkeyCelerySpecCelery broker (CeleryConfig.broker_url). Default: db=0.Optional: {}
celeryResultBackend ValkeyCelerySpecCelery result backend (CeleryConfig.result_backend). Default: db=0.Optional: {}
resultsBackend ValkeyResultsBackendSpecSQL Lab async results backend (RESULTS_BACKEND). Default: db=6, prefix=“superset_results_”.Optional: {}

WebServerComponentSpec

WebServerComponentSpec defines the web server component on the parent CRD.

Appears in:

FieldDescriptionDefaultValidation
deploymentTemplate DeploymentTemplateDeployment template (Deployment-level configuration).Optional: {}
podTemplate PodTemplatePod template (Pod and container configuration).Optional: {}
replicas integerDesired replica count; overridden by autoscaling when active. Defaults to spec.replicas if unset.Optional: {}
autoscaling AutoscalingSpecHorizontalPodAutoscaler configuration. When set, the HPA manages replica count. Overrides spec.autoscaling.Optional: {}
podDisruptionBudget PDBSpecPodDisruptionBudget for protecting availability during voluntary disruptions. Overrides spec.podDisruptionBudget.Optional: {}
image ImageOverrideSpecImage tag and/or repository overrides; inherits from spec.image if unset.Optional: {}
config stringPer-component raw Python appended after top-level config.Optional: {}
bootstrapScript stringPer-component bootstrap script. Overrides spec.bootstrapScript. Set to an
empty string to disable inherited bootstrap for this component.
Optional: {}
service ComponentServiceSpecService configuration (type, port, annotations).Optional: {}
gunicorn GunicornSpecGunicorn worker configuration. Controls worker processes, threads, and related parameters.Optional: {}
sqlaEngineOptions SQLAlchemyEngineOptionsSpecPer-component SQLAlchemy engine options (overrides spec.sqlaEngineOptions entirely).Optional: {}

WebsocketServerComponentSpec

WebsocketServerComponentSpec defines the websocket server component on the parent CRD. The websocket server is a Node.js app — the default Superset image does not contain websocket_server.js, so an image override is required.

Experimental: this component is not yet well supported. It requires a custom Node.js image, and path-based gateway/ingress routing to it has not been validated. The shape and behavior may change in a future release.

Appears in:

FieldDescriptionDefaultValidation
deploymentTemplate DeploymentTemplateDeployment template (Deployment-level configuration).Optional: {}
podTemplate PodTemplatePod template (Pod and container configuration).Optional: {}
replicas integerDesired replica count; overridden by autoscaling when active. Defaults to spec.replicas if unset.Optional: {}
autoscaling AutoscalingSpecHorizontalPodAutoscaler configuration. When set, the HPA manages replica count. Overrides spec.autoscaling.Optional: {}
podDisruptionBudget PDBSpecPodDisruptionBudget for protecting availability during voluntary disruptions. Overrides spec.podDisruptionBudget.Optional: {}
image ImageOverrideSpecImage tag and/or repository overrides; inherits from spec.image if unset.Optional: {}
config JSONInline config.json content for the websocket server. Only allowed in
Development mode because this config commonly contains jwtSecret or Redis
credentials. In Production, use configFrom to mount an existing Secret key.
Type: object
Optional: {}
configFrom SecretKeySelectorReference to a Secret key containing websocket server config.json.
The operator mounts the selected key at /home/superset-websocket/config.json
without reading or copying the Secret.
Optional: {}
service ComponentServiceSpecService configuration (type, port, annotations).Optional: {}