Documentation
¶
Overview ¶
Package v1beta1 contains API Schema definitions for the qdrant.infra.doodle.com v1beta1 API group +kubebuilder:object:generate=true +groupName=qdrant.infra.doodle.com
Index ¶
- Constants
- Variables
- type CloudProviderType
- type ClusterConfiguration
- type ClusterEndpoint
- type DatabaseKeyConfig
- type LocalObjectReference
- type PackageSelection
- type QdrantCluster
- func (in *QdrantCluster) DeepCopy() *QdrantCluster
- func (in *QdrantCluster) DeepCopyInto(out *QdrantCluster)
- func (in *QdrantCluster) DeepCopyObject() runtime.Object
- func (in *QdrantCluster) GetStatusConditions() *[]metav1.Condition
- func (in *QdrantCluster) SetReadyCondition(status metav1.ConditionStatus, reason, message string)
- func (in *QdrantCluster) SetReconcilingCondition(status metav1.ConditionStatus, reason, message string)
- func (in *QdrantCluster) SetSuspendedCondition(status metav1.ConditionStatus, reason, message string)
- type QdrantClusterList
- type QdrantClusterSpec
- type QdrantClusterStatus
- type ResourceRequirements
- type SecretReference
- type StorageTierType
Constants ¶
const ( ConditionReady = "Ready" ConditionReconciling = "Reconciling" ConditionSuspended = "Suspended" )
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "qdrant.infra.doodle.com", Version: "v1beta1"} // 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 CloudProviderType ¶
type CloudProviderType string
CloudProviderType defines supported cloud providers +kubebuilder:validation:Enum=aws;gcp;azure;hybrid
const ( CloudProviderAWS CloudProviderType = "aws" CloudProviderGCP CloudProviderType = "gcp" CloudProviderAzure CloudProviderType = "azure" CloudProviderHybrid CloudProviderType = "hybrid" )
type ClusterConfiguration ¶
type ClusterConfiguration struct {
// DatabaseConfiguration for Qdrant-specific settings
// +optional
DatabaseConfiguration map[string]string `json:"databaseConfiguration,omitempty"`
// Labels to apply to the cluster (max 10)
// +optional
// +kubebuilder:validation:MaxProperties=10
Labels map[string]string `json:"labels,omitempty"`
}
ClusterConfiguration allows advanced cluster configuration options
func (*ClusterConfiguration) DeepCopy ¶
func (in *ClusterConfiguration) DeepCopy() *ClusterConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterConfiguration.
func (*ClusterConfiguration) DeepCopyInto ¶
func (in *ClusterConfiguration) DeepCopyInto(out *ClusterConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterEndpoint ¶
type ClusterEndpoint struct {
// URL is the base URL without port (e.g., "https://abc123.eu-central-1.aws.cloud.qdrant.io")
// +optional
URL string `json:"url,omitempty"`
// RESTPort is the REST API port (typically 6333)
// +optional
RESTPort int32 `json:"restPort,omitempty"`
// GRPCPort is the gRPC API port (typically 6334)
// +optional
GRPCPort int32 `json:"grpcPort,omitempty"`
}
ClusterEndpoint contains the connection information for the cluster
func (*ClusterEndpoint) DeepCopy ¶
func (in *ClusterEndpoint) DeepCopy() *ClusterEndpoint
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterEndpoint.
func (*ClusterEndpoint) DeepCopyInto ¶
func (in *ClusterEndpoint) DeepCopyInto(out *ClusterEndpoint)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DatabaseKeyConfig ¶
type DatabaseKeyConfig struct {
// Name of the database API key, defaults to "<cluster-name>-key"
// +optional
Name string `json:"name,omitempty"`
// Scopes defines the permissions for the key (e.g., ["read", "write"])
// +optional
Scopes []string `json:"scopes,omitempty"`
// ExpiresInDays sets the expiration time in days, defaults to 90
// +kubebuilder:validation:Minimum=1
// +kubebuilder:validation:Maximum=365
// +kubebuilder:default=90
// +optional
ExpiresInDays *int32 `json:"expiresInDays,omitempty"`
}
DatabaseKeyConfig configures the auto-created database API key
func (*DatabaseKeyConfig) DeepCopy ¶
func (in *DatabaseKeyConfig) DeepCopy() *DatabaseKeyConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatabaseKeyConfig.
func (*DatabaseKeyConfig) DeepCopyInto ¶
func (in *DatabaseKeyConfig) DeepCopyInto(out *DatabaseKeyConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LocalObjectReference ¶
type LocalObjectReference struct {
Name string `json:"name,omitempty"`
}
func (*LocalObjectReference) DeepCopy ¶
func (in *LocalObjectReference) DeepCopy() *LocalObjectReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalObjectReference.
func (*LocalObjectReference) DeepCopyInto ¶
func (in *LocalObjectReference) DeepCopyInto(out *LocalObjectReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PackageSelection ¶
type PackageSelection struct {
// PackageID explicitly specifies the package UUID from ListPackages API
// +optional
PackageID *string `json:"packageID,omitempty"`
// ResourceRequirements specifies desired resources for automatic package selection
// The controller will find the smallest package matching these requirements
// +optional
ResourceRequirements *ResourceRequirements `json:"resourceRequirements,omitempty"`
}
PackageSelection defines how to select the package for cluster nodes Either packageID or resourceRequirements must be specified, but not both
func (*PackageSelection) DeepCopy ¶
func (in *PackageSelection) DeepCopy() *PackageSelection
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PackageSelection.
func (*PackageSelection) DeepCopyInto ¶
func (in *PackageSelection) DeepCopyInto(out *PackageSelection)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type QdrantCluster ¶
type QdrantCluster struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec QdrantClusterSpec `json:"spec,omitempty"`
Status QdrantClusterStatus `json:"status,omitempty"`
}
QdrantCluster is the Schema for the qdrantclusters API
func (*QdrantCluster) DeepCopy ¶
func (in *QdrantCluster) DeepCopy() *QdrantCluster
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QdrantCluster.
func (*QdrantCluster) DeepCopyInto ¶
func (in *QdrantCluster) DeepCopyInto(out *QdrantCluster)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*QdrantCluster) DeepCopyObject ¶
func (in *QdrantCluster) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*QdrantCluster) GetStatusConditions ¶
func (in *QdrantCluster) GetStatusConditions() *[]metav1.Condition
GetStatusConditions returns a pointer to the Status.Conditions slice
func (*QdrantCluster) SetReadyCondition ¶
func (in *QdrantCluster) SetReadyCondition(status metav1.ConditionStatus, reason, message string)
SetReadyCondition sets the Ready condition
func (*QdrantCluster) SetReconcilingCondition ¶
func (in *QdrantCluster) SetReconcilingCondition(status metav1.ConditionStatus, reason, message string)
SetReconcilingCondition sets the Reconciling condition
func (*QdrantCluster) SetSuspendedCondition ¶
func (in *QdrantCluster) SetSuspendedCondition(status metav1.ConditionStatus, reason, message string)
SetSuspendedCondition sets the Suspended condition
type QdrantClusterList ¶
type QdrantClusterList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []QdrantCluster `json:"items"`
}
QdrantClusterList contains a list of QdrantCluster
func (*QdrantClusterList) DeepCopy ¶
func (in *QdrantClusterList) DeepCopy() *QdrantClusterList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QdrantClusterList.
func (*QdrantClusterList) DeepCopyInto ¶
func (in *QdrantClusterList) DeepCopyInto(out *QdrantClusterList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*QdrantClusterList) DeepCopyObject ¶
func (in *QdrantClusterList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type QdrantClusterSpec ¶
type QdrantClusterSpec struct {
// AccountID is the Qdrant Cloud account ID (UUID format)
// +kubebuilder:validation:Required
// +kubebuilder:validation:Pattern=`^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$`
AccountID string `json:"accountID"`
// CloudProvider specifies the cloud provider
// +kubebuilder:validation:Required
CloudProvider CloudProviderType `json:"cloudProvider"`
// CloudRegion specifies the cloud provider region (e.g., "us-east-1", "europe-west1")
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
CloudRegion string `json:"cloudRegion"`
// NodeCount specifies the number of nodes in the cluster
// +kubebuilder:validation:Required
// +kubebuilder:validation:Minimum=1
// +kubebuilder:default=1
NodeCount int32 `json:"nodeCount"`
// QdrantVersion specifies the Qdrant version (e.g., "v1.16.3" or "latest")
// +optional
QdrantVersion string `json:"qdrantVersion,omitempty"`
// PackageSelection defines how to select the package for cluster nodes
// Either packageID or resourceRequirements must be specified
// +kubebuilder:validation:Required
PackageSelection PackageSelection `json:"packageSelection"`
// AdditionalDiskGiB specifies additional disk space in GiB beyond the package default
// +optional
AdditionalDiskGiB *int32 `json:"additionalDiskGiB,omitempty"`
// StorageTier specifies the storage performance tier
// +kubebuilder:validation:Enum=cost-optimized;balanced;performance
// +kubebuilder:default=cost-optimized
// +optional
StorageTier StorageTierType `json:"storageTier,omitempty"`
// Configuration allows advanced cluster configuration
// +optional
Configuration *ClusterConfiguration `json:"configuration,omitempty"`
// Secret reference containing the Qdrant Cloud Management API key
// +kubebuilder:validation:Required
Secret SecretReference `json:"secret"`
// ConnectionSecret specifies the name of the secret to create with connection details
// If not specified, defaults to <cluster-name>-connection
// +optional
ConnectionSecret LocalObjectReference `json:"connectionSecret,omitempty"`
// AutoCreateDatabaseKey controls whether to automatically create a database API key
// +kubebuilder:default=true
// +optional
AutoCreateDatabaseKey *bool `json:"autoCreateDatabaseKey,omitempty"`
// DatabaseKeyConfig configures the auto-created database API key
// +optional
DatabaseKeyConfig *DatabaseKeyConfig `json:"databaseKeyConfig,omitempty"`
// Suspend will suspend the cluster when set to true
// +optional
Suspend bool `json:"suspend,omitempty"`
// Interval is the reconciliation interval
// +kubebuilder:default="5m"
// +optional
Interval *metav1.Duration `json:"interval,omitempty"`
}
QdrantClusterSpec defines the desired state of QdrantCluster
func (*QdrantClusterSpec) DeepCopy ¶
func (in *QdrantClusterSpec) DeepCopy() *QdrantClusterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QdrantClusterSpec.
func (*QdrantClusterSpec) DeepCopyInto ¶
func (in *QdrantClusterSpec) DeepCopyInto(out *QdrantClusterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type QdrantClusterStatus ¶
type QdrantClusterStatus struct {
// ClusterID is the Qdrant Cloud cluster ID (UUID)
// +optional
ClusterID string `json:"clusterID,omitempty"`
// Phase represents the current phase of the cluster
// +optional
Phase string `json:"phase,omitempty"`
// Version is the currently running Qdrant version
// +optional
Version string `json:"version,omitempty"`
// NodesUp indicates the number of nodes currently running
// +optional
NodesUp int32 `json:"nodesUp,omitempty"`
// Endpoint contains the cluster connection information
// +optional
Endpoint *ClusterEndpoint `json:"endpoint,omitempty"`
// PackageID is the resolved package UUID being used
// +optional
PackageID string `json:"packageID,omitempty"`
// DatabaseKeyID is the ID of the auto-created database API key
// +optional
DatabaseKeyID string `json:"databaseKeyID,omitempty"`
// ConnectionSecret is the name of the secret containing connection details
// +optional
ConnectionSecret string `json:"connectionSecret,omitempty"`
// ObservedGeneration is the last observed generation
// +optional
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
// Conditions represent the latest available observations of the cluster's state
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
QdrantClusterStatus defines the observed state of QdrantCluster
func (*QdrantClusterStatus) DeepCopy ¶
func (in *QdrantClusterStatus) DeepCopy() *QdrantClusterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QdrantClusterStatus.
func (*QdrantClusterStatus) DeepCopyInto ¶
func (in *QdrantClusterStatus) DeepCopyInto(out *QdrantClusterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceRequirements ¶
type ResourceRequirements struct {
// RAM specifies minimum RAM (e.g., "8Gi", "16Gi")
// +optional
RAM *resource.Quantity `json:"ram,omitempty"`
// CPU specifies minimum CPU (e.g., "2" for 2 vCPU, "500m" for half a vCPU)
// +optional
CPU *resource.Quantity `json:"cpu,omitempty"`
// Disk specifies minimum disk space (e.g., "32Gi", "64Gi")
// +optional
Disk *resource.Quantity `json:"disk,omitempty"`
}
ResourceRequirements defines minimum resource requirements for automatic package selection
func (*ResourceRequirements) DeepCopy ¶
func (in *ResourceRequirements) DeepCopy() *ResourceRequirements
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceRequirements.
func (*ResourceRequirements) DeepCopyInto ¶
func (in *ResourceRequirements) DeepCopyInto(out *ResourceRequirements)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecretReference ¶
type SecretReference struct {
Name string `json:"name"`
APIKeyKey string `json:"apiKeyKey,omitempty"`
}
SecretReference extends LocalObjectReference with optional secret key mappings
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 StorageTierType ¶
type StorageTierType string
StorageTierType defines storage performance tiers +kubebuilder:validation:Enum=cost-optimized;balanced;performance
const ( StorageTierCostOptimized StorageTierType = "cost-optimized" StorageTierBalanced StorageTierType = "balanced" StorageTierPerformance StorageTierType = "performance" )