Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the ducklake v1alpha1 API group. +kubebuilder:object:generate=true +groupName=ducklake.featherman.dev
Index ¶
- Variables
- type BackupPolicySpec
- type CatalogPhase
- type CatalogReference
- type ColumnDefinition
- type CompressionType
- type DuckLakeCatalog
- func (in *DuckLakeCatalog) DeepCopy() *DuckLakeCatalog
- func (in *DuckLakeCatalog) DeepCopyInto(out *DuckLakeCatalog)
- func (in *DuckLakeCatalog) DeepCopyObject() runtime.Object
- func (r *DuckLakeCatalog) Default()
- func (r *DuckLakeCatalog) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *DuckLakeCatalog) ValidateCreate() (admission.Warnings, error)
- func (r *DuckLakeCatalog) ValidateDelete() (admission.Warnings, error)
- func (r *DuckLakeCatalog) ValidateUpdate(old runtime.Object) (admission.Warnings, error)
- type DuckLakeCatalogList
- type DuckLakeCatalogSpec
- type DuckLakeCatalogStatus
- type DuckLakePool
- type DuckLakePoolList
- type DuckLakePoolSpec
- type DuckLakePoolStatus
- type DuckLakeTable
- func (in *DuckLakeTable) DeepCopy() *DuckLakeTable
- func (in *DuckLakeTable) DeepCopyInto(out *DuckLakeTable)
- func (in *DuckLakeTable) DeepCopyObject() runtime.Object
- func (r *DuckLakeTable) Default()
- func (r *DuckLakeTable) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *DuckLakeTable) ValidateCreate() (admission.Warnings, error)
- func (r *DuckLakeTable) ValidateDelete() (admission.Warnings, error)
- func (r *DuckLakeTable) ValidateUpdate(old runtime.Object) (admission.Warnings, error)
- type DuckLakeTableList
- type DuckLakeTableSpec
- type DuckLakeTableStatus
- type EncryptionSpec
- type LifecyclePolicies
- type MaterializationDestination
- type MaterializationFormat
- type MaterializationStatus
- type MaterializeToSpec
- type MetricsConfig
- type ObjectStoreSpec
- type ParquetFormat
- type PodInfo
- type PodState
- type PodTemplate
- type PoolPhase
- type QueueConfig
- type SQLType
- type ScalingBehavior
- type SecretReference
- type TableMode
- type TablePhase
- type VersionEntry
- type VersioningSpec
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "ducklake.featherman.dev", 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 BackupPolicySpec ¶
type BackupPolicySpec struct { // Schedule is the cron expression for backups // +kubebuilder:validation:Required // +kubebuilder:validation:Pattern=`^(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)|((((\d+,)+\d+|(\d+(\/|-)\d+)|\d+|\*) ?){5,7})$` Schedule string `json:"schedule"` // RetentionDays is the number of days to retain backups // +kubebuilder:validation:Minimum=1 // +kubebuilder:default=7 RetentionDays int `json:"retentionDays,omitempty"` }
BackupPolicySpec defines the backup configuration
func (*BackupPolicySpec) DeepCopy ¶
func (in *BackupPolicySpec) DeepCopy() *BackupPolicySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupPolicySpec.
func (*BackupPolicySpec) DeepCopyInto ¶
func (in *BackupPolicySpec) DeepCopyInto(out *BackupPolicySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CatalogPhase ¶
type CatalogPhase string
CatalogPhase represents the current phase of the catalog +kubebuilder:validation:Enum=Pending;Running;Failed;Succeeded
const ( // CatalogPhasePending means the catalog is being created CatalogPhasePending CatalogPhase = "Pending" // CatalogPhaseRunning means the catalog is operational CatalogPhaseRunning CatalogPhase = "Running" // CatalogPhaseFailed means the catalog has encountered an error CatalogPhaseFailed CatalogPhase = "Failed" // CatalogPhaseSucceeded means the catalog is ready CatalogPhaseSucceeded CatalogPhase = "Succeeded" )
type CatalogReference ¶
type CatalogReference struct { // Name is the name of the DuckLakeCatalog Name string `json:"name"` // ReadOnly specifies if the catalog should be mounted read-only // +kubebuilder:default=true ReadOnly bool `json:"readOnly,omitempty"` }
CatalogReference references a DuckLakeCatalog
func (*CatalogReference) DeepCopy ¶
func (in *CatalogReference) DeepCopy() *CatalogReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CatalogReference.
func (*CatalogReference) DeepCopyInto ¶
func (in *CatalogReference) DeepCopyInto(out *CatalogReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ColumnDefinition ¶
type ColumnDefinition struct { // Name is the column name // +kubebuilder:validation:Required // +kubebuilder:validation:Pattern=^[a-zA-Z][a-zA-Z0-9_]*$ Name string `json:"name"` // Type is the SQL data type // +kubebuilder:validation:Required // +kubebuilder:validation:Enum=INTEGER;BIGINT;DOUBLE;BOOLEAN;VARCHAR;DATE;TIMESTAMP;DECIMAL Type SQLType `json:"type"` // Nullable specifies if the column can contain NULL values // +optional Nullable bool `json:"nullable,omitempty"` // Comment provides documentation for the column // +optional Comment string `json:"comment,omitempty"` }
ColumnDefinition defines a column in the table
func (*ColumnDefinition) DeepCopy ¶
func (in *ColumnDefinition) DeepCopy() *ColumnDefinition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ColumnDefinition.
func (*ColumnDefinition) DeepCopyInto ¶
func (in *ColumnDefinition) DeepCopyInto(out *ColumnDefinition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CompressionType ¶
type CompressionType string
CompressionType represents a Parquet compression type
const ( // CompressionZSTD represents ZSTD compression CompressionZSTD CompressionType = "ZSTD" // CompressionSnappy represents Snappy compression CompressionSnappy CompressionType = "SNAPPY" )
type DuckLakeCatalog ¶
type DuckLakeCatalog struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec DuckLakeCatalogSpec `json:"spec,omitempty"` Status DuckLakeCatalogStatus `json:"status,omitempty"` }
DuckLakeCatalog is the Schema for the ducklakecatalogs API
func (*DuckLakeCatalog) DeepCopy ¶
func (in *DuckLakeCatalog) DeepCopy() *DuckLakeCatalog
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DuckLakeCatalog.
func (*DuckLakeCatalog) DeepCopyInto ¶
func (in *DuckLakeCatalog) DeepCopyInto(out *DuckLakeCatalog)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DuckLakeCatalog) DeepCopyObject ¶
func (in *DuckLakeCatalog) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*DuckLakeCatalog) Default ¶
func (r *DuckLakeCatalog) Default()
Default implements admission.Defaulter so a webhook will be registered for the type
func (*DuckLakeCatalog) SetupWebhookWithManager ¶
func (r *DuckLakeCatalog) SetupWebhookWithManager(mgr ctrl.Manager) error
func (*DuckLakeCatalog) ValidateCreate ¶
func (r *DuckLakeCatalog) ValidateCreate() (admission.Warnings, error)
ValidateCreate implements admission.Validator so a webhook will be registered for the type
func (*DuckLakeCatalog) ValidateDelete ¶
func (r *DuckLakeCatalog) ValidateDelete() (admission.Warnings, error)
ValidateDelete implements admission.Validator so a webhook will be registered for the type
func (*DuckLakeCatalog) ValidateUpdate ¶
ValidateUpdate implements admission.Validator so a webhook will be registered for the type
type DuckLakeCatalogList ¶
type DuckLakeCatalogList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []DuckLakeCatalog `json:"items"` }
DuckLakeCatalogList contains a list of DuckLakeCatalog
func (*DuckLakeCatalogList) DeepCopy ¶
func (in *DuckLakeCatalogList) DeepCopy() *DuckLakeCatalogList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DuckLakeCatalogList.
func (*DuckLakeCatalogList) DeepCopyInto ¶
func (in *DuckLakeCatalogList) DeepCopyInto(out *DuckLakeCatalogList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DuckLakeCatalogList) DeepCopyObject ¶
func (in *DuckLakeCatalogList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DuckLakeCatalogSpec ¶
type DuckLakeCatalogSpec struct { // StorageClass is the storage class to use for the catalog PVC // +kubebuilder:validation:Required StorageClass string `json:"storageClass"` // Size is the size of the catalog PVC // +kubebuilder:validation:Required // +kubebuilder:validation:Pattern=^([0-9]+(\.[0-9]+)?)(E|P|T|G|M|K|Ei|Pi|Ti|Gi|Mi|Ki)$ Size string `json:"size"` // ObjectStore defines the S3-compatible storage configuration // +kubebuilder:validation:Required ObjectStore ObjectStoreSpec `json:"objectStore"` // Encryption defines the encryption configuration // +optional Encryption *EncryptionSpec `json:"encryption,omitempty"` // BackupPolicy defines the backup configuration // +optional BackupPolicy *BackupPolicySpec `json:"backupPolicy,omitempty"` // CatalogPath is the path to the DuckDB catalog file within the PVC // +kubebuilder:default=/catalog/catalog.db CatalogPath string `json:"catalogPath,omitempty"` // RestoreVersion, if set, restores the catalog to a historical version // +optional RestoreVersion string `json:"restoreVersion,omitempty"` // Versioning controls automatic metadata snapshotting // +optional Versioning *VersioningSpec `json:"versioning,omitempty"` }
DuckLakeCatalogSpec defines the desired state of DuckLakeCatalog
func (*DuckLakeCatalogSpec) DeepCopy ¶
func (in *DuckLakeCatalogSpec) DeepCopy() *DuckLakeCatalogSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DuckLakeCatalogSpec.
func (*DuckLakeCatalogSpec) DeepCopyInto ¶
func (in *DuckLakeCatalogSpec) DeepCopyInto(out *DuckLakeCatalogSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DuckLakeCatalogStatus ¶
type DuckLakeCatalogStatus struct { // Phase represents the current phase of the catalog // +optional Phase CatalogPhase `json:"phase,omitempty"` // LastBackup is the timestamp of the last successful backup // +optional LastBackup *metav1.Time `json:"lastBackup,omitempty"` // Conditions represent the latest available observations of the catalog's state // +optional Conditions []metav1.Condition `json:"conditions,omitempty"` // ObservedGeneration is the last generation that was acted on // +optional ObservedGeneration int64 `json:"observedGeneration,omitempty"` // VersionHistory lists recent catalog versions // +optional VersionHistory []VersionEntry `json:"versionHistory,omitempty"` }
DuckLakeCatalogStatus defines the observed state of DuckLakeCatalog
func (*DuckLakeCatalogStatus) DeepCopy ¶
func (in *DuckLakeCatalogStatus) DeepCopy() *DuckLakeCatalogStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DuckLakeCatalogStatus.
func (*DuckLakeCatalogStatus) DeepCopyInto ¶
func (in *DuckLakeCatalogStatus) DeepCopyInto(out *DuckLakeCatalogStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DuckLakePool ¶
type DuckLakePool struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec DuckLakePoolSpec `json:"spec,omitempty"` Status DuckLakePoolStatus `json:"status,omitempty"` }
DuckLakePool is the Schema for the ducklakepools API
func (*DuckLakePool) DeepCopy ¶
func (in *DuckLakePool) DeepCopy() *DuckLakePool
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DuckLakePool.
func (*DuckLakePool) DeepCopyInto ¶
func (in *DuckLakePool) DeepCopyInto(out *DuckLakePool)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DuckLakePool) DeepCopyObject ¶
func (in *DuckLakePool) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DuckLakePoolList ¶
type DuckLakePoolList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []DuckLakePool `json:"items"` }
DuckLakePoolList contains a list of DuckLakePool
func (*DuckLakePoolList) DeepCopy ¶
func (in *DuckLakePoolList) DeepCopy() *DuckLakePoolList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DuckLakePoolList.
func (*DuckLakePoolList) DeepCopyInto ¶
func (in *DuckLakePoolList) DeepCopyInto(out *DuckLakePoolList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DuckLakePoolList) DeepCopyObject ¶
func (in *DuckLakePoolList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DuckLakePoolSpec ¶
type DuckLakePoolSpec struct { // MinSize is the minimum number of warm pods to maintain // +kubebuilder:validation:Minimum=0 // +kubebuilder:default=1 MinSize int32 `json:"minSize,omitempty"` // MaxSize is the maximum number of warm pods to maintain // +kubebuilder:validation:Minimum=1 // +kubebuilder:default=10 MaxSize int32 `json:"maxSize,omitempty"` // TargetUtilization is the target utilization ratio (0.0 to 1.0) // +kubebuilder:validation:Pattern=^(0?\.[0-9]+|1\.0|1)$ // +kubebuilder:default="0.8" TargetUtilization string `json:"targetUtilization,omitempty"` // Template defines the pod template for warm pods Template PodTemplate `json:"template"` // LifecyclePolicies defines when to recycle pods LifecyclePolicies LifecyclePolicies `json:"lifecyclePolicies,omitempty"` // ScalingBehavior configures how the pool scales ScalingBehavior ScalingBehavior `json:"scalingBehavior,omitempty"` // CatalogRef references the DuckLakeCatalog to mount CatalogRef CatalogReference `json:"catalogRef"` // Metrics configures metrics exposure Metrics MetricsConfig `json:"metrics,omitempty"` // MaxQueryDuration limits how long a query may run // +kubebuilder:default="60s" MaxQueryDuration metav1.Duration `json:"maxQueryDuration,omitempty"` // MaxRetries defines how many times to retry failed queries // +kubebuilder:default=3 MaxRetries int32 `json:"maxRetries,omitempty"` // Queue configures request queueing Queue QueueConfig `json:"queue,omitempty"` }
DuckLakePoolSpec defines the desired state of DuckLakePool
func (*DuckLakePoolSpec) DeepCopy ¶
func (in *DuckLakePoolSpec) DeepCopy() *DuckLakePoolSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DuckLakePoolSpec.
func (*DuckLakePoolSpec) DeepCopyInto ¶
func (in *DuckLakePoolSpec) DeepCopyInto(out *DuckLakePoolSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DuckLakePoolStatus ¶
type DuckLakePoolStatus struct { // Phase is the current phase of the pool Phase PoolPhase `json:"phase,omitempty"` // CurrentSize is the current number of pods CurrentSize int32 `json:"currentSize"` // DesiredSize is the desired number of pods DesiredSize int32 `json:"desiredSize"` // IdlePods is the number of idle pods IdlePods int32 `json:"idlePods"` // BusyPods is the number of busy pods BusyPods int32 `json:"busyPods"` // QueueLength is the number of pending requests QueueLength int32 `json:"queueLength"` // Pods contains information about each pod Pods []PodInfo `json:"pods,omitempty"` // Conditions represent the latest available observations Conditions []metav1.Condition `json:"conditions,omitempty"` // LastScaleTime is when the pool was last scaled LastScaleTime *metav1.Time `json:"lastScaleTime,omitempty"` // ObservedGeneration is the last observed generation ObservedGeneration int64 `json:"observedGeneration,omitempty"` }
DuckLakePoolStatus defines the observed state of DuckLakePool
func (*DuckLakePoolStatus) DeepCopy ¶
func (in *DuckLakePoolStatus) DeepCopy() *DuckLakePoolStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DuckLakePoolStatus.
func (*DuckLakePoolStatus) DeepCopyInto ¶
func (in *DuckLakePoolStatus) DeepCopyInto(out *DuckLakePoolStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DuckLakeTable ¶
type DuckLakeTable struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec DuckLakeTableSpec `json:"spec,omitempty"` Status DuckLakeTableStatus `json:"status,omitempty"` }
DuckLakeTable is the Schema for the ducklaketables API
func (*DuckLakeTable) DeepCopy ¶
func (in *DuckLakeTable) DeepCopy() *DuckLakeTable
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DuckLakeTable.
func (*DuckLakeTable) DeepCopyInto ¶
func (in *DuckLakeTable) DeepCopyInto(out *DuckLakeTable)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DuckLakeTable) DeepCopyObject ¶
func (in *DuckLakeTable) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*DuckLakeTable) Default ¶
func (r *DuckLakeTable) Default()
Default implements admission.Defaulter so a webhook will be registered for the type
func (*DuckLakeTable) SetupWebhookWithManager ¶
func (r *DuckLakeTable) SetupWebhookWithManager(mgr ctrl.Manager) error
func (*DuckLakeTable) ValidateCreate ¶
func (r *DuckLakeTable) ValidateCreate() (admission.Warnings, error)
ValidateCreate implements admission.Validator so a webhook will be registered for the type
func (*DuckLakeTable) ValidateDelete ¶
func (r *DuckLakeTable) ValidateDelete() (admission.Warnings, error)
ValidateDelete implements admission.Validator so a webhook will be registered for the type
func (*DuckLakeTable) ValidateUpdate ¶
ValidateUpdate implements admission.Validator so a webhook will be registered for the type
type DuckLakeTableList ¶
type DuckLakeTableList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []DuckLakeTable `json:"items"` }
DuckLakeTableList contains a list of DuckLakeTable
func (*DuckLakeTableList) DeepCopy ¶
func (in *DuckLakeTableList) DeepCopy() *DuckLakeTableList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DuckLakeTableList.
func (*DuckLakeTableList) DeepCopyInto ¶
func (in *DuckLakeTableList) DeepCopyInto(out *DuckLakeTableList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DuckLakeTableList) DeepCopyObject ¶
func (in *DuckLakeTableList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DuckLakeTableSpec ¶
type DuckLakeTableSpec struct { // Name is the table name // +kubebuilder:validation:Required // +kubebuilder:validation:Pattern=^[a-zA-Z][a-zA-Z0-9_]*$ Name string `json:"name"` // Columns defines the table columns // +kubebuilder:validation:Required // +kubebuilder:validation:MinItems=1 Columns []ColumnDefinition `json:"columns"` // Format specifies the Parquet format configuration // +kubebuilder:validation:Required Format ParquetFormat `json:"format"` // Location is the object store path for Parquet files // +kubebuilder:validation:Required // +kubebuilder:validation:Pattern=^[a-zA-Z0-9-_./]+$ Location string `json:"location"` // TTLDays specifies the data retention period in days // +optional // +kubebuilder:validation:Minimum=1 TTLDays *int `json:"ttlDays,omitempty"` // Mode specifies the table write mode // +kubebuilder:validation:Required // +kubebuilder:validation:Enum=append;overwrite Mode TableMode `json:"mode"` // Comment provides documentation for the table // +optional Comment string `json:"comment,omitempty"` // CatalogRef references the DuckLakeCatalog this table belongs to // +kubebuilder:validation:Required CatalogRef string `json:"catalogRef"` // ObjectStore defines the S3-compatible storage configuration // If not specified, the configuration from the referenced catalog will be used // +optional ObjectStore *ObjectStoreSpec `json:"objectStore,omitempty"` // MaterializeTo configures optional view materialization // +optional MaterializeTo *MaterializeToSpec `json:"materializeTo,omitempty"` // RestoreVersion, if set, restores the table to a historical version // +optional RestoreVersion string `json:"restoreVersion,omitempty"` // Versioning controls automatic metadata snapshotting // +optional Versioning *VersioningSpec `json:"versioning,omitempty"` }
DuckLakeTableSpec defines the desired state of DuckLakeTable
func (*DuckLakeTableSpec) DeepCopy ¶
func (in *DuckLakeTableSpec) DeepCopy() *DuckLakeTableSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DuckLakeTableSpec.
func (*DuckLakeTableSpec) DeepCopyInto ¶
func (in *DuckLakeTableSpec) DeepCopyInto(out *DuckLakeTableSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DuckLakeTableStatus ¶
type DuckLakeTableStatus struct { // Phase is the current phase of the table // +kubebuilder:validation:Enum=Pending;Succeeded;Failed Phase TablePhase `json:"phase,omitempty"` // LastAppliedSnapshot is the latest successful snapshot ID // +optional LastAppliedSnapshot string `json:"lastAppliedSnapshot,omitempty"` // BytesWritten is the total bytes written // +optional BytesWritten int64 `json:"bytesWritten,omitempty"` // LastModified is the last modification timestamp // +optional LastModified *metav1.Time `json:"lastModified,omitempty"` // ObservedGeneration is the last generation that was acted on // +optional ObservedGeneration int64 `json:"observedGeneration,omitempty"` // Conditions represent the latest available observations of the table's state // +optional Conditions []metav1.Condition `json:"conditions,omitempty"` // Materialization holds information about the last materialization run // +optional Materialization *MaterializationStatus `json:"materialization,omitempty"` // VersionHistory lists recent table versions // +optional VersionHistory []VersionEntry `json:"versionHistory,omitempty"` }
DuckLakeTableStatus defines the observed state of DuckLakeTable
func (*DuckLakeTableStatus) DeepCopy ¶
func (in *DuckLakeTableStatus) DeepCopy() *DuckLakeTableStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DuckLakeTableStatus.
func (*DuckLakeTableStatus) DeepCopyInto ¶
func (in *DuckLakeTableStatus) DeepCopyInto(out *DuckLakeTableStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EncryptionSpec ¶
type EncryptionSpec struct { // KMSKeyID is the AWS KMS key ID for encryption // +kubebuilder:validation:Required KMSKeyID string `json:"kmsKeyId"` }
EncryptionSpec defines the encryption configuration for the catalog
func (*EncryptionSpec) DeepCopy ¶
func (in *EncryptionSpec) DeepCopy() *EncryptionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EncryptionSpec.
func (*EncryptionSpec) DeepCopyInto ¶
func (in *EncryptionSpec) DeepCopyInto(out *EncryptionSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LifecyclePolicies ¶
type LifecyclePolicies struct { // MaxIdleTime is the maximum time a pod can be idle before termination // +kubebuilder:default="5m" MaxIdleTime metav1.Duration `json:"maxIdleTime,omitempty"` // MaxLifetime is the maximum lifetime of a pod before recycling // +kubebuilder:default="1h" MaxLifetime metav1.Duration `json:"maxLifetime,omitempty"` // MaxQueries is the maximum number of queries before recycling // +kubebuilder:default=100 MaxQueries int32 `json:"maxQueries,omitempty"` }
LifecyclePolicies defines when to recycle warm pods
func (*LifecyclePolicies) DeepCopy ¶
func (in *LifecyclePolicies) DeepCopy() *LifecyclePolicies
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LifecyclePolicies.
func (*LifecyclePolicies) DeepCopyInto ¶
func (in *LifecyclePolicies) DeepCopyInto(out *LifecyclePolicies)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MaterializationDestination ¶
type MaterializationDestination struct { // Bucket is the target bucket for the materialized dataset // +kubebuilder:validation:Required Bucket string `json:"bucket"` // Prefix is the object prefix for the materialized files // +optional Prefix string `json:"prefix,omitempty"` }
MaterializationDestination defines the object store destination
type MaterializationFormat ¶
type MaterializationFormat struct { // Type specifies the file format. Currently only "parquet" is supported // +kubebuilder:validation:Enum=parquet Type string `json:"type"` // Compression specifies the compression algorithm // +optional // +kubebuilder:validation:Enum=ZSTD;SNAPPY Compression CompressionType `json:"compression,omitempty"` // PartitionBy specifies the partition columns // +optional PartitionBy []string `json:"partitionBy,omitempty"` }
MaterializationFormat defines the output format for materialization
type MaterializationStatus ¶
type MaterializationStatus struct { // LastRun indicates the time of the last materialization // +optional LastRun *metav1.Time `json:"lastRun,omitempty"` // Duration is the execution time of the last materialization // +optional Duration metav1.Duration `json:"duration,omitempty"` // OutputPath is the object store prefix of the materialized files // +optional OutputPath string `json:"outputPath,omitempty"` // RowCount is the number of rows produced in the last run // +optional RowCount int64 `json:"rowCount,omitempty"` }
MaterializationStatus tracks the outcome of a materialization run
type MaterializeToSpec ¶
type MaterializeToSpec struct { // Enabled determines whether materialization is active // +kubebuilder:default=false Enabled bool `json:"enabled"` // Name is the logical name of the materialization // +optional Name string `json:"name,omitempty"` // SQL is the query used to produce the dataset // +optional SQL string `json:"sql,omitempty"` // Schedule is an optional cron expression for refresh // +optional Schedule string `json:"schedule,omitempty"` // Format describes the output file format // +optional Format MaterializationFormat `json:"format,omitempty"` // Destination specifies where the files are written // +optional Destination MaterializationDestination `json:"destination,omitempty"` }
MaterializeToSpec configures materialization of query results
type MetricsConfig ¶
type MetricsConfig struct { // Enabled specifies if metrics should be exposed // +kubebuilder:default=true Enabled bool `json:"enabled,omitempty"` // Port is the port to expose metrics on // +kubebuilder:default=9090 Port int32 `json:"port,omitempty"` }
MetricsConfig configures metrics exposure
func (*MetricsConfig) DeepCopy ¶
func (in *MetricsConfig) DeepCopy() *MetricsConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsConfig.
func (*MetricsConfig) DeepCopyInto ¶
func (in *MetricsConfig) DeepCopyInto(out *MetricsConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ObjectStoreSpec ¶
type ObjectStoreSpec struct { // Endpoint is the S3-compatible endpoint URL // +kubebuilder:validation:Required // +kubebuilder:validation:Pattern=`^https?:\/\/.*` Endpoint string `json:"endpoint"` // Bucket is the name of the S3 bucket to use // +kubebuilder:validation:Required // +kubebuilder:validation:MinLength=3 // +kubebuilder:validation:MaxLength=63 Bucket string `json:"bucket"` // Region is the S3 region (optional for some providers) // +optional Region string `json:"region,omitempty"` // CredentialsSecret references the secret containing AWS credentials // +kubebuilder:validation:Required CredentialsSecret SecretReference `json:"credentialsSecret"` }
ObjectStoreSpec defines the configuration for S3-compatible object storage
func (*ObjectStoreSpec) DeepCopy ¶
func (in *ObjectStoreSpec) DeepCopy() *ObjectStoreSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectStoreSpec.
func (*ObjectStoreSpec) DeepCopyInto ¶
func (in *ObjectStoreSpec) DeepCopyInto(out *ObjectStoreSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ParquetFormat ¶
type ParquetFormat struct { // Compression specifies the compression algorithm // +kubebuilder:validation:Required // +kubebuilder:validation:Enum=ZSTD;SNAPPY Compression CompressionType `json:"compression"` // Partitioning specifies the partition columns // +optional Partitioning []string `json:"partitioning,omitempty"` }
ParquetFormat defines the Parquet file format configuration
func (*ParquetFormat) DeepCopy ¶
func (in *ParquetFormat) DeepCopy() *ParquetFormat
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParquetFormat.
func (*ParquetFormat) DeepCopyInto ¶
func (in *ParquetFormat) DeepCopyInto(out *ParquetFormat)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodInfo ¶
type PodInfo struct { // Name is the pod name Name string `json:"name"` // State is the current state State PodState `json:"state"` // LastUsed is when the pod was last used LastUsed metav1.Time `json:"lastUsed,omitempty"` // QueryCount is the number of queries executed QueryCount int32 `json:"queryCount"` // CreatedAt is when the pod was created CreatedAt metav1.Time `json:"createdAt"` }
PodInfo contains information about a warm pod
func (*PodInfo) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodInfo.
func (*PodInfo) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodState ¶
type PodState string
PodState represents the state of a warm pod
const ( // PodStateIdle indicates the pod is ready to accept work PodStateIdle PodState = "Idle" // PodStateAcquiring indicates the pod is being assigned work PodStateAcquiring PodState = "Acquiring" // PodStateBusy indicates the pod is executing a query PodStateBusy PodState = "Busy" // PodStateDraining indicates the pod is finishing work before termination PodStateDraining PodState = "Draining" // PodStateTerminating indicates the pod is being removed PodStateTerminating PodState = "Terminating" )
type PodTemplate ¶
type PodTemplate struct { // Resources defines resource requirements Resources corev1.ResourceRequirements `json:"resources,omitempty"` // Image is the DuckDB container image // +kubebuilder:default="datacatering/duckdb:v1.3.0" Image string `json:"image,omitempty"` // ImagePullPolicy defines when to pull the image // +kubebuilder:default="IfNotPresent" ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"` // SecurityContext defines security settings SecurityContext *corev1.PodSecurityContext `json:"securityContext,omitempty"` // NodeSelector defines node selection constraints NodeSelector map[string]string `json:"nodeSelector,omitempty"` // Tolerations defines pod tolerations Tolerations []corev1.Toleration `json:"tolerations,omitempty"` // Affinity defines pod affinity rules Affinity *corev1.Affinity `json:"affinity,omitempty"` }
PodTemplate defines the template for creating warm pods
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 PoolPhase ¶
type PoolPhase string
PoolPhase represents the phase of the pool
const ( // PoolPhasePending indicates the pool is being created PoolPhasePending PoolPhase = "Pending" // PoolPhaseRunning indicates the pool is running normally PoolPhaseRunning PoolPhase = "Running" // PoolPhaseFailed indicates the pool has failed PoolPhaseFailed PoolPhase = "Failed" // PoolPhaseTerminating indicates the pool is being deleted PoolPhaseTerminating PoolPhase = "Terminating" )
type QueueConfig ¶
type QueueConfig struct { // MaxLength is the maximum number of queued requests // +kubebuilder:default=100 MaxLength int32 `json:"maxLength,omitempty"` // MaxWaitTime is the maximum time a request may wait in the queue // +kubebuilder:default="30s" MaxWaitTime metav1.Duration `json:"maxWaitTime,omitempty"` // Policy sets the queue policy (fifo or weighted) // +kubebuilder:default="fifo" Policy string `json:"policy,omitempty"` }
QueueConfig configures request queueing
type SQLType ¶
type SQLType string
SQLType represents a SQL data type
const ( // SQLTypeInteger represents INTEGER type SQLTypeInteger SQLType = "INTEGER" // SQLTypeBigInt represents BIGINT type SQLTypeBigInt SQLType = "BIGINT" // SQLTypeDouble represents DOUBLE type SQLTypeDouble SQLType = "DOUBLE" // SQLTypeBoolean represents BOOLEAN type SQLTypeBoolean SQLType = "BOOLEAN" // SQLTypeVarChar represents VARCHAR type SQLTypeVarChar SQLType = "VARCHAR" // SQLTypeDate represents DATE type SQLTypeDate SQLType = "DATE" // SQLTypeTimestamp represents TIMESTAMP type SQLTypeTimestamp SQLType = "TIMESTAMP" // SQLTypeDecimal represents DECIMAL type SQLTypeDecimal SQLType = "DECIMAL" )
type ScalingBehavior ¶
type ScalingBehavior struct { // ScaleUpRate is the maximum number of pods to add per interval // +kubebuilder:validation:Minimum=1 // +kubebuilder:default=2 ScaleUpRate int32 `json:"scaleUpRate,omitempty"` // ScaleDownRate is the maximum number of pods to remove per interval // +kubebuilder:validation:Minimum=1 // +kubebuilder:default=1 ScaleDownRate int32 `json:"scaleDownRate,omitempty"` // ScaleInterval is the interval between scaling evaluations // +kubebuilder:default="30s" ScaleInterval metav1.Duration `json:"scaleInterval,omitempty"` // StabilizationWindow is the time to wait before scaling down // +kubebuilder:default="2m" StabilizationWindow metav1.Duration `json:"stabilizationWindow,omitempty"` }
ScalingBehavior configures pool scaling behavior
func (*ScalingBehavior) DeepCopy ¶
func (in *ScalingBehavior) DeepCopy() *ScalingBehavior
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalingBehavior.
func (*ScalingBehavior) DeepCopyInto ¶
func (in *ScalingBehavior) DeepCopyInto(out *ScalingBehavior)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecretReference ¶
type SecretReference struct { // Name is the name of the secret // +kubebuilder:validation:Required Name string `json:"name"` // AccessKeyField is the field in the secret containing the access key // +kubebuilder:default=access-key AccessKeyField string `json:"accessKeyField,omitempty"` // SecretKeyField is the field in the secret containing the secret key // +kubebuilder:default=secret-key SecretKeyField string `json:"secretKeyField,omitempty"` }
SecretReference contains the reference to a secret
func (*SecretReference) DeepCopy ¶
func (in *SecretReference) DeepCopy() *SecretReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretReference.
func (*SecretReference) DeepCopyInto ¶
func (in *SecretReference) DeepCopyInto(out *SecretReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TablePhase ¶
type TablePhase string
TablePhase represents the phase of a DuckLakeTable
const ( // TablePhasePending indicates the table is being created TablePhasePending TablePhase = "Pending" // TablePhaseSucceeded indicates the table is ready TablePhaseSucceeded TablePhase = "Succeeded" // TablePhaseFailed indicates the table failed to create TablePhaseFailed TablePhase = "Failed" )
type VersionEntry ¶
type VersionEntry struct { // ID is the version identifier ID string `json:"id"` // Timestamp records when the snapshot was taken Timestamp metav1.Time `json:"timestamp"` }
VersionEntry represents a stored resource version
type VersioningSpec ¶
type VersioningSpec struct { // Enabled toggles versioning // +kubebuilder:default=false Enabled bool `json:"enabled"` // Retention defines how long to keep versions // +optional Retention metav1.Duration `json:"retention,omitempty"` // Strategy determines versioning backend implementation // +kubebuilder:default=snapshot // +optional Strategy string `json:"strategy,omitempty"` }
VersioningSpec controls automatic snapshotting of metadata for catalogs and tables +kubebuilder:object:generate=true +kubebuilder:resource:scope=Namespaced