v1alpha1

package
v0.0.0-...-1377e06 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 10, 2026 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the superset v1alpha1 API group. +kubebuilder:object:generate=true +groupName=superset.apache.org

Index

Constants

View Source
const (
	ConditionTypeReady        = "Ready"
	ConditionTypeProgressing  = "Progressing"
	ConditionTypeDegraded     = "Degraded"
	ConditionTypeSuspended    = "Suspended"
	ConditionTypeInitComplete = "InitComplete"
	ConditionTypeAvailable    = "Available"
)

Condition type constants for Superset resources.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "superset.apache.org", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type AdminUserSpec

type AdminUserSpec struct {
	// Admin username.
	// +optional
	// +kubebuilder:default="admin"
	Username *string `json:"username,omitempty"`
	// Admin password. Stored as plain-text env var in dev mode.
	// +optional
	// +kubebuilder:default="admin"
	Password *string `json:"password,omitempty"`
	// Admin first name.
	// +optional
	// +kubebuilder:default="Superset"
	FirstName *string `json:"firstName,omitempty"`
	// Admin last name.
	// +optional
	// +kubebuilder:default="Admin"
	LastName *string `json:"lastName,omitempty"`
	// Admin email.
	// +optional
	// +kubebuilder:default="admin@example.com"
	Email *string `json:"email,omitempty"`
}

AdminUserSpec defines admin user credentials for dev-mode initialization.

func (*AdminUserSpec) DeepCopy

func (in *AdminUserSpec) DeepCopy() *AdminUserSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdminUserSpec.

func (*AdminUserSpec) DeepCopyInto

