v1beta1

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Mar 4, 2026 License: Apache-2.0 Imports: 6 Imported by: 0

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

View Source
const (
	ConditionReady       = "Ready"
	ConditionReconciling = "Reconciling"
	ConditionSuspended   = "Suspended"
)

Variables

View Source
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

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

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

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"
)

Jump to

Keyboard shortcuts

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