func (in *AdminUserSpec) DeepCopyInto(out *AdminUserSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AutoscalingSpec

type AutoscalingSpec struct {
	// Minimum replica count (defaults to 1).
	// +optional
	// +kubebuilder:validation:Minimum=1
	MinReplicas *int32 `json:"minReplicas,omitempty"`
	// Maximum replica count; HPA will not scale above this.
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=100
	MaxReplicas int32 `json:"maxReplicas"`
	// Metrics for the HPA. Supports CPU, memory, custom, and external metrics.
	// When empty, Kubernetes defaults to 80% average CPU utilization.
	// +optional
	Metrics []autoscalingv2.MetricSpec `json:"metrics,omitempty"`
}

AutoscalingSpec configures a HorizontalPodAutoscaler. +kubebuilder:validation:XValidation:rule="!has(self.minReplicas) || self.maxReplicas >= self.minReplicas",message="maxReplicas must be >= minReplicas"

func (*AutoscalingSpec) DeepCopy

func (in *AutoscalingSpec) DeepCopy() *AutoscalingSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AutoscalingSpec.

func (*AutoscalingSpec) DeepCopyInto

func (in *AutoscalingSpec) DeepCopyInto(out *AutoscalingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BaseTaskSpec

type BaseTaskSpec struct {
	// Command override for the task pod.
	// +optional
	// +listType=atomic
	Command []string `json:"command,omitempty"`

	// Maximum timeout per attempt.
	// +optional
	Timeout *metav1.Duration `json:"timeout,omitempty"`

	// Maximum number of retries before permanent failure.
	// +optional
	// +kubebuilder:default=3
	// +kubebuilder:validation:Minimum=1
	MaxRetries *int32 `json:"maxRetries,omitempty"`
}

BaseTaskSpec contains fields shared by all lifecycle task types.

func (*BaseTaskSpec) DeepCopy

func (in *BaseTaskSpec) DeepCopy() *BaseTaskSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BaseTaskSpec.

func (*BaseTaskSpec) DeepCopyInto

func (in *BaseTaskSpec) DeepCopyInto(out *BaseTaskSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CeleryBeatComponentSpec

type CeleryBeatComponentSpec struct {
	// Deployment-level overrides (strategy, revision history). Always enforces replicas=1.
	// +optional
	DeploymentTemplate *DeploymentTemplate `json:"deploymentTemplate,omitempty"`
	// Pod and container template for Celery beat pods.
	// +optional
	PodTemplate   *PodTemplate `json:"podTemplate,omitempty"`
	ComponentSpec `json:",inline"`
	// Per-component raw Python appended after top-level config.
	// +optional
	Config *string `json:"config,omitempty"`
	// Per-component SQLAlchemy engine options (overrides spec.sqlaEngineOptions entirely).
	// +optional
	SQLAlchemyEngineOptions *SQLAlchemyEngineOptionsSpec `json:"sqlaEngineOptions,omitempty"`
}

CeleryBeatComponentSpec defines the celery beat component on the parent CRD. The controller forces replicas=1 regardless of spec.

func (*CeleryBeatComponentSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CeleryBeatComponentSpec.

func (*CeleryBeatComponentSpec) DeepCopyInto

func (in *CeleryBeatComponentSpec) DeepCopyInto(out *CeleryBeatComponentSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CeleryFlowerComponentSpec

type CeleryFlowerComponentSpec struct {
	ScalableComponentSpec `json:",inline"`
	ComponentSpec         `json:",inline"`
	// Per-component raw Python appended after top-level config.
	// +optional
	Config *string `json:"config,omitempty"`
	// Service configuration (type, port, annotations).
	// +optional
	Service *ComponentServiceSpec `json:"service,omitempty"`
}

CeleryFlowerComponentSpec defines the celery flower component on the parent CRD.

func (*CeleryFlowerComponentSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CeleryFlowerComponentSpec.

func (*CeleryFlowerComponentSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CeleryWorkerComponentSpec

type CeleryWorkerComponentSpec struct {
	ScalableComponentSpec `json:",inline"`
	ComponentSpec         `json:",inline"`
	// Per-component raw Python appended after top-level config.
	// +optional
	Config *string `json:"config,omitempty"`
	// Celery worker execution configuration. Controls concurrency, pool type, and related parameters.
	// +optional
	Celery *CeleryWorkerProcessSpec `json:"celery,omitempty"`
	// Per-component SQLAlchemy engine options (overrides spec.sqlaEngineOptions entirely).
	// +optional
	SQLAlchemyEngineOptions *SQLAlchemyEngineOptionsSpec `json:"sqlaEngineOptions,omitempty"`
}

CeleryWorkerComponentSpec defines the celery worker component on the parent CRD.

func (*CeleryWorkerComponentSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CeleryWorkerComponentSpec.

func (*CeleryWorkerComponentSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CeleryWorkerProcessSpec

type CeleryWorkerProcessSpec struct {
	// Preset controlling concurrency and pool defaults.
	// Individual fields override preset-computed values.
	// +optional
	// +kubebuilder:validation:Enum=disabled;conservative;balanced;performance;aggressive
	Preset *string `json:"preset,omitempty"`

	// Number of concurrent task workers (maps to celery -c flag).
	// +optional
	// +kubebuilder:validation:Minimum=1
	Concurrency *int32 `json:"concurrency,omitempty"`

	// Celery pool implementation.
	// +optional
	// +kubebuilder:validation:Enum=prefork;threads;gevent;eventlet;solo
	Pool *string `json:"pool,omitempty"`

	// Task distribution optimization strategy.
	// +optional
	// +kubebuilder:validation:Enum=default;fair
	Optimization *string `json:"optimization,omitempty"`

	// Maximum tasks a worker process handles before being replaced (prefork only; 0 = unlimited).
	// +optional
	// +kubebuilder:validation:Minimum=0
	MaxTasksPerChild *int32 `json:"maxTasksPerChild,omitempty"`

	// Maximum resident memory in bytes per worker before being replaced (prefork only; 0 = disabled).
	// +optional
	// +kubebuilder:validation:Minimum=0
	MaxMemoryPerChild *int32 `json:"maxMemoryPerChild,omitempty"`

	// Task prefetch multiplier — number of tasks prefetched per worker.
	// +optional
	// +kubebuilder:validation:Minimum=0
	PrefetchMultiplier *int32 `json:"prefetchMultiplier,omitempty"`

	// Soft time limit in seconds — raises SoftTimeLimitExceeded (0 = disabled).
	// +optional
	// +kubebuilder:validation:Minimum=0
	SoftTimeLimit *int32 `json:"softTimeLimit,omitempty"`

	// Hard time limit in seconds — kills the task (0 = disabled).
	// +optional
	// +kubebuilder:validation:Minimum=0
	TimeLimit *int32 `json:"timeLimit,omitempty"`
}

CeleryWorkerProcessSpec configures Celery worker execution parameters. Fields controlled by presets: concurrency, pool. All other fields have static defaults independent of preset. +kubebuilder:validation:XValidation:rule="(!has(self.maxTasksPerChild) || self.maxTasksPerChild == 0) || !has(self.pool) || self.pool == 'prefork'",message="maxTasksPerChild only applies to pool=prefork" +kubebuilder:validation:XValidation:rule="(!has(self.maxMemoryPerChild) || self.maxMemoryPerChild == 0) || !has(self.pool) || self.pool == 'prefork'",message="maxMemoryPerChild only applies to pool=prefork"

func (*CeleryWorkerProcessSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CeleryWorkerProcessSpec.

func (*CeleryWorkerProcessSpec) DeepCopyInto

func (in *CeleryWorkerProcessSpec) DeepCopyInto(out *CeleryWorkerProcessSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ChildComponentStatus

type ChildComponentStatus struct {
	// "2/2" format showing ready vs desired replicas.
	// +optional
	Ready string `json:"ready,omitempty"`
	// Standard conditions.
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
	// ObservedGeneration for leader election consistency.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}

ChildComponentStatus reports the operational state of a child component.

func (*ChildComponentStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChildComponentStatus.

func (*ChildComponentStatus) DeepCopyInto

func (in *ChildComponentStatus) DeepCopyInto(out *ChildComponentStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CloneSourceSpec

type CloneSourceSpec struct {
	// Database type: PostgreSQL (default) or MySQL.
	// +optional
	// +kubebuilder:validation:Enum=PostgreSQL;MySQL
	// +kubebuilder:default=PostgreSQL
	Type *string `json:"type,omitempty"`

	// Source database hostname.
	Host string `json:"host"`

	// Source database port. Defaults to 5432 (postgresql) or 3306 (mysql).
	// +optional
	Port *int32 `json:"port,omitempty"`

	// Database name on the source server.
	Database string `json:"database"`

	// Username for the source database (should have read-only access).
	Username string `json:"username"`

	// Password for the source database (dev mode only).
	// +optional
	Password *string `json:"password,omitempty"`

	// PasswordFrom references a Secret containing the source database password.
	// +optional
	PasswordFrom *corev1.SecretKeySelector `json:"passwordFrom,omitempty"`
}

CloneSourceSpec defines the source database connection for cloning. +kubebuilder:validation:XValidation:rule="has(self.password) || has(self.passwordFrom)",message="one of password or passwordFrom must be set" +kubebuilder:validation:XValidation:rule="!has(self.password) || !has(self.passwordFrom)",message="password and passwordFrom are mutually exclusive"

func (*CloneSourceSpec) DeepCopy

func (in *CloneSourceSpec) DeepCopy() *CloneSourceSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloneSourceSpec.

func (*CloneSourceSpec) DeepCopyInto

func (in *CloneSourceSpec) DeepCopyInto(out *CloneSourceSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CloneTaskSpec

type CloneTaskSpec struct {
	BaseTaskSpec `json:",inline"`

	// Strategy determines when the clone runs.
	// OnTrigger: runs only when Trigger value changes (default).
	// Always: runs on every reconcile where the task is not Complete.
	// Never: disabled.
	// +optional
	// +kubebuilder:validation:Enum=OnTrigger;Always;Never
	// +kubebuilder:default=OnTrigger
	Strategy *string `json:"strategy,omitempty"`

	// Trigger is an opaque string. Changing its value causes a re-clone.
	// Typical values: a date ("2026-05-09"), a UUID, or a CI build ID.
	// +optional
	Trigger *string `json:"trigger,omitempty"`

	// Source database to clone from (typically production, read-only user).
	Source CloneSourceSpec `json:"source"`

	// Tables to exclude entirely from the dump (schema and data).
	// +optional
	ExcludeTables []string `json:"excludeTables,omitempty"`

	// Tables where schema is dumped but data is not. Useful for large tables
	// needed by migrations but not for testing (e.g., "logs", "query").
	// +optional
	ExcludeTableData []string `json:"excludeTableData,omitempty"`

	// Image for the clone pod. Defaults to postgres:17-alpine (PostgreSQL)
	// or mysql:8-alpine (MySQL) based on source.type.
	// +optional
	Image *ImageSpec `json:"image,omitempty"`

	// Pod and container template for the clone task pod.
	// +optional
	PodTemplate *PodTemplate `json:"podTemplate,omitempty"`

	// Pod retention policy for completed clone pods.
	// +optional
	PodRetention *PodRetentionSpec `json:"podRetention,omitempty"`
}

CloneTaskSpec configures database cloning from an external source into this CR's metastore. Runs before migrate and init tasks. The clone target is always spec.metastore — the metastore user must have CREATEDB rights. Only allowed in Development or Staging mode.

func (*CloneTaskSpec) DeepCopy

func (in *CloneTaskSpec) DeepCopy() *CloneTaskSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloneTaskSpec.

func (*CloneTaskSpec) DeepCopyInto

func (in *CloneTaskSpec) DeepCopyInto(out *CloneTaskSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ComponentRefStatus

type ComponentRefStatus struct {
	// "2/2" format showing ready vs desired replicas.
	Ready string `json:"ready"`
	// Reference to the child CR.
	Ref string `json:"ref"`
	// Config checksum on the child.
	// +optional
	ConfigChecksum string `json:"configChecksum,omitempty"`
}

ComponentRefStatus holds the status summary of a child component.

func (*ComponentRefStatus) DeepCopy

func (in *ComponentRefStatus) DeepCopy() *ComponentRefStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentRefStatus.

func (*ComponentRefStatus) DeepCopyInto

func (in *ComponentRefStatus) DeepCopyInto(out *ComponentRefStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ComponentServiceSpec

type ComponentServiceSpec struct {
	// Service type (ClusterIP, NodePort, LoadBalancer).
	// +optional
	// +kubebuilder:default=ClusterIP
	// +kubebuilder:validation:Enum=ClusterIP;NodePort;LoadBalancer
	Type corev1.ServiceType `json:"type,omitempty"`
	// Service port exposed to clients. Defaults to the component's standard port (8088 for web server, 5555 for Flower).
	// +optional
	Port *int32 `json:"port,omitempty"`
	// Fixed NodePort number when type=NodePort (30000-32767). If omitted, Kubernetes auto-assigns.
	// +optional
	NodePort *int32 `json:"nodePort,omitempty"`
	// Service annotations (e.g., for cloud load balancer configuration).
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
	// Service labels; merged with operator-managed labels.
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
	// URL 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).
	// +optional
	// +kubebuilder:validation:Pattern=`^/[a-zA-Z0-9/_.-]+$`
	GatewayPath *string `json:"gatewayPath,omitempty"`
}

ComponentServiceSpec defines the Service configuration for a component.

func (*ComponentServiceSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentServiceSpec.

func (*ComponentServiceSpec) DeepCopyInto

func (in *ComponentServiceSpec) DeepCopyInto(out *ComponentServiceSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ComponentSpec

type ComponentSpec struct {
	// Image tag and/or repository overrides; inherits from spec.image if unset.
	// +optional
	Image *ImageOverrideSpec `json:"image,omitempty"`
}

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

func (*ComponentSpec) DeepCopy

func (in *ComponentSpec) DeepCopy() *ComponentSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentSpec.

func (*ComponentSpec) DeepCopyInto

func (in *ComponentSpec) DeepCopyInto(out *ComponentSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ComponentStatusMap

type ComponentStatusMap struct {
	// +optional
	WebServer *ComponentRefStatus `json:"webServer,omitempty"`
	// +optional
	CeleryWorker *ComponentRefStatus `json:"celeryWorker,omitempty"`
	// +optional
	CeleryBeat *ComponentRefStatus `json:"celeryBeat,omitempty"`
	// +optional
	CeleryFlower *ComponentRefStatus `json:"celeryFlower,omitempty"`
	// +optional
	WebsocketServer *ComponentRefStatus `json:"websocketServer,omitempty"`
	// +optional
	McpServer *ComponentRefStatus `json:"mcpServer,omitempty"`
}

ComponentStatusMap holds status for each component.

func (*ComponentStatusMap) DeepCopy

func (in *ComponentStatusMap) DeepCopy() *ComponentStatusMap

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentStatusMap.

func (*ComponentStatusMap) DeepCopyInto

func (in *ComponentStatusMap) DeepCopyInto(out *ComponentStatusMap)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ContainerTemplate

type ContainerTemplate struct {
	// Resource requirements (CPU, memory).
	// +optional
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
	// Environment variables.
	// +optional
	Env []corev1.EnvVar `json:"env,omitempty"`
	// Environment variable sources (ConfigMaps, Secrets).
	// +optional
	EnvFrom []corev1.EnvFromSource `json:"envFrom,omitempty"`
	// Volume mounts for the main container.
	// +optional
	VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`
	// Container ports. Replaces operator defaults when set.
	// +optional
	Ports []corev1.ContainerPort `json:"ports,omitempty"`
	// Container-level security context.
	// +optional
	SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"`
	// Container entrypoint override.
	// +optional
	Command []string `json:"command,omitempty"`
	// Container arguments override.
	// +optional
	Args []string `json:"args,omitempty"`
	// Liveness probe; container is restarted when the probe fails.
	// +optional
	LivenessProbe *corev1.Probe `json:"livenessProbe,omitempty"`
	// Readiness probe; pod is removed from Service endpoints when the probe fails.
	// +optional
	ReadinessProbe *corev1.Probe `json:"readinessProbe,omitempty"`
	// Startup probe; liveness and readiness probes are deferred until this probe succeeds.
	// +optional
	StartupProbe *corev1.Probe `json:"startupProbe,omitempty"`
	// Lifecycle hooks for the main container.
	// +optional
	Lifecycle *corev1.Lifecycle `json:"lifecycle,omitempty"`
}

ContainerTemplate configures fields on the main Superset container.

func (*ContainerTemplate) DeepCopy

func (in *ContainerTemplate) DeepCopy() *ContainerTemplate

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerTemplate.

func (*ContainerTemplate) DeepCopyInto

func (in *ContainerTemplate) DeepCopyInto(out *ContainerTemplate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeploymentTemplate

type DeploymentTemplate struct {
	// Number of old ReplicaSets to retain for rollback.
	// +optional
	RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty"`
	// Minimum seconds a pod must be ready before considered available.
	// +optional
	MinReadySeconds *int32 `json:"minReadySeconds,omitempty"`
	// Maximum seconds for a deployment to make progress before considered failed.
	// +optional
	ProgressDeadlineSeconds *int32 `json:"progressDeadlineSeconds,omitempty"`
	// Deployment update strategy.
	// +optional
	Strategy *appsv1.DeploymentStrategy `json:"strategy,omitempty"`
}

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

func (*DeploymentTemplate) DeepCopy

func (in *DeploymentTemplate) DeepCopy() *DeploymentTemplate

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentTemplate.

func (*DeploymentTemplate) DeepCopyInto

func (in *DeploymentTemplate) DeepCopyInto(out *DeploymentTemplate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FlatComponentSpec

type FlatComponentSpec struct {
	// Container image configuration.
	Image ImageSpec `json:"image"`

	// Desired replica count.
	// +optional
	// +kubebuilder:default=1
	Replicas *int32 `json:"replicas,omitempty"`

	// Fully-resolved deployment template.
	// +optional
	DeploymentTemplate *DeploymentTemplate `json:"deploymentTemplate,omitempty"`

	// Fully-resolved pod template.
	// +optional
	PodTemplate *PodTemplate `json:"podTemplate,omitempty"`

	// ServiceAccountName to set on the pod.
	// +optional
	ServiceAccountName string `json:"serviceAccountName,omitempty"`

	// Autoscaling configuration.
	// +optional
	Autoscaling *AutoscalingSpec `json:"autoscaling,omitempty"`

	// PodDisruptionBudget configuration.
	// +optional
	PodDisruptionBudget *PDBSpec `json:"podDisruptionBudget,omitempty"`
}

FlatComponentSpec defines the common fields for all fully-resolved child specs. This is embedded (inlined) in each child CRD spec type.

func (*FlatComponentSpec) DeepCopy

func (in *FlatComponentSpec) DeepCopy() *FlatComponentSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlatComponentSpec.

func (*FlatComponentSpec) DeepCopyInto

func (in *FlatComponentSpec) DeepCopyInto(out *FlatComponentSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GatewaySpec

type GatewaySpec struct {
	// Reference to the Gateway resource to attach the HTTPRoute to.
	GatewayRef gatewayv1.ParentReference `json:"gatewayRef"`
	// Hostnames for the HTTPRoute (e.g., "superset.example.com").
	// +optional
	Hostnames []gatewayv1.Hostname `json:"hostnames,omitempty"`
	// HTTPRoute annotations.
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
	// HTTPRoute labels.
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
}

GatewaySpec defines HTTPRoute configuration.

func (*GatewaySpec) DeepCopy

func (in *GatewaySpec) DeepCopy() *GatewaySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewaySpec.

func (*GatewaySpec) DeepCopyInto

func (in *GatewaySpec) DeepCopyInto(out *GatewaySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GunicornSpec

type GunicornSpec struct {
	// Preset controlling workers, threads, and workerClass defaults.
	// Individual fields override preset-computed values.
	// +optional
	// +kubebuilder:validation:Enum=disabled;conservative;balanced;performance;aggressive
	Preset *string `json:"preset,omitempty"`

	// Number of Gunicorn worker processes.
	// +optional
	// +kubebuilder:validation:Minimum=1
	Workers *int32 `json:"workers,omitempty"`

	// Number of threads per worker (only effective with gthread worker class).
	// +optional
	// +kubebuilder:validation:Minimum=1
	Threads *int32 `json:"threads,omitempty"`

	// Gunicorn worker class.
	// +optional
	// +kubebuilder:validation:Enum=sync;gthread;gevent;eventlet
	WorkerClass *string `json:"workerClass,omitempty"`

	// Request timeout in seconds.
	// +optional
	// +kubebuilder:validation:Minimum=1
	Timeout *int32 `json:"timeout,omitempty"`

	// Keep-alive timeout in seconds for waiting for requests on a connection.
	// +optional
	// +kubebuilder:validation:Minimum=0
	KeepAlive *int32 `json:"keepAlive,omitempty"`

	// Maximum requests per worker before recycling (0 = disabled).
	// +optional
	// +kubebuilder:validation:Minimum=0
	MaxRequests *int32 `json:"maxRequests,omitempty"`

	// Random jitter added to maxRequests to prevent thundering herd on worker recycling.
	// +optional
	// +kubebuilder:validation:Minimum=0
	MaxRequestsJitter *int32 `json:"maxRequestsJitter,omitempty"`

	// Maximum size of HTTP request line in bytes (0 = unlimited).
	// +optional
	// +kubebuilder:validation:Minimum=0
	LimitRequestLine *int32 `json:"limitRequestLine,omitempty"`

	// Maximum size of HTTP request header field in bytes (0 = unlimited).
	// +optional
	// +kubebuilder:validation:Minimum=0
	LimitRequestFieldSize *int32 `json:"limitRequestFieldSize,omitempty"`

	// Gunicorn log level.
	// +optional
	// +kubebuilder:validation:Enum=debug;info;warning;error;critical
	LogLevel *string `json:"logLevel,omitempty"`
}

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. +kubebuilder:validation:XValidation:rule="!has(self.threads) || self.threads <= 1 || !has(self.workerClass) || self.workerClass == 'gthread'",message="threads > 1 requires workerClass=gthread"

func (*GunicornSpec) DeepCopy

func (in *GunicornSpec) DeepCopy() *GunicornSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GunicornSpec.

func (*GunicornSpec) DeepCopyInto

func (in *GunicornSpec) DeepCopyInto(out *GunicornSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ImageOverrideSpec

type ImageOverrideSpec struct {
	// Override the image tag for this component; inherits from spec.image.tag if omitted.
	// +optional
	Tag *string `json:"tag,omitempty"`
	// Override the image repository for this component; inherits from spec.image.repository if omitted.
	// +optional
	Repository *string `json:"repository,omitempty"`
}

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

func (*ImageOverrideSpec) DeepCopy

func (in *ImageOverrideSpec) DeepCopy() *ImageOverrideSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageOverrideSpec.

func (*ImageOverrideSpec) DeepCopyInto

func (in *ImageOverrideSpec) DeepCopyInto(out *ImageOverrideSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ImageSpec

type ImageSpec struct {
	// Container image repository.
	// +optional
	// +kubebuilder:default="apachesuperset.docker.scarf.sh/apache/superset"
	Repository string `json:"repository,omitempty"`

	// Image tag.
	// +kubebuilder:validation:MinLength=1
	Tag string `json:"tag"`

	// Image pull policy (IfNotPresent, Always, Never).
	// +optional
	// +kubebuilder:default=IfNotPresent
	PullPolicy corev1.PullPolicy `json:"pullPolicy,omitempty"`

	// References to Secrets for pulling images from private registries.
	// +optional
	PullSecrets []corev1.LocalObjectReference `json:"pullSecrets,omitempty"`
}

ImageSpec defines the container image configuration.

func (*ImageSpec) DeepCopy

func (in *ImageSpec) DeepCopy() *ImageSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageSpec.

func (*ImageSpec) DeepCopyInto

func (in *ImageSpec) DeepCopyInto(out *ImageSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IngressHost

type IngressHost struct {
	// +optional
	Host string `json:"host,omitempty"`
	// +optional
	Paths []IngressPath `json:"paths,omitempty"`
}

IngressHost defines a host rule for the Ingress.

func (*IngressHost) DeepCopy

func (in *IngressHost) DeepCopy() *IngressHost

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressHost.

func (*IngressHost) DeepCopyInto

func (in *IngressHost) DeepCopyInto(out *IngressHost)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IngressPath

type IngressPath struct {
	// +kubebuilder:default="/"
	Path string `json:"path,omitempty"`
	// +optional
	// +kubebuilder:default="Prefix"
	PathType *networkingv1.PathType `json:"pathType,omitempty"`
}

IngressPath defines a path rule for an Ingress host.

func (*IngressPath) DeepCopy

func (in *IngressPath) DeepCopy() *IngressPath

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressPath.

func (*IngressPath) DeepCopyInto

func (in *IngressPath) DeepCopyInto(out *IngressPath)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IngressSpec

type IngressSpec struct {
	// IngressClass name (e.g., "nginx") that determines which controller processes this Ingress.
	// +optional
	ClassName *string `json:"className,omitempty"`
	// Primary hostname for the Ingress rule (e.g., "superset.example.com").
	// +optional
	Host string `json:"host,omitempty"`
	// Ingress annotations (e.g., for TLS, auth, or controller-specific configuration).
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
	// Ingress labels.
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
	// Additional host/path rules beyond the primary host.
	// +optional
	Hosts []IngressHost `json:"hosts,omitempty"`
	// TLS configuration (certificate secrets and hostnames).
	// +optional
	TLS []networkingv1.IngressTLS `json:"tls,omitempty"`
}

IngressSpec defines Ingress configuration.

func (*IngressSpec) DeepCopy

func (in *IngressSpec) DeepCopy() *IngressSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressSpec.

func (*IngressSpec) DeepCopyInto

func (in *IngressSpec) DeepCopyInto(out *IngressSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type InitTaskSpec

type InitTaskSpec struct {
	BaseTaskSpec `json:",inline"`

	// Strategy controls when the init task runs.
	// VersionChange: only on image changes (default).
	// Always: on any spec change (image, config, command).
	// Never: skip entirely.
	// +optional
	// +kubebuilder:validation:Enum=VersionChange;Always;Never
	// +kubebuilder:default=VersionChange
	Strategy *string `json:"strategy,omitempty"`

	// Admin user to create during initialization. Only allowed in dev mode.
	// When set, the operator appends a superset fab create-admin step to the init command.
	// +optional
	AdminUser *AdminUserSpec `json:"adminUser,omitempty"`

	// Load example dashboards and data during initialization. Only allowed in dev mode.
	// When true, the operator appends a superset load-examples step to the init command.
	// +optional
	LoadExamples *bool `json:"loadExamples,omitempty"`
}

InitTaskSpec defines when and how the application initialization task runs.

func (*InitTaskSpec) DeepCopy

func (in *InitTaskSpec) DeepCopy() *InitTaskSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InitTaskSpec.

func (*InitTaskSpec) DeepCopyInto

func (in *InitTaskSpec) DeepCopyInto(out *InitTaskSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LifecycleSpec

type LifecycleSpec struct {
	// UpgradeMode controls whether upgrades require manual approval.
	// Automatic runs immediately on image change; Supervised waits for an
	// approval annotation before proceeding.
	// +optional
	// +kubebuilder:validation:Enum=Automatic;Supervised
	// +kubebuilder:default=Automatic
	UpgradeMode *string `json:"upgradeMode,omitempty"`

	// UpgradeStrategy controls component behavior during lifecycle tasks.
	// Drain (default): all components scale to 0 before tasks run, preventing
	// metastore deadlocks and inconsistencies between component versions and
	// the migrated database schema.
	// Rolling: tasks run while existing components stay up. Not supported when
	// clone is enabled (clone always drains). Use only when you are certain
	// migrations are safe to run under live traffic.
	// +optional
	// +kubebuilder:validation:Enum=Rolling;Drain
	// +kubebuilder:default=Drain
	UpgradeStrategy *string `json:"upgradeStrategy,omitempty"`

	// Set to true to skip all lifecycle tasks entirely.
	// +optional
	Disabled *bool `json:"disabled,omitempty"`

	// Image override for lifecycle task pods.
	// +optional
	Image *ImageOverrideSpec `json:"image,omitempty"`

	// Pod and container template for lifecycle task pods.
	// +optional
	PodTemplate *PodTemplate `json:"podTemplate,omitempty"`

	// Pod retention policy for completed task pods.
	// +optional
	PodRetention *PodRetentionSpec `json:"podRetention,omitempty"`

	// Per-lifecycle raw Python appended after top-level config.
	// +optional
	Config *string `json:"config,omitempty"`

	// Per-lifecycle SQLAlchemy engine options (overrides spec.sqlaEngineOptions entirely).
	// +optional
	SQLAlchemyEngineOptions *SQLAlchemyEngineOptionsSpec `json:"sqlaEngineOptions,omitempty"`

	// Clone configures database cloning from an external source before running
	// migrations. The clone target is always spec.metastore. Only allowed in dev mode.
	// +optional
	Clone *CloneTaskSpec `json:"clone,omitempty"`

	// Database migration task configuration.
	// +optional
	Migrate *MigrateTaskSpec `json:"migrate,omitempty"`

	// Application initialization task configuration.
	// +optional
	Init *InitTaskSpec `json:"init,omitempty"`
}

LifecycleSpec defines lifecycle management configuration for database migrations and application initialization tasks. +kubebuilder:validation:XValidation:rule="!has(self.init) || !has(self.init.command) || size(self.init.command) == 0 || (!has(self.init.adminUser) && !has(self.init.loadExamples))",message="init.command is mutually exclusive with init.adminUser and init.loadExamples" +kubebuilder:validation:XValidation:rule="!has(self.clone) || !has(self.clone.source.password) || !has(self.clone.source.passwordFrom)",message="clone.source.password and clone.source.passwordFrom are mutually exclusive"

func (*LifecycleSpec) DeepCopy

func (in *LifecycleSpec) DeepCopy() *LifecycleSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LifecycleSpec.

func (*LifecycleSpec) DeepCopyInto

func (in *LifecycleSpec) DeepCopyInto(out *LifecycleSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LifecycleStatus

type LifecycleStatus struct {
	// Phase of the lifecycle: Idle, Cloning, Migrating, Initializing, Complete, Blocked, AwaitingApproval.
	// +optional
	Phase string `json:"phase,omitempty"`
	// Clone task status summary.
	// +optional
	Clone *TaskRefStatus `json:"clone,omitempty"`
	// Migrate task status summary.
	// +optional
	Migrate *TaskRefStatus `json:"migrate,omitempty"`
	// Init task status summary.
	// +optional
	Init *TaskRefStatus `json:"init,omitempty"`
	// Upgrade context (populated during active upgrade).
	// +optional
	Upgrade *UpgradeContext `json:"upgrade,omitempty"`
}

LifecycleStatus tracks the current lifecycle task execution state.

func (*LifecycleStatus) DeepCopy

func (in *LifecycleStatus) DeepCopy() *LifecycleStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LifecycleStatus.

func (*LifecycleStatus) DeepCopyInto

func (in *LifecycleStatus) DeepCopyInto(out *LifecycleStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type McpServerComponentSpec

type McpServerComponentSpec struct {
	ScalableComponentSpec `json:",inline"`
	ComponentSpec         `json:",inline"`
	// Per-component raw Python appended after top-level config.
	// +optional
	Config *string `json:"config,omitempty"`
	// Service configuration (type, port, annotations).
	// +optional
	Service *ComponentServiceSpec `json:"service,omitempty"`
	// Per-component SQLAlchemy engine options (overrides spec.sqlaEngineOptions entirely).
	// +optional
	SQLAlchemyEngineOptions *SQLAlchemyEngineOptionsSpec `json:"sqlaEngineOptions,omitempty"`
}

McpServerComponentSpec defines the MCP server component on the parent CRD.

func (*McpServerComponentSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new McpServerComponentSpec.

func (*McpServerComponentSpec) DeepCopyInto

func (in *McpServerComponentSpec) DeepCopyInto(out *McpServerComponentSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MetastoreSpec

type MetastoreSpec struct {
	// Full SQLAlchemy database URI. Mutually exclusive with structured fields and uriFrom.
	// In prod mode, CRD validation rejects plain text URIs — use uriFrom to reference a Kubernetes Secret.
	// +optional
	URI *string `json:"uri,omitempty"`

	// Reference to a Secret key containing the full SQLAlchemy URI.
	// Mutually exclusive with uri and structured fields.
	// +optional
	URIFrom *corev1.SecretKeySelector `json:"uriFrom,omitempty"`

	// Database type. Determines the SQLAlchemy driver.
	// +optional
	// +kubebuilder:validation:Enum=PostgreSQL;MySQL
	// +kubebuilder:default=PostgreSQL
	Type *string `json:"type,omitempty"`

	// Database hostname.
	// +optional
	Host *string `json:"host,omitempty"`

	// Database port. Defaults per driver (5432 for postgresql, 3306 for mysql).
	// +optional
	Port *int32 `json:"port,omitempty"`

	// Database name.
	// +optional
	Database *string `json:"database,omitempty"`

	// Database username.
	// +optional
	Username *string `json:"username,omitempty"`

	// Database password. In prod mode, CRD validation rejects plain text passwords — use passwordFrom to reference a Kubernetes Secret.
	// +optional
	Password *string `json:"password,omitempty"`

	// Reference to a Secret key containing the database password.
	// Mutually exclusive with password.
	// +optional
	PasswordFrom *corev1.SecretKeySelector `json:"passwordFrom,omitempty"`
}

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. +kubebuilder:validation:XValidation:rule="!(has(self.uri) && has(self.uriFrom))",message="uri and uriFrom are mutually exclusive" +kubebuilder:validation:XValidation:rule="!(has(self.password) && has(self.passwordFrom))",message="password and passwordFrom are mutually exclusive" +kubebuilder:validation:XValidation:rule="!(has(self.uri) && (has(self.host) || has(self.database) || has(self.username) || has(self.password) || has(self.passwordFrom) || has(self.port)))",message="uri and structured fields are mutually exclusive" +kubebuilder:validation:XValidation:rule="!(has(self.uriFrom) && (has(self.host) || has(self.database) || has(self.username) || has(self.password) || has(self.passwordFrom) || has(self.port)))",message="uriFrom and structured fields are mutually exclusive" +kubebuilder:validation:XValidation:rule="!((has(self.database) || has(self.username) || has(self.password) || has(self.passwordFrom) || has(self.port)) && !has(self.host))",message="structured fields (database, username, password, passwordFrom, port) require host to be set" +kubebuilder:validation:XValidation:rule="!has(self.host) || (has(self.database) && has(self.username))",message="structured metastore requires database and username when host is set"

func (*MetastoreSpec) DeepCopy

func (in *MetastoreSpec) DeepCopy() *MetastoreSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetastoreSpec.

func (*MetastoreSpec) DeepCopyInto

func (in *MetastoreSpec) DeepCopyInto(out *MetastoreSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MigrateTaskSpec

type MigrateTaskSpec struct {
	BaseTaskSpec `json:",inline"`

	// Strategy controls when the migrate task runs.
	// VersionChange: only on image changes (default).
	// Always: on any spec change (image, config, command).
	// Never: skip (user manages migrations externally).
	// +optional
	// +kubebuilder:validation:Enum=VersionChange;Always;Never
	// +kubebuilder:default=VersionChange
	Strategy *string `json:"strategy,omitempty"`
}

MigrateTaskSpec defines when and how the database migration task runs.

func (*MigrateTaskSpec) DeepCopy

func (in *MigrateTaskSpec) DeepCopy() *MigrateTaskSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MigrateTaskSpec.

func (*MigrateTaskSpec) DeepCopyInto

func (in *MigrateTaskSpec) DeepCopyInto(out *MigrateTaskSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MonitoringSpec

type MonitoringSpec struct {
	// +optional
	ServiceMonitor *ServiceMonitorSpec `json:"serviceMonitor,omitempty"`
}

MonitoringSpec defines Prometheus monitoring configuration.

func (*MonitoringSpec) DeepCopy

func (in *MonitoringSpec) DeepCopy() *MonitoringSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitoringSpec.

func (*MonitoringSpec) DeepCopyInto

func (in *MonitoringSpec) DeepCopyInto(out *MonitoringSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NetworkPolicySpec

type NetworkPolicySpec struct {
	// Additional ingress rules appended to the operator-generated NetworkPolicy (e.g., allow traffic from monitoring namespace).
	// +optional
	ExtraIngress []networkingv1.NetworkPolicyIngressRule `json:"extraIngress,omitempty"`
	// Additional egress rules appended to the operator-generated NetworkPolicy.
	// +optional
	ExtraEgress []networkingv1.NetworkPolicyEgressRule `json:"extraEgress,omitempty"`
}

NetworkPolicySpec defines network segmentation configuration.

func (*NetworkPolicySpec) DeepCopy

func (in *NetworkPolicySpec) DeepCopy() *NetworkPolicySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicySpec.

func (*NetworkPolicySpec) DeepCopyInto

func (in *NetworkPolicySpec) DeepCopyInto(out *NetworkPolicySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NetworkingSpec

type NetworkingSpec struct {
	// Gateway API HTTPRoute configuration.
	// +optional
	Gateway *GatewaySpec `json:"gateway,omitempty"`

	// Ingress configuration.
	// +optional
	Ingress *IngressSpec `json:"ingress,omitempty"`
}

NetworkingSpec defines external access configuration. +kubebuilder:validation:XValidation:rule="!(has(self.gateway) && has(self.ingress))",message="gateway and ingress are mutually exclusive"

func (*NetworkingSpec) DeepCopy

func (in *NetworkingSpec) DeepCopy() *NetworkingSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkingSpec.

func (*NetworkingSpec) DeepCopyInto

func (in *NetworkingSpec) DeepCopyInto(out *NetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PDBSpec

type PDBSpec struct {
	// Minimum pods that must remain available during voluntary disruptions. Mutually exclusive with maxUnavailable.
	// +optional
	MinAvailable *intstr.IntOrString `json:"minAvailable,omitempty"`
	// Maximum pods allowed to be unavailable during voluntary disruptions. Mutually exclusive with minAvailable.
	// +optional
	MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"`
}

PDBSpec configures a PodDisruptionBudget. +kubebuilder:validation:XValidation:rule="!(has(self.minAvailable) && has(self.maxUnavailable))",message="minAvailable and maxUnavailable are mutually exclusive"

func (*PDBSpec) DeepCopy

func (in *PDBSpec) DeepCopy() *PDBSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PDBSpec.

func (*PDBSpec) DeepCopyInto

func (in *PDBSpec) DeepCopyInto(out *PDBSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PodRetentionSpec

type PodRetentionSpec struct {
	// Retention policy: Delete removes pods after completion, Retain keeps all,
	// RetainOnFailure keeps only failed pods for debugging.
	// +optional
	// +kubebuilder:validation:Enum=Delete;Retain;RetainOnFailure
	// +kubebuilder:default=Delete
	Policy *string `json:"policy,omitempty"`
}

PodRetentionSpec defines retention behavior for init pods.

func (*PodRetentionSpec) DeepCopy

func (in *PodRetentionSpec) DeepCopy() *PodRetentionSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodRetentionSpec.

func (*PodRetentionSpec) DeepCopyInto

func (in *PodRetentionSpec) DeepCopyInto(out *PodRetentionSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PodTemplate

type PodTemplate struct {
	// Pod annotations.
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
	// Pod labels (merged with operator-managed labels which cannot be overridden).
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
	// Pod affinity and anti-affinity rules for scheduling.
	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty"`
	// Tolerations for scheduling on tainted nodes.
	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
	// Node labels for constraining pod scheduling.
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`
	// Topology spread constraints for distributing pods across failure domains.
	// +optional
	TopologySpreadConstraints []corev1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"`
	// Entries added to /etc/hosts in pod containers.
	// +optional
	HostAliases []corev1.HostAlias `json:"hostAliases,omitempty"`
	// Pod-level security context (runAsUser, fsGroup, seccomp, etc.).
	// +optional
	PodSecurityContext *corev1.PodSecurityContext `json:"podSecurityContext,omitempty"`
	// Priority class name for pod scheduling priority and preemption.
	// +optional
	PriorityClassName *string `json:"priorityClassName,omitempty"`
	// Additional volumes for the pod (mounted via container.volumeMounts).
	// +optional
	Volumes []corev1.Volume `json:"volumes,omitempty"`
	// Sidecar containers added alongside the main Superset container.
	// +optional
	Sidecars []corev1.Container `json:"sidecars,omitempty"`
	// Init containers run before the main container starts.
	// +optional
	InitContainers []corev1.Container `json:"initContainers,omitempty"`
	// Grace period for pod termination in seconds.
	// +optional
	TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"`
	// DNS policy for pods.
	// +optional
	DNSPolicy *corev1.DNSPolicy `json:"dnsPolicy,omitempty"`
	// Custom DNS configuration for pods.
	// +optional
	DNSConfig *corev1.PodDNSConfig `json:"dnsConfig,omitempty"`
	// RuntimeClass for pods.
	// +optional
	RuntimeClassName *string `json:"runtimeClassName,omitempty"`
	// Share a single process namespace between all containers in a pod.
	// +optional
	ShareProcessNamespace *bool `json:"shareProcessNamespace,omitempty"`
	// Controls whether service environment variables are injected into pods.
	// +optional
	EnableServiceLinks *bool `json:"enableServiceLinks,omitempty"`
	// Pod-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
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
	// Main container configuration.
	// +optional
	Container *ContainerTemplate `json:"container,omitempty"`
}

PodTemplate configures Kubernetes PodSpec fields for the pod template.

func (*PodTemplate) DeepCopy

func (in *PodTemplate) DeepCopy() *PodTemplate

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodTemplate.

func (*PodTemplate) DeepCopyInto

func (in *PodTemplate) DeepCopyInto(out *PodTemplate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SQLAlchemyEngineOptionsSpec

type SQLAlchemyEngineOptionsSpec struct {
	// Preset 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.
	// +optional
	// +kubebuilder:validation:Enum=disabled;conservative;balanced;performance;aggressive
	Preset *string `json:"preset,omitempty"`

	// Number of persistent connections in the pool. Overrides preset calculation.
	// +optional
	// +kubebuilder:validation:Minimum=0
	PoolSize *int32 `json:"poolSize,omitempty"`

	// Maximum overflow connections beyond poolSize (-1 = unlimited).
	// +optional
	MaxOverflow *int32 `json:"maxOverflow,omitempty"`

	// Connection max-age in seconds before recycling.
	// +optional
	// +kubebuilder:validation:Minimum=0
	PoolRecycle *int32 `json:"poolRecycle,omitempty"`

	// Verify connections are alive before use.
	// +optional
	PoolPrePing *bool `json:"poolPrePing,omitempty"`

	// Seconds to wait for a connection from the pool before giving up.
	// +optional
	// +kubebuilder:validation:Minimum=0
	PoolTimeout *int32 `json:"poolTimeout,omitempty"`
}

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

func (*SQLAlchemyEngineOptionsSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SQLAlchemyEngineOptionsSpec.

func (*SQLAlchemyEngineOptionsSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ScalableComponentSpec

type ScalableComponentSpec struct {
	// Deployment template (Deployment-level configuration).
	// +optional
	DeploymentTemplate *DeploymentTemplate `json:"deploymentTemplate,omitempty"`
	// Pod template (Pod and container configuration).
	// +optional
	PodTemplate *PodTemplate `json:"podTemplate,omitempty"`
	// Desired replica count; overridden by autoscaling when active. Defaults to spec.replicas if unset.
	// +optional
	Replicas *int32 `json:"replicas,omitempty"`
	// HorizontalPodAutoscaler configuration. When set, the HPA manages replica count. Overrides spec.autoscaling.
	// +optional
	Autoscaling *AutoscalingSpec `json:"autoscaling,omitempty"`
	// PodDisruptionBudget for protecting availability during voluntary disruptions. Overrides spec.podDisruptionBudget.
	// +optional
	PodDisruptionBudget *PDBSpec `json:"podDisruptionBudget,omitempty"`
}

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.

func (*ScalableComponentSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalableComponentSpec.

func (*ScalableComponentSpec) DeepCopyInto

func (in *ScalableComponentSpec) DeepCopyInto(out *ScalableComponentSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceAccountSpec

type ServiceAccountSpec struct {
	// When true (default), the operator creates a ServiceAccount. When false, it references an existing one.
	// +optional
	Create *bool `json:"create,omitempty"`
	// ServiceAccount name. Created by the operator when create=true; must pre-exist when create=false.
	// +optional
	Name string `json:"name,omitempty"`
	// ServiceAccount annotations (e.g., for IAM role bindings on cloud platforms).
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
}

ServiceAccountSpec defines ServiceAccount configuration.

func (*ServiceAccountSpec) DeepCopy

func (in *ServiceAccountSpec) DeepCopy() *ServiceAccountSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountSpec.

func (*ServiceAccountSpec) DeepCopyInto

func (in *ServiceAccountSpec) DeepCopyInto(out *ServiceAccountSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceMonitorSpec

type ServiceMonitorSpec struct {
	// Scrape interval (e.g., "30s"). How often Prometheus scrapes the web server metrics endpoint.
	// +optional
	// +kubebuilder:default="30s"
	Interval *string `json:"interval,omitempty"`
	// Labels for Prometheus ServiceMonitor discovery (must match your Prometheus selector).
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
	// Maximum time to wait for a scrape response before timing out.
	// +optional
	ScrapeTimeout *string `json:"scrapeTimeout,omitempty"`
}

ServiceMonitorSpec defines the ServiceMonitor configuration.

func (*ServiceMonitorSpec) DeepCopy

func (in *ServiceMonitorSpec) DeepCopy() *ServiceMonitorSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceMonitorSpec.

func (*ServiceMonitorSpec) DeepCopyInto

func (in *ServiceMonitorSpec) DeepCopyInto(out *ServiceMonitorSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Superset

type Superset struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              SupersetSpec   `json:"spec,omitempty"`
	Status            SupersetStatus `json:"status,omitempty"`
}

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

func (*Superset) DeepCopy

func (in *Superset) DeepCopy() *Superset

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Superset.

func (*Superset) DeepCopyInto

func (in *Superset) DeepCopyInto(out *Superset)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Superset) DeepCopyObject

func (in *Superset) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SupersetCeleryBeat

type SupersetCeleryBeat struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   SupersetCeleryBeatSpec   `json:"spec,omitempty"`
	Status SupersetCeleryBeatStatus `json:"status,omitempty"`
}

SupersetCeleryBeat is the Schema for the supersetcelerybeats API. It manages the Celery beat scheduler Deployment (singleton).

func (*SupersetCeleryBeat) DeepCopy

func (in *SupersetCeleryBeat) DeepCopy() *SupersetCeleryBeat

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetCeleryBeat.

func (*SupersetCeleryBeat) DeepCopyInto

func (in *SupersetCeleryBeat) DeepCopyInto(out *SupersetCeleryBeat)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SupersetCeleryBeat) DeepCopyObject

func (in *SupersetCeleryBeat) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*SupersetCeleryBeat) GetAutoscaling

func (s *SupersetCeleryBeat) GetAutoscaling() *AutoscalingSpec

GetAutoscaling returns nil (celery beat is a singleton, no autoscaling).

func (*SupersetCeleryBeat) GetComponentStatus

func (s *SupersetCeleryBeat) GetComponentStatus() *ChildComponentStatus

GetComponentStatus returns the child component status.

func (*SupersetCeleryBeat) GetConfigChecksum

func (s *SupersetCeleryBeat) GetConfigChecksum() string

GetConfigChecksum returns the config checksum for rolling restarts.

func (*SupersetCeleryBeat) GetFlatSpec

func (s *SupersetCeleryBeat) GetFlatSpec() *FlatComponentSpec

GetFlatSpec returns the flat component spec.

func (*SupersetCeleryBeat) GetPDB

func (s *SupersetCeleryBeat) GetPDB() *PDBSpec

GetPDB returns nil (celery beat is a singleton, no PDB).

func (*SupersetCeleryBeat) GetService

func (s *SupersetCeleryBeat) GetService() *ComponentServiceSpec

GetService returns nil (celery beat has no service).

type SupersetCeleryBeatList

type SupersetCeleryBeatList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []SupersetCeleryBeat `json:"items"`
}

SupersetCeleryBeatList contains a list of SupersetCeleryBeat.

func (*SupersetCeleryBeatList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetCeleryBeatList.

func (*SupersetCeleryBeatList) DeepCopyInto

func (in *SupersetCeleryBeatList) DeepCopyInto(out *SupersetCeleryBeatList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SupersetCeleryBeatList) DeepCopyObject

func (in *SupersetCeleryBeatList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SupersetCeleryBeatSpec

type SupersetCeleryBeatSpec struct {
	FlatComponentSpec `json:",inline"`

	// Checksum for rolling restarts.
	// +optional
	ConfigChecksum string `json:"configChecksum,omitempty"`
}

SupersetCeleryBeatSpec is the fully-resolved, flat spec for celery beat. Beat is always a singleton (1 replica).

func (*SupersetCeleryBeatSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetCeleryBeatSpec.

func (*SupersetCeleryBeatSpec) DeepCopyInto

func (in *SupersetCeleryBeatSpec) DeepCopyInto(out *SupersetCeleryBeatSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SupersetCeleryBeatStatus

type SupersetCeleryBeatStatus struct {
	ChildComponentStatus `json:",inline"`
}

SupersetCeleryBeatStatus defines the observed state of SupersetCeleryBeat.

func (*SupersetCeleryBeatStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetCeleryBeatStatus.

func (*SupersetCeleryBeatStatus) DeepCopyInto

func (in *SupersetCeleryBeatStatus) DeepCopyInto(out *SupersetCeleryBeatStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SupersetCeleryFlower

type SupersetCeleryFlower struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   SupersetCeleryFlowerSpec   `json:"spec,omitempty"`
	Status SupersetCeleryFlowerStatus `json:"status,omitempty"`
}

SupersetCeleryFlower is the Schema for the supersetceleryflowers API. It manages the Celery Flower monitoring UI Deployment and Service.

func (*SupersetCeleryFlower) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetCeleryFlower.

func (*SupersetCeleryFlower) DeepCopyInto

func (in *SupersetCeleryFlower) DeepCopyInto(out *SupersetCeleryFlower)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SupersetCeleryFlower) DeepCopyObject

func (in *SupersetCeleryFlower) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*SupersetCeleryFlower) GetAutoscaling

func (s *SupersetCeleryFlower) GetAutoscaling() *AutoscalingSpec

GetAutoscaling returns the autoscaling configuration.

func (*SupersetCeleryFlower) GetComponentStatus

func (s *SupersetCeleryFlower) GetComponentStatus() *ChildComponentStatus

GetComponentStatus returns the child component status.

func (*SupersetCeleryFlower) GetConfigChecksum

func (s *SupersetCeleryFlower) GetConfigChecksum() string

GetConfigChecksum returns the config checksum for rolling restarts.

func (*SupersetCeleryFlower) GetFlatSpec

func (s *SupersetCeleryFlower) GetFlatSpec() *FlatComponentSpec

GetFlatSpec returns the flat component spec.

func (*SupersetCeleryFlower) GetPDB

func (s *SupersetCeleryFlower) GetPDB() *PDBSpec

GetPDB returns the PodDisruptionBudget configuration.

func (*SupersetCeleryFlower) GetService

func (s *SupersetCeleryFlower) GetService() *ComponentServiceSpec

GetService returns the service configuration.

type SupersetCeleryFlowerList

type SupersetCeleryFlowerList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []SupersetCeleryFlower `json:"items"`
}

SupersetCeleryFlowerList contains a list of SupersetCeleryFlower.

func (*SupersetCeleryFlowerList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetCeleryFlowerList.

func (*SupersetCeleryFlowerList) DeepCopyInto

func (in *SupersetCeleryFlowerList) DeepCopyInto(out *SupersetCeleryFlowerList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SupersetCeleryFlowerList) DeepCopyObject

func (in *SupersetCeleryFlowerList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SupersetCeleryFlowerSpec

type SupersetCeleryFlowerSpec struct {
	FlatComponentSpec `json:",inline"`

	// Checksum for rolling restarts.
	// +optional
	ConfigChecksum string `json:"configChecksum,omitempty"`

	// Service configuration.
	// +optional
	Service *ComponentServiceSpec `json:"service,omitempty"`
}

SupersetCeleryFlowerSpec is the fully-resolved, flat spec for celery flower.

func (*SupersetCeleryFlowerSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetCeleryFlowerSpec.

func (*SupersetCeleryFlowerSpec) DeepCopyInto

func (in *SupersetCeleryFlowerSpec) DeepCopyInto(out *SupersetCeleryFlowerSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SupersetCeleryFlowerStatus

type SupersetCeleryFlowerStatus struct {
	ChildComponentStatus `json:",inline"`
}

SupersetCeleryFlowerStatus defines the observed state of SupersetCeleryFlower.

func (*SupersetCeleryFlowerStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetCeleryFlowerStatus.

func (*SupersetCeleryFlowerStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SupersetCeleryWorker

type SupersetCeleryWorker struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   SupersetCeleryWorkerSpec   `json:"spec,omitempty"`
	Status SupersetCeleryWorkerStatus `json:"status,omitempty"`
}

SupersetCeleryWorker is the Schema for the supersetceleryworkers API. It manages the Celery worker Deployment.

func (*SupersetCeleryWorker) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetCeleryWorker.

func (*SupersetCeleryWorker) DeepCopyInto

func (in *SupersetCeleryWorker) DeepCopyInto(out *SupersetCeleryWorker)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SupersetCeleryWorker) DeepCopyObject

func (in *SupersetCeleryWorker) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*SupersetCeleryWorker) GetAutoscaling

func (s *SupersetCeleryWorker) GetAutoscaling() *AutoscalingSpec

GetAutoscaling returns the autoscaling configuration.

func (*SupersetCeleryWorker) GetComponentStatus

func (s *SupersetCeleryWorker) GetComponentStatus() *ChildComponentStatus

GetComponentStatus returns the child component status.

func (*SupersetCeleryWorker) GetConfigChecksum

func (s *SupersetCeleryWorker) GetConfigChecksum() string

GetConfigChecksum returns the config checksum for rolling restarts.

func (*SupersetCeleryWorker) GetFlatSpec

func (s *SupersetCeleryWorker) GetFlatSpec() *FlatComponentSpec

GetFlatSpec returns the flat component spec.

func (*SupersetCeleryWorker) GetPDB

func (s *SupersetCeleryWorker) GetPDB() *PDBSpec

GetPDB returns the PodDisruptionBudget configuration.

func (*SupersetCeleryWorker) GetService

func (s *SupersetCeleryWorker) GetService() *ComponentServiceSpec

GetService returns nil (celery workers have no service).

type SupersetCeleryWorkerList

type SupersetCeleryWorkerList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []SupersetCeleryWorker `json:"items"`
}

SupersetCeleryWorkerList contains a list of SupersetCeleryWorker.

func (*SupersetCeleryWorkerList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetCeleryWorkerList.

func (*SupersetCeleryWorkerList) DeepCopyInto

func (in *SupersetCeleryWorkerList) DeepCopyInto(out *SupersetCeleryWorkerList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SupersetCeleryWorkerList) DeepCopyObject

func (in *SupersetCeleryWorkerList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SupersetCeleryWorkerSpec

type SupersetCeleryWorkerSpec struct {
	FlatComponentSpec `json:",inline"`

	// Checksum for rolling restarts.
	// +optional
	ConfigChecksum string `json:"configChecksum,omitempty"`
}

SupersetCeleryWorkerSpec is the fully-resolved, flat spec for a celery worker.

func (*SupersetCeleryWorkerSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetCeleryWorkerSpec.

func (*SupersetCeleryWorkerSpec) DeepCopyInto

func (in *SupersetCeleryWorkerSpec) DeepCopyInto(out *SupersetCeleryWorkerSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SupersetCeleryWorkerStatus

type SupersetCeleryWorkerStatus struct {
	ChildComponentStatus `json:",inline"`
}

SupersetCeleryWorkerStatus defines the observed state of SupersetCeleryWorker.

func (*SupersetCeleryWorkerStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetCeleryWorkerStatus.

func (*SupersetCeleryWorkerStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SupersetLifecycleTask

type SupersetLifecycleTask struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   SupersetLifecycleTaskSpec   `json:"spec,omitempty"`
	Status SupersetLifecycleTaskStatus `json:"status,omitempty"`
}

SupersetLifecycleTask is the Schema for the supersetlifecycletasks API. It manages lifecycle tasks (database migrations, init commands).

func (*SupersetLifecycleTask) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetLifecycleTask.

func (*SupersetLifecycleTask) DeepCopyInto

func (in *SupersetLifecycleTask) DeepCopyInto(out *SupersetLifecycleTask)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SupersetLifecycleTask) DeepCopyObject

func (in *SupersetLifecycleTask) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SupersetLifecycleTaskList

type SupersetLifecycleTaskList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []SupersetLifecycleTask `json:"items"`
}

SupersetLifecycleTaskList contains a list of SupersetLifecycleTask.

func (*SupersetLifecycleTaskList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetLifecycleTaskList.

func (*SupersetLifecycleTaskList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SupersetLifecycleTaskList) DeepCopyObject

func (in *SupersetLifecycleTaskList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SupersetLifecycleTaskSpec

type SupersetLifecycleTaskSpec struct {
	FlatComponentSpec `json:",inline"`

	// Type identifies the task purpose. Future task types will require schema additions.
	// +kubebuilder:validation:Enum=Clone;Migrate;Init
	Type string `json:"type"`

	// Command to execute in the task pod.
	// +listType=atomic
	Command []string `json:"command"`

	// Config checksum for detecting changes that require re-run.
	// +optional
	ConfigChecksum string `json:"configChecksum,omitempty"`

	// Maximum timeout per task pod attempt.
	// +optional
	Timeout *metav1.Duration `json:"timeout,omitempty"`

	// Maximum number of retries before permanent failure.
	// +optional
	// +kubebuilder:default=3
	// +kubebuilder:validation:Minimum=1
	MaxRetries *int32 `json:"maxRetries,omitempty"`

	// Pod retention policy for completed task pods.
	// +optional
	PodRetention *PodRetentionSpec `json:"podRetention,omitempty"`
}

SupersetLifecycleTaskSpec defines the fully-resolved spec for a lifecycle task.

func (*SupersetLifecycleTaskSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetLifecycleTaskSpec.

func (*SupersetLifecycleTaskSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SupersetLifecycleTaskStatus

type SupersetLifecycleTaskStatus struct {
	// +optional
	// +kubebuilder:validation:Enum=Pending;Running;Complete;Failed
	State string `json:"state,omitempty"`
	// +optional
	PodName string `json:"podName,omitempty"`
	// +optional
	StartedAt *metav1.Time `json:"startedAt,omitempty"`
	// +optional
	CompletedAt *metav1.Time `json:"completedAt,omitempty"`
	// +optional
	Duration string `json:"duration,omitempty"`
	// +optional
	Attempts int32 `json:"attempts,omitempty"`
	// +optional
	Image string `json:"image,omitempty"`
	// +optional
	Message string `json:"message,omitempty"`
	// Config checksum that was active when the task last completed.
	// Used to detect changes and trigger re-execution.
	// +optional
	ConfigChecksum string `json:"configChecksum,omitempty"`
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}

SupersetLifecycleTaskStatus reports the status of a lifecycle task.

func (*SupersetLifecycleTaskStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetLifecycleTaskStatus.

func (*SupersetLifecycleTaskStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SupersetList

type SupersetList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Superset `json:"items"`
}

SupersetList contains a list of Superset.

func (*SupersetList) DeepCopy

func (in *SupersetList) DeepCopy() *SupersetList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetList.

func (*SupersetList) DeepCopyInto

func (in *SupersetList) DeepCopyInto(out *SupersetList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SupersetList) DeepCopyObject

func (in *SupersetList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SupersetMcpServer

type SupersetMcpServer struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   SupersetMcpServerSpec   `json:"spec,omitempty"`
	Status SupersetMcpServerStatus `json:"status,omitempty"`
}

SupersetMcpServer is the Schema for the supersetmcpservers API. It manages the FastMCP server Deployment and Service.

func (*SupersetMcpServer) DeepCopy

func (in *SupersetMcpServer) DeepCopy() *SupersetMcpServer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetMcpServer.

func (*SupersetMcpServer) DeepCopyInto

func (in *SupersetMcpServer) DeepCopyInto(out *SupersetMcpServer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SupersetMcpServer) DeepCopyObject

func (in *SupersetMcpServer) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*SupersetMcpServer) GetAutoscaling

func (s *SupersetMcpServer) GetAutoscaling() *AutoscalingSpec

GetAutoscaling returns the autoscaling configuration.

func (*SupersetMcpServer) GetComponentStatus

func (s *SupersetMcpServer) GetComponentStatus() *ChildComponentStatus

GetComponentStatus returns the child component status.

func (*SupersetMcpServer) GetConfigChecksum

func (s *SupersetMcpServer) GetConfigChecksum() string

GetConfigChecksum returns the config checksum for rolling restarts.

func (*SupersetMcpServer) GetFlatSpec

func (s *SupersetMcpServer) GetFlatSpec() *FlatComponentSpec

GetFlatSpec returns the flat component spec.

func (*SupersetMcpServer) GetPDB

func (s *SupersetMcpServer) GetPDB() *PDBSpec

GetPDB returns the PodDisruptionBudget configuration.

func (*SupersetMcpServer) GetService

func (s *SupersetMcpServer) GetService() *ComponentServiceSpec

GetService returns the service configuration.

type SupersetMcpServerList

type SupersetMcpServerList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []SupersetMcpServer `json:"items"`
}

SupersetMcpServerList contains a list of SupersetMcpServer.

func (*SupersetMcpServerList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetMcpServerList.

func (*SupersetMcpServerList) DeepCopyInto

func (in *SupersetMcpServerList) DeepCopyInto(out *SupersetMcpServerList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SupersetMcpServerList) DeepCopyObject

func (in *SupersetMcpServerList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SupersetMcpServerSpec

type SupersetMcpServerSpec struct {
	FlatComponentSpec `json:",inline"`

	// Checksum for rolling restarts.
	// +optional
	ConfigChecksum string `json:"configChecksum,omitempty"`

	// Service configuration.
	// +optional
	Service *ComponentServiceSpec `json:"service,omitempty"`
}

SupersetMcpServerSpec is the fully-resolved, flat spec for the MCP server.

func (*SupersetMcpServerSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetMcpServerSpec.

func (*SupersetMcpServerSpec) DeepCopyInto

func (in *SupersetMcpServerSpec) DeepCopyInto(out *SupersetMcpServerSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SupersetMcpServerStatus

type SupersetMcpServerStatus struct {
	ChildComponentStatus `json:",inline"`
}

SupersetMcpServerStatus defines the observed state of SupersetMcpServer.

func (*SupersetMcpServerStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetMcpServerStatus.

func (*SupersetMcpServerStatus) DeepCopyInto

func (in *SupersetMcpServerStatus) DeepCopyInto(out *SupersetMcpServerStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SupersetSpec

type SupersetSpec struct {
	// Image configuration inherited by all components.
	Image ImageSpec `json:"image"`

	// Deployment template defaults inherited by all components (field-level merge).
	// +optional
	DeploymentTemplate *DeploymentTemplate `json:"deploymentTemplate,omitempty"`
	// Pod template defaults inherited by all components (field-level merge).
	// +optional
	PodTemplate *PodTemplate `json:"podTemplate,omitempty"`
	// Default replica count for all scalable components; per-component replicas override this.
	// +optional
	Replicas *int32 `json:"replicas,omitempty"`
	// Default autoscaling for all scalable components (component-level overrides this).
	// +optional
	Autoscaling *AutoscalingSpec `json:"autoscaling,omitempty"`
	// Default pod disruption budget for all scalable components (component-level overrides this).
	// +optional
	PodDisruptionBudget *PDBSpec `json:"podDisruptionBudget,omitempty"`

	// Environment mode: "Development", "Staging", or "Production". Controls validation strictness.
	// In Production mode, CRD validation rejects plain text secrets and disallows cloning.
	// In Staging mode, secrets are enforced (like Production) but cloning is allowed.
	// In Development mode, plain text secrets, cloning, admin user, and load examples are all permitted.
	// +optional
	// +kubebuilder:validation:Enum=Development;Staging;Production
	// +kubebuilder:default=Production
	Environment *string `json:"environment,omitempty"`

	// Plain text secret key for session signing. Only allowed in dev mode.
	// In prod, use secretKeyFrom to reference a Kubernetes Secret.
	// +optional
	SecretKey *string `json:"secretKey,omitempty"`

	// Reference to a Secret key containing the secret key for session signing.
	// Mutually exclusive with secretKey.
	// +optional
	SecretKeyFrom *corev1.SecretKeySelector `json:"secretKeyFrom,omitempty"`

	// Metastore database connection configuration.
	// +optional
	Metastore *MetastoreSpec `json:"metastore,omitempty"`

	// Valkey cache, broker, and results backend configuration.
	// +optional
	Valkey *ValkeySpec `json:"valkey,omitempty"`

	// Raw Python appended after operator-generated superset_config.py.
	// +optional
	Config *string `json:"config,omitempty"`

	// SQLAlchemy 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
	SQLAlchemyEngineOptions *SQLAlchemyEngineOptionsSpec `json:"sqlaEngineOptions,omitempty"`

	// Web server (gunicorn) component. Presence enables it; absence disables.
	// +optional
	WebServer *WebServerComponentSpec `json:"webServer,omitempty"`
	// Celery async task worker component. Requires Valkey for broker/backend.
	// +optional
	CeleryWorker *CeleryWorkerComponentSpec `json:"celeryWorker,omitempty"`
	// Celery periodic task scheduler (singleton, always 1 replica). Requires Valkey.
	// +optional
	CeleryBeat *CeleryBeatComponentSpec `json:"celeryBeat,omitempty"`
	// Celery Flower monitoring UI component.
	// +optional
	CeleryFlower *CeleryFlowerComponentSpec `json:"celeryFlower,omitempty"`
	// WebSocket server for real-time updates (Node.js, no Python config).
	// +optional
	WebsocketServer *WebsocketServerComponentSpec `json:"websocketServer,omitempty"`
	// FastMCP server component for AI tooling integration.
	// +optional
	McpServer *McpServerComponentSpec `json:"mcpServer,omitempty"`

	// Lifecycle configuration (database migration, init, upgrade mode).
	// +optional
	Lifecycle *LifecycleSpec `json:"lifecycle,omitempty"`

	// Networking configuration (Ingress or Gateway API).
	// +optional
	Networking *NetworkingSpec `json:"networking,omitempty"`

	// Monitoring configuration.
	// +optional
	Monitoring *MonitoringSpec `json:"monitoring,omitempty"`

	// Network policy configuration.
	// +optional
	NetworkPolicy *NetworkPolicySpec `json:"networkPolicy,omitempty"`

	// ServiceAccount configuration.
	// +optional
	ServiceAccount *ServiceAccountSpec `json:"serviceAccount,omitempty"`

	// Suspend stops reconciliation when true.
	// +optional
	Suspend *bool `json:"suspend,omitempty"`

	// ForceReload 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
	ForceReload string `json:"forceReload,omitempty"`
}

SupersetSpec defines the desired state of a Superset deployment. +kubebuilder:validation:XValidation:rule="has(self.secretKey) != has(self.secretKeyFrom)",message="exactly one of secretKey (dev only) or secretKeyFrom must be set" +kubebuilder:validation:XValidation:rule="(has(self.environment) && self.environment == 'Development') || !has(self.secretKey)",message="secretKey is only allowed when environment is Development; use secretKeyFrom in Production" +kubebuilder:validation:XValidation:rule="(has(self.environment) && self.environment == 'Development') || !has(self.metastore) || !has(self.metastore.uri)",message="metastore.uri is only allowed when environment is Development; use metastore.uriFrom in Production" +kubebuilder:validation:XValidation:rule="(has(self.environment) && self.environment == 'Development') || !has(self.metastore) || !has(self.metastore.password)",message="metastore.password is only allowed when environment is Development; use metastore.passwordFrom in Production" +kubebuilder:validation:XValidation:rule="(has(self.environment) && self.environment == 'Development') || !has(self.valkey) || !has(self.valkey.password)",message="valkey.password is only allowed when environment is Development; use valkey.passwordFrom in Production" +kubebuilder:validation:XValidation:rule="(has(self.environment) && self.environment == 'Development') || !has(self.lifecycle) || !has(self.lifecycle.init) || !has(self.lifecycle.init.adminUser)",message="lifecycle.init.adminUser is only allowed when environment is Development" +kubebuilder:validation:XValidation:rule="(has(self.environment) && self.environment == 'Development') || !has(self.lifecycle) || !has(self.lifecycle.init) || !has(self.lifecycle.init.loadExamples)",message="lifecycle.init.loadExamples is only allowed when environment is Development" +kubebuilder:validation:XValidation:rule="!has(self.networking) || !has(self.networking.ingress) || has(self.webServer)",message="spec.networking.ingress requires spec.webServer to be set (all Ingress rules target the web server service)" +kubebuilder:validation:XValidation:rule="!has(self.networking) || !has(self.networking.gateway) || has(self.webServer) || has(self.websocketServer) || has(self.mcpServer) || has(self.celeryFlower)",message="spec.networking.gateway requires at least one component with a routable service (webServer, websocketServer, mcpServer, or celeryFlower)" +kubebuilder:validation:XValidation:rule="!has(self.monitoring) || !has(self.monitoring.serviceMonitor) || has(self.webServer)",message="spec.monitoring.serviceMonitor requires spec.webServer to be set (scrapes the web server service)" +kubebuilder:validation:XValidation:rule="(has(self.environment) && (self.environment == 'Development' || self.environment == 'Staging')) || !has(self.lifecycle) || !has(self.lifecycle.clone)",message="lifecycle.clone is only allowed when environment is Development or Staging; cloning performs a destructive DROP DATABASE on the target metastore" +kubebuilder:validation:XValidation:rule="!has(self.lifecycle) || !has(self.lifecycle.clone) || (has(self.metastore) && has(self.metastore.host))",message="lifecycle.clone requires structured metastore configuration (host must be set)"

func (*SupersetSpec) DeepCopy

func (in *SupersetSpec) DeepCopy() *SupersetSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetSpec.

func (*SupersetSpec) DeepCopyInto

func (in *SupersetSpec) DeepCopyInto(out *SupersetSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SupersetStatus

type SupersetStatus struct {
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
	// +optional
	Components *ComponentStatusMap `json:"components,omitempty"`
	// Lifecycle tracks the current lifecycle state.
	// +optional
	Lifecycle *LifecycleStatus `json:"lifecycle,omitempty"`
	// Last image (repository:tag) that successfully completed the lifecycle.
	// Used to detect image changes on subsequent reconciles.
	// +optional
	LastLifecycleImage string `json:"lastLifecycleImage,omitempty"`
	// +optional
	Version string `json:"version,omitempty"`
	// +optional
	ConfigChecksum string `json:"configChecksum,omitempty"`
	// High-level phase.
	// +optional
	// +kubebuilder:validation:Enum=Initializing;Upgrading;Draining;Running;Degraded;Suspended;Blocked;AwaitingApproval
	Phase string `json:"phase,omitempty"`
}

SupersetStatus defines the observed state of Superset.

func (*SupersetStatus) DeepCopy

func (in *SupersetStatus) DeepCopy() *SupersetStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetStatus.

func (*SupersetStatus) DeepCopyInto

func (in *SupersetStatus) DeepCopyInto(out *SupersetStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SupersetWebServer

type SupersetWebServer struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   SupersetWebServerSpec   `json:"spec,omitempty"`
	Status SupersetWebServerStatus `json:"status,omitempty"`
}

SupersetWebServer is the Schema for the supersetwebservers API. It manages the Superset web server (gunicorn) Deployment.

func (*SupersetWebServer) DeepCopy

func (in *SupersetWebServer) DeepCopy() *SupersetWebServer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetWebServer.

func (*SupersetWebServer) DeepCopyInto

func (in *SupersetWebServer) DeepCopyInto(out *SupersetWebServer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SupersetWebServer) DeepCopyObject

func (in *SupersetWebServer) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*SupersetWebServer) GetAutoscaling

func (s *SupersetWebServer) GetAutoscaling() *AutoscalingSpec

GetAutoscaling returns the autoscaling configuration.

func (*SupersetWebServer) GetComponentStatus

func (s *SupersetWebServer) GetComponentStatus() *ChildComponentStatus

GetComponentStatus returns the child component status.

func (*SupersetWebServer) GetConfigChecksum

func (s *SupersetWebServer) GetConfigChecksum() string

GetConfigChecksum returns the config checksum for rolling restarts.

func (*SupersetWebServer) GetFlatSpec

func (s *SupersetWebServer) GetFlatSpec() *FlatComponentSpec

GetFlatSpec returns the flat component spec.

func (*SupersetWebServer) GetPDB

func (s *SupersetWebServer) GetPDB() *PDBSpec

GetPDB returns the PodDisruptionBudget configuration.

func (*SupersetWebServer) GetService

func (s *SupersetWebServer) GetService() *ComponentServiceSpec

GetService returns the service configuration.

type SupersetWebServerList

type SupersetWebServerList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []SupersetWebServer `json:"items"`
}

SupersetWebServerList contains a list of SupersetWebServer.

func (*SupersetWebServerList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetWebServerList.

func (*SupersetWebServerList) DeepCopyInto

func (in *SupersetWebServerList) DeepCopyInto(out *SupersetWebServerList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SupersetWebServerList) DeepCopyObject

func (in *SupersetWebServerList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SupersetWebServerSpec

type SupersetWebServerSpec struct {
	FlatComponentSpec `json:",inline"`

	// Checksum stamped as pod template annotation for rolling restarts.
	// +optional
	ConfigChecksum string `json:"configChecksum,omitempty"`

	// Service configuration.
	// +optional
	Service *ComponentServiceSpec `json:"service,omitempty"`
}

SupersetWebServerSpec is the fully-resolved, flat spec for a web server.

func (*SupersetWebServerSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetWebServerSpec.

func (*SupersetWebServerSpec) DeepCopyInto

func (in *SupersetWebServerSpec) DeepCopyInto(out *SupersetWebServerSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SupersetWebServerStatus

type SupersetWebServerStatus struct {
	ChildComponentStatus `json:",inline"`
}

SupersetWebServerStatus defines the observed state of SupersetWebServer.

func (*SupersetWebServerStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetWebServerStatus.

func (*SupersetWebServerStatus) DeepCopyInto

func (in *SupersetWebServerStatus) DeepCopyInto(out *SupersetWebServerStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SupersetWebsocketServer

type SupersetWebsocketServer struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   SupersetWebsocketServerSpec   `json:"spec,omitempty"`
	Status SupersetWebsocketServerStatus `json:"status,omitempty"`
}

SupersetWebsocketServer is the Schema for the supersetwebsocketservers API. It manages the Superset websocket server Deployment.

func (*SupersetWebsocketServer) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetWebsocketServer.

func (*SupersetWebsocketServer) DeepCopyInto

func (in *SupersetWebsocketServer) DeepCopyInto(out *SupersetWebsocketServer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SupersetWebsocketServer) DeepCopyObject

func (in *SupersetWebsocketServer) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*SupersetWebsocketServer) GetAutoscaling

func (s *SupersetWebsocketServer) GetAutoscaling() *AutoscalingSpec

GetAutoscaling returns the autoscaling configuration.

func (*SupersetWebsocketServer) GetComponentStatus

func (s *SupersetWebsocketServer) GetComponentStatus() *ChildComponentStatus

GetComponentStatus returns the child component status.

func (*SupersetWebsocketServer) GetConfigChecksum

func (s *SupersetWebsocketServer) GetConfigChecksum() string

GetConfigChecksum returns empty string (websocket server has no config).

func (*SupersetWebsocketServer) GetFlatSpec

func (s *SupersetWebsocketServer) GetFlatSpec() *FlatComponentSpec

GetFlatSpec returns the flat component spec.

func (*SupersetWebsocketServer) GetPDB

func (s *SupersetWebsocketServer) GetPDB() *PDBSpec

GetPDB returns the PodDisruptionBudget configuration.

func (*SupersetWebsocketServer) GetService

GetService returns the service configuration.

type SupersetWebsocketServerList

type SupersetWebsocketServerList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []SupersetWebsocketServer `json:"items"`
}

SupersetWebsocketServerList contains a list of SupersetWebsocketServer.

func (*SupersetWebsocketServerList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetWebsocketServerList.

func (*SupersetWebsocketServerList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SupersetWebsocketServerList) DeepCopyObject

func (in *SupersetWebsocketServerList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SupersetWebsocketServerSpec

type SupersetWebsocketServerSpec struct {
	FlatComponentSpec `json:",inline"`

	// Service configuration.
	// +optional
	Service *ComponentServiceSpec `json:"service,omitempty"`
}

SupersetWebsocketServerSpec is the fully-resolved, flat spec for a websocket server. The websocket server is a Node.js application — it does NOT use superset_config.py.

func (*SupersetWebsocketServerSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetWebsocketServerSpec.

func (*SupersetWebsocketServerSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SupersetWebsocketServerStatus

type SupersetWebsocketServerStatus struct {
	ChildComponentStatus `json:",inline"`
}

SupersetWebsocketServerStatus defines the observed state of SupersetWebsocketServer.

func (*SupersetWebsocketServerStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupersetWebsocketServerStatus.

func (*SupersetWebsocketServerStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TaskRefStatus

type TaskRefStatus struct {
	// +optional
	// +kubebuilder:validation:Enum=Pending;Running;Complete;Failed
	State string `json:"state,omitempty"`
	// +optional
	StartedAt *metav1.Time `json:"startedAt,omitempty"`
	// +optional
	CompletedAt *metav1.Time `json:"completedAt,omitempty"`
	// +optional
	Duration string `json:"duration,omitempty"`
	// +optional
	Attempts int32 `json:"attempts,omitempty"`
	// +optional
	PodName string `json:"podName,omitempty"`
	// +optional
	Image string `json:"image,omitempty"`
	// +optional
	Message string `json:"message,omitempty"`
}

TaskRefStatus holds the projected status summary of a lifecycle task.

func (*TaskRefStatus) DeepCopy

func (in *TaskRefStatus) DeepCopy() *TaskRefStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TaskRefStatus.

func (*TaskRefStatus) DeepCopyInto

func (in *TaskRefStatus) DeepCopyInto(out *TaskRefStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type UpgradeContext

type UpgradeContext struct {
	// +optional
	FromVersion string `json:"fromVersion,omitempty"`
	// +optional
	ToVersion string `json:"toVersion,omitempty"`
	// +optional
	// +kubebuilder:validation:Enum=Upgrade;Downgrade;Unknown
	Direction string `json:"direction,omitempty"`
	// +optional
	StartedAt *metav1.Time `json:"startedAt,omitempty"`
}

UpgradeContext tracks the current upgrade operation.

func (*UpgradeContext) DeepCopy

func (in *UpgradeContext) DeepCopy() *UpgradeContext

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpgradeContext.

func (*UpgradeContext) DeepCopyInto

func (in *UpgradeContext) DeepCopyInto(out *UpgradeContext)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ValkeyCacheSpec

type ValkeyCacheSpec struct {
	// Disable this cache section. When true, the operator does not render
	// this config — Superset falls back to its built-in default.
	// +optional
	Disabled *bool `json:"disabled,omitempty"`

	// Valkey database number.
	// +optional
	Database *int32 `json:"database,omitempty"`

	// Cache key prefix.
	// +optional
	KeyPrefix *string `json:"keyPrefix,omitempty"`

	// Default cache timeout in seconds.
	// +optional
	DefaultTimeout *int32 `json:"defaultTimeout,omitempty"`
}

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

func (*ValkeyCacheSpec) DeepCopy

func (in *ValkeyCacheSpec) DeepCopy() *ValkeyCacheSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValkeyCacheSpec.

func (*ValkeyCacheSpec) DeepCopyInto

func (in *ValkeyCacheSpec) DeepCopyInto(out *ValkeyCacheSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ValkeyCelerySpec

type ValkeyCelerySpec struct {
	// Disable this Celery backend. When true, the operator does not render this config.
	// +optional
	Disabled *bool `json:"disabled,omitempty"`

	// Valkey database number.
	// +optional
	Database *int32 `json:"database,omitempty"`
}

ValkeyCelerySpec tunes a Celery Valkey connection.

func (*ValkeyCelerySpec) DeepCopy

func (in *ValkeyCelerySpec) DeepCopy() *ValkeyCelerySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValkeyCelerySpec.

func (*ValkeyCelerySpec) DeepCopyInto

func (in *ValkeyCelerySpec) DeepCopyInto(out *ValkeyCelerySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ValkeyResultsBackendSpec

type ValkeyResultsBackendSpec struct {
	// Disable the results backend. When true, the operator does not render this config.
	// +optional
	Disabled *bool `json:"disabled,omitempty"`

	// Valkey database number.
	// +optional
	Database *int32 `json:"database,omitempty"`

	// Cache key prefix for results.
	// +optional
	KeyPrefix *string `json:"keyPrefix,omitempty"`
}

ValkeyResultsBackendSpec tunes the SQL Lab async results backend.

func (*ValkeyResultsBackendSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValkeyResultsBackendSpec.

func (*ValkeyResultsBackendSpec) DeepCopyInto

func (in *ValkeyResultsBackendSpec) DeepCopyInto(out *ValkeyResultsBackendSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ValkeySSLSpec

type ValkeySSLSpec struct {
	// Certificate verification mode.
	// +optional
	// +kubebuilder:validation:Enum=required;optional;none
	// +kubebuilder:default=required
	CertRequired *string `json:"certRequired,omitempty"`

	// Path to the client private key file (for mTLS).
	// +optional
	KeyFile *string `json:"keyFile,omitempty"`

	// Path to the client certificate file (for mTLS).
	// +optional
	CertFile *string `json:"certFile,omitempty"`

	// Path to the CA certificate file for server verification.
	// +optional
	CACertFile *string `json:"caCertFile,omitempty"`
}

ValkeySSLSpec configures TLS for the Valkey connection.

func (*ValkeySSLSpec) DeepCopy

func (in *ValkeySSLSpec) DeepCopy() *ValkeySSLSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValkeySSLSpec.

func (*ValkeySSLSpec) DeepCopyInto

func (in *ValkeySSLSpec) DeepCopyInto(out *ValkeySSLSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ValkeySpec

type ValkeySpec struct {
	// Valkey server hostname.
	Host string `json:"host"`

	// Valkey server port.
	// +optional
	// +kubebuilder:default=6379
	Port *int32 `json:"port,omitempty"`

	// Plain text password. Only allowed in dev mode — use passwordFrom in prod.
	// +optional
	Password *string `json:"password,omitempty"`

	// Reference to a Secret key containing the Valkey password.
	// Mutually exclusive with password.
	// +optional
	PasswordFrom *corev1.SecretKeySelector `json:"passwordFrom,omitempty"`

	// SSL/TLS configuration. When set, enables SSL for the Valkey connection.
	// +optional
	SSL *ValkeySSLSpec `json:"ssl,omitempty"`

	// General cache (CACHE_CONFIG). Default: db=1, prefix="superset_", timeout=300s.
	// +optional
	Cache *ValkeyCacheSpec `json:"cache,omitempty"`

	// Data/query results cache (DATA_CACHE_CONFIG). Default: db=2, prefix="superset_data_", timeout=86400s.
	// +optional
	DataCache *ValkeyCacheSpec `json:"dataCache,omitempty"`

	// Dashboard filter state cache (FILTER_STATE_CACHE_CONFIG). Default: db=3, prefix="superset_filter_", timeout=3600s.
	// +optional
	FilterStateCache *ValkeyCacheSpec `json:"filterStateCache,omitempty"`

	// Chart builder form state cache (EXPLORE_FORM_DATA_CACHE_CONFIG). Default: db=4, prefix="superset_explore_", timeout=3600s.
	// +optional
	ExploreFormDataCache *ValkeyCacheSpec `json:"exploreFormDataCache,omitempty"`

	// Thumbnail cache (THUMBNAIL_CACHE_CONFIG). Default: db=5, prefix="superset_thumbnail_", timeout=3600s.
	// +optional
	ThumbnailCache *ValkeyCacheSpec `json:"thumbnailCache,omitempty"`

	// Celery broker (CeleryConfig.broker_url). Default: db=0.
	// +optional
	CeleryBroker *ValkeyCelerySpec `json:"celeryBroker,omitempty"`

	// Celery result backend (CeleryConfig.result_backend). Default: db=0.
	// +optional
	CeleryResultBackend *ValkeyCelerySpec `json:"celeryResultBackend,omitempty"`

	// SQL Lab async results backend (RESULTS_BACKEND). Default: db=6, prefix="superset_results_".
	// +optional
	ResultsBackend *ValkeyResultsBackendSpec `json:"resultsBackend,omitempty"`
}

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. +kubebuilder:validation:XValidation:rule="!(has(self.password) && has(self.passwordFrom))",message="password and passwordFrom are mutually exclusive"

func (*ValkeySpec) DeepCopy

func (in *ValkeySpec) DeepCopy() *ValkeySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValkeySpec.

func (*ValkeySpec) DeepCopyInto

func (in *ValkeySpec) DeepCopyInto(out *ValkeySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type WebServerComponentSpec

type WebServerComponentSpec struct {
	ScalableComponentSpec `json:",inline"`
	ComponentSpec         `json:",inline"`
	// Per-component raw Python appended after top-level config.
	// +optional
	Config *string `json:"config,omitempty"`
	// Service configuration (type, port, annotations).
	// +optional
	Service *ComponentServiceSpec `json:"service,omitempty"`
	// Gunicorn worker configuration. Controls worker processes, threads, and related parameters.
	// +optional
	Gunicorn *GunicornSpec `json:"gunicorn,omitempty"`
	// Per-component SQLAlchemy engine options (overrides spec.sqlaEngineOptions entirely).
	// +optional
	SQLAlchemyEngineOptions *SQLAlchemyEngineOptionsSpec `json:"sqlaEngineOptions,omitempty"`
}

WebServerComponentSpec defines the web server component on the parent CRD.

func (*WebServerComponentSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebServerComponentSpec.

func (*WebServerComponentSpec) DeepCopyInto

func (in *WebServerComponentSpec) DeepCopyInto(out *WebServerComponentSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type WebsocketServerComponentSpec

type WebsocketServerComponentSpec struct {
	ScalableComponentSpec `json:",inline"`
	ComponentSpec         `json:",inline"`
	// Service configuration (type, port, annotations).
	// +optional
	Service *ComponentServiceSpec `json:"service,omitempty"`
}

WebsocketServerComponentSpec defines the websocket server component on the parent CRD.

func (*WebsocketServerComponentSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebsocketServerComponentSpec.

func (*WebsocketServerComponentSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL