v1beta1

package
v1.3.3 Latest Latest
Warning

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

Go to latest
Published: Nov 14, 2025 License: Apache-2.0 Imports: 27 Imported by: 0

Documentation

Overview

package v1beta1 contains API Schema definitions for the v1beta1 API group +kubebuilder:object:generate=true +groupName=milvus.io

Index

Constants

View Source
const (
	RootCoord     ComponentType = "rootCoord"
	DataCoord     ComponentType = "dataCoord"
	QueryCoord    ComponentType = "queryCoord"
	IndexCoord    ComponentType = "indexCoord"
	DataNode      ComponentType = "dataNode"
	QueryNode     ComponentType = "queryNode"
	IndexNode     ComponentType = "indexNode"
	StreamingNode ComponentType = "streamingNode"
	Proxy         ComponentType = "proxy"
	Cdc           ComponentType = "cdc"

	MixCoordName      = "mixcoord"
	RootCoordName     = "rootcoord"
	DataCoordName     = "datacoord"
	QueryCoordName    = "querycoord"
	IndexCoordName    = "indexcoord"
	DataNodeName      = "datanode"
	QueryNodeName     = "querynode"
	IndexNodeName     = "indexnode"
	ProxyName         = "proxy"
	StandaloneName    = "standalone"
	StreamingNodeName = "streamingnode"
	CdcName           = "cdc"
)
View Source
const (
	StorageTypeMinIO = "MinIO"
	StorageTypeS3    = "S3"
	StorageTypeAzure = "Azure"
)
View Source
const (
	MilvusIO             = "milvus.io/"
	OperatorVersionLabel = MilvusIO + "operator-version"
	// DependencyValuesLegacySyncedAnnotation : For legacy versions before v0.5.1, default value is not set to CR.
	// So if they upgrade to v0.5.1+, if the dependency default values in milvus-helm updated
	// the inCluster dependencies will get restarted. So we sync defaults first to prevent this
	DependencyValuesLegacySyncedAnnotation = MilvusIO + "dependency-values-legacy-synced"
	DependencyValuesMergedAnnotation       = MilvusIO + "dependency-values-merged"
	LegacyVersion                          = "v0.5.0-legacy"
	FalseStr                               = "false"
	TrueStr                                = "true"
	UpgradeAnnotation                      = MilvusIO + "upgrade"
	AnnotationUpgrading                    = "upgrading"
	AnnotationUpgraded                     = "upgraded"
	StoppedAtAnnotation                    = MilvusIO + "stopped-at"
	PodAnnotationUsingConfigMap            = MilvusIO + "using-configmap"
	AnnotationMilvusGeneration             = MilvusIO + "generation"

	// PodServiceLabelAddedAnnotation is to indicate whether the milvus.io/service=true label is added to proxy & standalone pods
	// previously, we use milvus.io/component: proxy / standalone; to select the service pods
	// but now we want to support a standalone updating to cluster without downtime
	// so instead we use milvus.io/service="true" to select the service pods
	PodServiceLabelAddedAnnotation = MilvusIO + "pod-service-label-added"
	// ServiceLabel is the label to indicate whether the pod is a service pod
	ServiceLabel                         = MilvusIO + "service"
	OldAnnotationCurrentQueryNodeGroupID = MilvusIO + "current-querynode-group-id"
)
View Source
const (
	// StatusPending is the status of creating or restarting.
	StatusPending MilvusHealthStatus = "Pending"
	// StatusHealthy is the status of healthy.
	StatusHealthy MilvusHealthStatus = "Healthy"
	// StatusUnhealthy is the status of unhealthy.
	StatusUnhealthy MilvusHealthStatus = "Unhealthy"
	// StatusDeleting is the status of deleting.
	StatusDeleting MilvusHealthStatus = "Deleting"
	// StatusStopped is the status of stopped.
	StatusStopped MilvusHealthStatus = "Stopped"

	// EtcdReady means the Etcd is ready.
	EtcdReady MilvusConditionType = "EtcdReady"
	// StorageReady means the Storage is ready.
	StorageReady MilvusConditionType = "StorageReady"
	// MsgStreamReady means the MsgStream is ready.
	MsgStreamReady MilvusConditionType = "MsgStreamReady"
	// MilvusReady means all components of Milvus are ready.
	MilvusReady MilvusConditionType = "MilvusReady"
	// MilvusUpdated means the Milvus has updated according to its spec.
	MilvusUpdated MilvusConditionType = "MilvusUpdated"

	// ReasonEndpointsHealthy means the endpoint is healthy
	ReasonEndpointsHealthy string = "EndpointsHealthy"
	// ReasonMilvusHealthy means milvus cluster is healthy
	ReasonMilvusHealthy string = "ReasonMilvusHealthy"
	// ReasonMilvusComponentNotHealthy means at least one of milvus component is not healthy
	ReasonMilvusComponentNotHealthy string = "MilvusComponentNotHealthy"
	// ReasonMilvusStopped means milvus cluster is stopped
	ReasonMilvusStopped string = "MilvusStopped"
	// ReasonMilvusStopping means milvus cluster is stopping
	ReasonMilvusStopping string = "MilvusStopping"
	// ReasonMilvusComponentsUpdated means milvus components are updated
	ReasonMilvusComponentsUpdated string = "MilvusComponentsUpdated"
	// ReasonMilvusComponentsUpdating means some milvus components are not updated
	ReasonMilvusComponentsUpdating string = "MilvusComponentsUpdating"
	// ReasonMilvusUpgradingImage means milvus is upgrading image
	ReasonMilvusUpgradingImage string = "MilvusUpgradingImage"
	// ReasonMilvusDowngradingImage means milvus is downgrading image
	ReasonMilvusDowngradingImage string = "MilvusDowngradingImage"

	ReasonEtcdReady          = "EtcdReady"
	ReasonEtcdNotReady       = "EtcdNotReady"
	ReasonS3Ready            = "S3StorageAssumeReady"
	ReasonStorageReady       = "StorageReady"
	ReasonStorageNotReady    = "StorageNotReady"
	ReasonMsgStreamReady     = "MsgStreamReady"
	ReasonMsgStreamNotReady  = "MsgStreamNotReady"
	ReasonSecretNotExist     = "SecretNotExist"
	ReasonSecretErr          = "SecretError"
	ReasonSecretDecodeErr    = "SecretDecodeError"
	ReasonClientErr          = "ClientError"
	ReasonDependencyNotReady = "DependencyNotReady"

	MsgMilvusHasTerminatingPods = "Milvus has terminating pods"
)
View Source
const EnableActiveStandByConfig = "enableActiveStandby"

EnableActiveStandByConfig is a config in coordinators to determine whether a coordinator can be rolling updated

View Source
const RocksMQPersistPath = "/var/lib/milvus"

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "milvus.io", Version: "v1beta1"}

	// for code-generator
	SchemeGroupVersion = GroupVersion

	// 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
)
View Source
var (
	// NewReplicaSetAvailableReason is the Complelete Reason
	NewReplicaSetAvailableReason = "NewReplicaSetAvailable"
	DeploymentPausedReason       = "DeploymentPaused"
)
View Source
var (
	Version           = "unknown"
	MilvusHelmVersion = "unknown"
)
View Source
var MilvusUpgradeKind = reflect.TypeOf(MilvusUpgrade{}).Name()

Functions

func AddPrefixV

func AddPrefixV(version string) string

func GetComponentCurrentGroupIDLabel

func GetComponentCurrentGroupIDLabel(component string) string

func GetComponentGroupIdLabel

func GetComponentGroupIdLabel(component string) string

func GetRollingIdLabelByComponent

func GetRollingIdLabelByComponent(component string) string

func InitLabelAnnotation

func InitLabelAnnotation(obj client.Object)

InitLabelAnnotation init nil label and annotation for object

func RemovePrefixV

func RemovePrefixV(version string) string

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type ChartVersion

type ChartVersion string
const (
	ChartVersionPulsarV2 ChartVersion = "pulsar-v2"
	ChartVersionPulsarV3 ChartVersion = "pulsar-v3"
)

type Component

type Component struct {
	ComponentSpec `json:",inline"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=-1
	// when replicas is -1, it means the replicas should be managed by HPA
	Replicas *int32 `json:"replicas,omitempty"`

	// SideCars is same as []corev1.Container, we use a Values here to avoid the CRD become too large
	// +kubebuilder:validation:Optional
	// +kubebuilder:pruning:PreserveUnknownFields
	SideCars []Values `json:"sidecars,omitempty"`

	// SideCars is same as []corev1.Container, we use a Values here to avoid the CRD become too large
	// +kubebuilder:validation:Optional
	// +kubebuilder:pruning:PreserveUnknownFields
	InitContainers []Values `json:"initContainers,omitempty"`
}

func (*Component) DeepCopy

func (in *Component) DeepCopy() *Component

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

func (*Component) DeepCopyInto

func (in *Component) DeepCopyInto(out *Component)

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

type ComponentDeployMode

type ComponentDeployMode int
const (
	// DeployModeUnknown is used when the component's deploy mode is unknown
	DeployModeUnknown ComponentDeployMode = iota
	// component in this mode has 1 deployment, uses k8s deployment's default rolling update strategy
	OneDeployMode
	// component in this mode has 2 deployment, operator takes care of querynode rolling update
	TwoDeployMode
)

type ComponentDeployStatus

type ComponentDeployStatus struct {
	// Generation of the deployment
	Generation int64 `json:"generation"`
	// Image of the deployment
	// it's used to check if the component is updated in rolling update
	Image string `json:"image"`
	// Status of the deployment
	Status appsv1.DeploymentStatus `json:"status"`
}

func (*ComponentDeployStatus) DeepCopy

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

func (*ComponentDeployStatus) DeepCopyInto

func (in *ComponentDeployStatus) DeepCopyInto(out *ComponentDeployStatus)

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

func (ComponentDeployStatus) GetState

type ComponentSpec

type ComponentSpec struct {
	// Paused is used to pause the component's deployment rollout
	// +kubebuilder:validation:Optional
	Paused bool `json:"paused"`

	// +kubebuilder:validation:Optional
	PodLabels map[string]string `json:"podLabels,omitempty"`

	// +kubebuilder:validation:Optional
	PodAnnotations map[string]string `json:"podAnnotations,omitempty"`

	// +kubebuilder:validation:Optional
	Image string `json:"image,omitempty"`

	// Version specifies the version of the image, users can specify their desired version
	// The tag of image will be used if not specified
	// +kubebuilder:validation:Optional
	Version string `json:"version,omitempty"`

	// Commands override the default commands & args of the container
	// +kubebuilder:validation:Optional
	Commands []string `json:"commands,omitempty"`

	// RunWithSubProcess whether to run milvus with flag --run-with-subprocess
	// note: supported in 2.2.15, 2.3.2+
	// +kubebuilder:validation:Optional
	RunWithSubProcess *bool `json:"runWithSubProcess,omitempty"`

	// +kubebuilder:validation:Optional
	ImagePullPolicy *corev1.PullPolicy `json:"imagePullPolicy,omitempty"`

	// +kubebuilder:validation:Optional
	ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`

	// +kubebuilder:validation:Optional
	Env []corev1.EnvVar `json:"env,omitempty"`

	// SchedulerName is the name of the scheduler to use for one component
	// +kubebuilder:validation:Optional
	SchedulerName string `json:"schedulerName,omitempty"`

	// +kubebuilder:validation:Optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// +kubebuilder:validation:Optional
	Affinity *corev1.Affinity `json:"affinity,omitempty"`

	// +kubebuilder:validation:Optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// +kubebuilder:validation:Optional
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`

	// +kubebuilder:validation:Optional
	VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`

	// Volumes is same as corev1.Volume, we use a Values here to avoid the CRD become too large
	// +kubebuilder:validation:Optional
	// +kubebuilder:pruning:PreserveUnknownFields
	Volumes []Values `json:"volumes,omitempty"`

	// ServiceAccountName usually used for situations like accessing s3 with IAM role
	// +kubebuilder:validation:Optional
	ServiceAccountName string `json:"serviceAccountName,omitempty"`

	// PriorityClassName indicates the pod's priority.
	// +kubebuilder:validation:Optional
	PriorityClassName string `json:"priorityClassName,omitempty"`

	// HostNetwork indicates whether to use host network
	// +kubebuilder:validation:Optional
	HostNetwork bool `json:"hostNetwork,omitempty"`

	// DNSPolicy indicates the pod's DNS policy
	// +kubebuilder:validation:Optional
	DNSPolicy corev1.DNSPolicy `json:"dnsPolicy,omitempty"`

	// Probes has fields startupProbe, livenessProbe, readinessProbe
	// +kubebuilder:validation:Optional
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	Probes Values `json:"probes,omitempty"`

	// SecurityContext defines the pod's security context
	// structure is same as corev1.SecurityContext, we use a Values here to avoid the CRD become too large
	// +kubebuilder:validation:Optional
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	SecurityContext Values `json:"securityContext,omitempty"`
}

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 ComponentType

type ComponentType string

func (ComponentType) String

func (t ComponentType) String() string

type DependencyDeletionPolicy

type DependencyDeletionPolicy string
const (
	DeletionPolicyDelete DependencyDeletionPolicy = "Delete"
	DeletionPolicyRetain DependencyDeletionPolicy = "Retain"
)

type DeploymentState

type DeploymentState string

DeploymentState is defined according to https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#deployment-status It's enum of "Progressing", "Complete", "Failed", "Paused"

const (
	DeploymentProgressing DeploymentState = "Progressing"
	DeploymentComplete    DeploymentState = "Complete"
	DeploymentFailed      DeploymentState = "Failed"
	DeploymentPaused      DeploymentState = "Paused"
)

type ImageUpdateMode

type ImageUpdateMode string

ImageUpdateMode is how the milvus components' image should be updated. works only when rolling update is enabled.

const (
	// ImageUpdateModeRollingUpgrade means all components' image will be updated in a rolling upgrade order
	ImageUpdateModeRollingUpgrade ImageUpdateMode = "rollingUpgrade"
	// ImageUpdateModeRollingDowngrade means all components' image will be updated in a rolling downgrade order
	ImageUpdateModeRollingDowngrade ImageUpdateMode = "rollingDowngrade"
	// ImageUpdateModeAll means all components' image will be updated immediately to spec.image
	ImageUpdateModeAll ImageUpdateMode = "all"
	// ImageUpdateModeForce means all components' image will be updated immediately to spec.image
	// and kills the terminated pods to speed up the process
	ImageUpdateModeForce ImageUpdateMode = "force"
)

type InClusterConfig

type InClusterConfig struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	Values Values `json:"values,omitempty"`

	// ChartVersion is the pulsar chart version to be installed
	// For now only pulsar uses this field
	// pulsar-v2 (v2.7.8) & pulsar-v3 (v3.3.0) can be used
	// after v1.2.0, pulsar-v3 is used for new milvus
	// note it's the version of chart, not pulsar
	// pulsar v2.x should use pulsar-v2 chart, & pulsar v3.x should use pulsar-v3 chart
	// +kubebuilder:validation:Optional
	ChartVersion values.ChartVersion `json:"chartVersion,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum:={"Delete", "Retain"}
	// +kubebuilder:default:="Retain"
	DeletionPolicy DependencyDeletionPolicy `json:"deletionPolicy"`

	// +kubebuilder:validation:Optional
	PVCDeletion bool `json:"pvcDeletion,omitempty"`
}

func (*InClusterConfig) DeepCopy

func (in *InClusterConfig) DeepCopy() *InClusterConfig

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

func (*InClusterConfig) DeepCopyInto

func (in *InClusterConfig) DeepCopyInto(out *InClusterConfig)

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

type LabelsImpl

type LabelsImpl struct{}

+kubebuilder:object:generate=false

func Labels

func Labels() *LabelsImpl

func (LabelsImpl) GetComponentRollingId

func (LabelsImpl) GetComponentRollingId(m Milvus, component string) string

func (LabelsImpl) GetCurrentGroupId

func (LabelsImpl) GetCurrentGroupId(m *Milvus, component string) string

func (LabelsImpl) GetLabelGroupID

func (LabelsImpl) GetLabelGroupID(component string, obj client.Object) string

func (LabelsImpl) IsChangingMode

func (LabelsImpl) IsChangingMode(m Milvus, component string) bool

func (LabelsImpl) IsComponentRolling

func (LabelsImpl) IsComponentRolling(m Milvus, component string) bool

IsComponentRolling: if not empty, it means the component has no rolling in progress

func (LabelsImpl) SetChangingMode

func (LabelsImpl) SetChangingMode(m *Milvus, component string, changing bool)

func (LabelsImpl) SetComponentRolling

func (LabelsImpl) SetComponentRolling(m *Milvus, component string, rolling bool)

func (LabelsImpl) SetCurrentGroupID

func (l LabelsImpl) SetCurrentGroupID(m *Milvus, component string, groupId int)

func (LabelsImpl) SetCurrentGroupIDStr

func (LabelsImpl) SetCurrentGroupIDStr(m *Milvus, component string, groupId string)

func (LabelsImpl) SetGroupID

func (l LabelsImpl) SetGroupID(component string, labels map[string]string, groupId int)

func (LabelsImpl) SetGroupIDStr

func (l LabelsImpl) SetGroupIDStr(component string, labels map[string]string, groupIdStr string)

type Milvus

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

	Spec   MilvusSpec   `json:"spec,omitempty"`
	Status MilvusStatus `json:"status,omitempty"`
}

+genclient +genclient:noStatus +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:path=milvuses,singular=milvus,shortName=mi +kubebuilder:storageversion +kubebuilder:printcolumn:name="Mode",type="string",JSONPath=".spec.mode",description="Milvus mode" +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.status",description="Milvus status" +kubebuilder:printcolumn:name="Updated",type="string",JSONPath=".status.conditions[?(@.type==\"MilvusUpdated\")].status",description="Milvus updated" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" Milvus is the Schema for the milvus API

func (*Milvus) DeepCopy

func (in *Milvus) DeepCopy() *Milvus

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

func (*Milvus) DeepCopyInto

func (in *Milvus) DeepCopyInto(out *Milvus)

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

func (*Milvus) DeepCopyObject

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

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

func (*Milvus) Default

func (r *Milvus) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*Milvus) DefaultComponents

func (r *Milvus) DefaultComponents()

func (*Milvus) DefaultConf

func (r *Milvus) DefaultConf()

func (*Milvus) DefaultDependencies

func (r *Milvus) DefaultDependencies()

func (*Milvus) DefaultMeta

func (r *Milvus) DefaultMeta()

func (*Milvus) DefaultMode

func (r *Milvus) DefaultMode()

func (Milvus) GetActiveConfigMap

func (m Milvus) GetActiveConfigMap() string

func (*Milvus) Hub

func (*Milvus) Hub()

Hub marks this type as a conversion hub.

func (*Milvus) IsChangingMode

func (m *Milvus) IsChangingMode() bool

func (*Milvus) IsCurrentImageVersionGreaterThan2_6 added in v1.3.0

func (m *Milvus) IsCurrentImageVersionGreaterThan2_6() bool

func (*Milvus) IsFirstTimeStarting

func (m *Milvus) IsFirstTimeStarting() bool

func (*Milvus) IsPodServiceLabelAdded

func (m *Milvus) IsPodServiceLabelAdded() bool

func (*Milvus) IsRollingUpdateEnabled

func (m *Milvus) IsRollingUpdateEnabled() bool

func (*Milvus) LegacyNeedSyncValues

func (r *Milvus) LegacyNeedSyncValues() bool

func (*Milvus) RemoveStoppedAtAnnotation

func (m *Milvus) RemoveStoppedAtAnnotation()

func (*Milvus) SetActiveConfigMap

func (m *Milvus) SetActiveConfigMap(configmapName string)

func (*Milvus) SetLegacySynced

func (r *Milvus) SetLegacySynced()

func (*Milvus) SetStoppedAtAnnotation

func (m *Milvus) SetStoppedAtAnnotation(t time.Time)

func (*Milvus) SetupWebhookWithManager

func (r *Milvus) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*Milvus) ValidateCreate

func (r *Milvus) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*Milvus) ValidateDelete

func (r *Milvus) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*Milvus) ValidateUpdate

func (r *Milvus) ValidateUpdate(old runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type MilvusBuiltInMQ added in v1.3.0

type MilvusBuiltInMQ struct {
	Persistence Persistence `json:"persistence,omitempty"`
}

MilvusBuiltInMQ (rocksmq or natsmq) configuration

func (*MilvusBuiltInMQ) DeepCopy added in v1.3.0

func (in *MilvusBuiltInMQ) DeepCopy() *MilvusBuiltInMQ

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

func (*MilvusBuiltInMQ) DeepCopyInto added in v1.3.0

func (in *MilvusBuiltInMQ) DeepCopyInto(out *MilvusBuiltInMQ)

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

type MilvusCdc added in v1.3.3

type MilvusCdc struct {
	Component `json:",inline"`
}

Milvus CDC is a component that does the change data capture for milvus

func (*MilvusCdc) DeepCopy added in v1.3.3

func (in *MilvusCdc) DeepCopy() *MilvusCdc

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

func (*MilvusCdc) DeepCopyInto added in v1.3.3

func (in *MilvusCdc) DeepCopyInto(out *MilvusCdc)

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

type MilvusComponents

type MilvusComponents struct {
	ComponentSpec `json:",inline"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum:={"string", "integer"}
	// +kubebuilder:default:="string"
	TargetPortType ServiceTargetPortType `json:"targetPortType,omitempty"`

	// ImageUpdateMode is how the milvus components' image should be updated. works only when rolling update is enabled.
	// forceUpgrade will update all pods' image immediately, and kills the terminated pods to speed up the process
	// +kubebuilder:validation:Enum=rollingUpgrade;rollingDowngrade;all;force
	// +kubebuilder:default:="rollingUpgrade"
	// +kubebuilder:validation:Optional
	ImageUpdateMode ImageUpdateMode `json:"imageUpdateMode,omitempty"`

	// Note: it's still in beta, do not use for production. EnableRollingUpdate whether to enable rolling update for milvus component
	// there is nearly zero downtime for rolling update
	// +kubebuilder:validation:Optional
	EnableRollingUpdate *bool `json:"enableRollingUpdate,omitempty"`

	// +kubebuilder:validation:Optional
	DisableMetric bool `json:"disableMetric"`

	// MetricInterval the interval of PodMonitor metric scraping in string
	// +kubebuilder:validation:Optional
	MetricInterval monitoringv1.Duration `json:"metricInterval"`

	// MetricLabels labels to be assigned to samples before ingestion
	// +kubebuilder:validation:Optional
	MetricLabels map[string]string `json:"metricLabels,omitempty"`

	// ToolImage specify tool image to merge milvus config to original one in image, default uses same image as milvus-operator
	// +kubebuilder:validation:Optional
	ToolImage string `json:"toolImage,omitempty"`

	// DummyImage specify dummy image to use when creating an alternative deploy for rolling update
	// when rollingMode is v2 or v3
	// +kubebuilder:validation:Optional
	DummyImage string `json:"dummyImage,omitempty"`

	// UpdateToolImage when milvus-operator upgraded, whether milvus should restart to update the tool image, too
	// otherwise, the tool image will be updated when milvus deploy's podTemplate changed
	// +kubebuilder:validation:Optional
	UpdateToolImage bool `json:"updateToolImage,omitempty"`

	// UpdateConfigMapOnly when enabled, will not rollout pods. By default pods will be restarted when configmap changed
	// +kubebuilder:validation:Optional
	UpdateConfigMapOnly bool `json:"updateConfigMapOnly,omitempty"`

	// RollingMode is the rolling mode for milvus components, default to 2
	// +kubebuilder:validation:Optional
	RollingMode RollingMode `json:"rollingMode,omitempty"`

	// EnableManualMode when enabled milvus-operator will no longer track the replicas of each deployment
	EnableManualMode bool `json:"enableManualMode,omitempty"`

	// ActiveConfigMap default to the name of the Milvus CR.
	// It's useful when rollingMode set to v3, i.e. every component have 2 deployments.
	// When set, all new rollout deployment will change to use this configmap.
	// Since Milvus now supports dynamic config reload, configmap changing may affect the running pods.
	// Ideally there should be one configmap for the old running deployment, one for upcoming rollout.
	// So that changing for the active configmap won't affect the running pods,
	// note: the active configmap won't switch automatically
	// because we may want to change configmap for existing pods
	// so it's hard to determine when to switch. you need to switch it manually.
	// if EnableManualMode is set to false, changes will be applied to all configmaps
	ActiveConfigMap string `json:"activeConfigMap,omitempty"`

	// RunAsNonRoot whether to run milvus as non-root user
	// this disables some certain features
	// +kubebuilder:validation:Optional
	RunAsNonRoot bool `json:"runAsNonRoot,omitempty"`

	// StreamingMode whether to enable streaming mode by default
	// +kubebuilder:validation:Optional
	// +nullable
	StreamingMode *bool `json:"streamingMode,omitempty"`

	// +kubebuilder:validation:Optional
	Proxy *MilvusProxy `json:"proxy,omitempty"`

	// +kubebuilder:validation:Optional
	MixCoord *MilvusMixCoord `json:"mixCoord,omitempty"`

	// +kubebuilder:validation:Optional
	RootCoord *MilvusRootCoord `json:"rootCoord,omitempty"`

	// +kubebuilder:validation:Optional
	IndexCoord *MilvusIndexCoord `json:"indexCoord,omitempty"`

	// +kubebuilder:validation:Optional
	DataCoord *MilvusDataCoord `json:"dataCoord,omitempty"`

	// +kubebuilder:validation:Optional
	QueryCoord *MilvusQueryCoord `json:"queryCoord,omitempty"`

	// +kubebuilder:validation:Optional
	IndexNode *MilvusIndexNode `json:"indexNode,omitempty"`

	// +kubebuilder:validation:Optional
	DataNode *MilvusDataNode `json:"dataNode,omitempty"`

	// +kubebuilder:validation:Optional
	QueryNode *MilvusQueryNode `json:"queryNode,omitempty"`

	// +kubebuilder:validation:Optional
	StreamingNode *MilvusStreamingNode `json:"streamingNode,omitempty"`

	// +kubebuilder:validation:Optional
	Standalone *MilvusStandalone `json:"standalone,omitempty"`

	// +kubebuilder:validation:Optional
	Cdc *MilvusCdc `json:"cdc,omitempty"`
}

func (*MilvusComponents) DeepCopy

func (in *MilvusComponents) DeepCopy() *MilvusComponents

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

func (*MilvusComponents) DeepCopyInto

func (in *MilvusComponents) DeepCopyInto(out *MilvusComponents)

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

type MilvusCondition

type MilvusCondition struct {
	// Type is the type of the condition.
	Type MilvusConditionType `json:"type"`
	// Status is the status of the condition.
	// Can be True, False, Unknown.
	Status corev1.ConditionStatus `json:"status"`
	// Last time the condition transitioned from one status to another.
	// +optional
	LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"`
	// Unique, one-word, CamelCase reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty"`
	// Human-readable message indicating details about last transition.
	// +optional
	Message string `json:"message,omitempty"`
}

MilvusCondition contains details for the current condition of this milvus/milvus cluster instance

func GetMilvusConditionByType

func GetMilvusConditionByType(status *MilvusStatus, conditionType MilvusConditionType) *MilvusCondition

func (*MilvusCondition) DeepCopy

func (in *MilvusCondition) DeepCopy() *MilvusCondition

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

func (*MilvusCondition) DeepCopyInto

func (in *MilvusCondition) DeepCopyInto(out *MilvusCondition)

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

type MilvusConditionType

type MilvusConditionType string

MilvusConditionType is a valid value for MilvusConditionType.Type.

type MilvusDataCoord

type MilvusDataCoord struct {
	Component `json:",inline"`
}

func (*MilvusDataCoord) DeepCopy

func (in *MilvusDataCoord) DeepCopy() *MilvusDataCoord

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

func (*MilvusDataCoord) DeepCopyInto

func (in *MilvusDataCoord) DeepCopyInto(out *MilvusDataCoord)

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

type MilvusDataNode

type MilvusDataNode struct {
	Component `json:",inline"`
}

func (*MilvusDataNode) DeepCopy

func (in *MilvusDataNode) DeepCopy() *MilvusDataNode

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

func (*MilvusDataNode) DeepCopyInto

func (in *MilvusDataNode) DeepCopyInto(out *MilvusDataNode)

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

type MilvusDependencies

type MilvusDependencies struct {
	// +kubebuilder:validation:Optional
	Etcd MilvusEtcd `json:"etcd"`

	// +kubebuilder:validation:Enum:={"pulsar", "kafka", "woodpecker", "rocksmq", "natsmq", "custom", ""}
	// +kubebuilder:validation:Optional
	// MsgStreamType default to pulsar for cluster, rocksmq for standalone
	MsgStreamType MsgStreamType `json:"msgStreamType,omitempty"`

	// +kubebuilder:validation:Optional
	Pulsar MilvusPulsar `json:"pulsar,omitempty"`

	// +kubebuilder:validation:Optional
	Kafka MilvusKafka `json:"kafka,omitempty"`

	// +kubebuilder:validation:Optional
	WoodPecker MilvusBuiltInMQ `json:"woodpecker,omitempty"`

	// +kubebuilder:validation:Optional
	RocksMQ MilvusBuiltInMQ `json:"rocksmq,omitempty"`

	// +kubebuilder:validation:Optional
	NatsMQ MilvusBuiltInMQ `json:"natsmq,omitempty"`

	// +kubebuilder:validation:Optional
	Storage MilvusStorage `json:"storage"`

	// Tei for Text Embeddings Inference
	// +optional
	Tei MilvusTei `json:"tei,omitempty"`

	// CustomMsgStream user can implements reconciler on this field
	// milvus-operator will not check the mq status
	// +kubebuilder:validation:Optional
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	CustomMsgStream Values `json:"customMsgStream,omitempty"`
}

func (*MilvusDependencies) DeepCopy

func (in *MilvusDependencies) DeepCopy() *MilvusDependencies

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

func (*MilvusDependencies) DeepCopyInto

func (in *MilvusDependencies) DeepCopyInto(out *MilvusDependencies)

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

func (*MilvusDependencies) GetMilvusBuiltInMQ added in v1.3.0

func (m *MilvusDependencies) GetMilvusBuiltInMQ() *MilvusBuiltInMQ

type MilvusEtcd

type MilvusEtcd struct {
	// +kubebuilder:validation:Optional
	Endpoints []string `json:"endpoints"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=false
	External bool `json:"external,omitempty"`

	// +kubebuilder:validation:Optional
	InCluster *InClusterConfig `json:"inCluster,omitempty"`
}

func (*MilvusEtcd) DeepCopy

func (in *MilvusEtcd) DeepCopy() *MilvusEtcd

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

func (*MilvusEtcd) DeepCopyInto

func (in *MilvusEtcd) DeepCopyInto(out *MilvusEtcd)

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

type MilvusHealthStatus

type MilvusHealthStatus string

MilvusHealthStatus is a type for milvus status.

type MilvusIndexCoord

type MilvusIndexCoord struct {
	Component `json:",inline"`
}

func (*MilvusIndexCoord) DeepCopy

func (in *MilvusIndexCoord) DeepCopy() *MilvusIndexCoord

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

func (*MilvusIndexCoord) DeepCopyInto

func (in *MilvusIndexCoord) DeepCopyInto(out *MilvusIndexCoord)

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

type MilvusIndexNode

type MilvusIndexNode struct {
	Component `json:",inline"`
}

func (*MilvusIndexNode) DeepCopy

func (in *MilvusIndexNode) DeepCopy() *MilvusIndexNode

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

func (*MilvusIndexNode) DeepCopyInto

func (in *MilvusIndexNode) DeepCopyInto(out *MilvusIndexNode)

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

type MilvusIngress

type MilvusIngress struct {
	// +kubebuilder:validation:Optional
	Labels map[string]string `json:"labels,omitempty"`

	// +kubebuilder:validation:Optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// +kubebuilder:validation:Optional
	IngressClassName *string `json:"ingressClassName,omitempty"`

	// +kubebuilder:validation:Optional
	Hosts []string `json:"hosts,omitempty"`

	// TLSSecretRefs is a map of TLS secret to hosts
	// +kubebuilder:validation:Optional
	TLSSecretRefs map[string][]string `json:"tlsSecretRefs,omitempty"`
}

MilvusIngress defines the ingress of MilvusCluster TODO: add docs

func (*MilvusIngress) DeepCopy

func (in *MilvusIngress) DeepCopy() *MilvusIngress

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

func (*MilvusIngress) DeepCopyInto

func (in *MilvusIngress) DeepCopyInto(out *MilvusIngress)

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

type MilvusKafka

type MilvusKafka struct {
	// +kubebuilder:validation:Optional
	InCluster *InClusterConfig `json:"inCluster,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=false
	External bool `json:"external,omitempty"`

	// +kubebuilder:validation:Optional
	BrokerList []string `json:"brokerList,omitempty"`
}

MilvusKafka configuration

func (*MilvusKafka) DeepCopy

func (in *MilvusKafka) DeepCopy() *MilvusKafka

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

func (*MilvusKafka) DeepCopyInto

func (in *MilvusKafka) DeepCopyInto(out *MilvusKafka)

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

type MilvusList

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

+kubebuilder:object:root=true MilvusList contains a list of Milvus

func (*MilvusList) DeepCopy

func (in *MilvusList) DeepCopy() *MilvusList

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

func (*MilvusList) DeepCopyInto

func (in *MilvusList) DeepCopyInto(out *MilvusList)

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

func (*MilvusList) DeepCopyObject

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

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

type MilvusMixCoord

type MilvusMixCoord struct {
	Component `json:",inline"`
}

MilvusMixCoord is a mixture of rootCoord, indexCoord, queryCoord & dataCoord

func (*MilvusMixCoord) DeepCopy

func (in *MilvusMixCoord) DeepCopy() *MilvusMixCoord

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

func (*MilvusMixCoord) DeepCopyInto

func (in *MilvusMixCoord) DeepCopyInto(out *MilvusMixCoord)

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

type MilvusMode

type MilvusMode string

MilvusMode defines the mode of Milvus deployment

const (
	MilvusModeCluster    MilvusMode = "cluster"
	MilvusModeStandalone MilvusMode = "standalone"
)

type MilvusOperation

type MilvusOperation string

MilvusOperation is the operation of MilvusUpgrade

const (
	OperationUpgrade  MilvusOperation = "upgrade"
	OperationRollback MilvusOperation = "rollback"
)

MilvusOperation type definitions

type MilvusProxy

type MilvusProxy struct {
	ServiceComponent `json:",inline"`
}

func (*MilvusProxy) DeepCopy

func (in *MilvusProxy) DeepCopy() *MilvusProxy

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

func (*MilvusProxy) DeepCopyInto

func (in *MilvusProxy) DeepCopyInto(out *MilvusProxy)

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

type MilvusPulsar

type MilvusPulsar struct {
	// +kubebuilder:validation:Optional
	InCluster *InClusterConfig `json:"inCluster,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=false
	External bool `json:"external,omitempty"`

	// +kubebuilder:validation:Optional
	Endpoint string `json:"endpoint"`
}

func (*MilvusPulsar) DeepCopy

func (in *MilvusPulsar) DeepCopy() *MilvusPulsar

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

func (*MilvusPulsar) DeepCopyInto

func (in *MilvusPulsar) DeepCopyInto(out *MilvusPulsar)

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

type MilvusQueryCoord

type MilvusQueryCoord struct {
	Component `json:",inline"`
}

func (*MilvusQueryCoord) DeepCopy

func (in *MilvusQueryCoord) DeepCopy() *MilvusQueryCoord

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

func (*MilvusQueryCoord) DeepCopyInto

func (in *MilvusQueryCoord) DeepCopyInto(out *MilvusQueryCoord)

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

type MilvusQueryNode

type MilvusQueryNode struct {
	Component `json:",inline"`
}

func (*MilvusQueryNode) DeepCopy

func (in *MilvusQueryNode) DeepCopy() *MilvusQueryNode

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

func (*MilvusQueryNode) DeepCopyInto

func (in *MilvusQueryNode) DeepCopyInto(out *MilvusQueryNode)

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

type MilvusReplicas

type MilvusReplicas struct {
	//+kubebuilder:validation:Optional
	Proxy int `json:"proxy,omitempty"`
	//+kubebuilder:validation:Optional
	MixCoord int `json:"mixCoord,omitempty"`
	//+kubebuilder:validation:Optional
	RootCoord int `json:"rootCoord,omitempty"`
	//+kubebuilder:validation:Optional
	DataCoord int `json:"dataCoord,omitempty"`
	//+kubebuilder:validation:Optional
	IndexCoord int `json:"indexCoord,omitempty"`
	//+kubebuilder:validation:Optional
	QueryCoord int `json:"queryCoord,omitempty"`
	//+kubebuilder:validation:Optional
	DataNode int `json:"dataNode,omitempty"`
	//+kubebuilder:validation:Optional
	IndexNode int `json:"indexNode,omitempty"`
	//+kubebuilder:validation:Optional
	QueryNode int `json:"queryNode,omitempty"`
	//+kubebuilder:validation:Optional
	StreamingNode int `json:"streamingNode,omitempty"`
	//+kubebuilder:validation:Optional
	Standalone int `json:"standalone,omitempty"`
	//+kubebuilder:validation:Optional
	Cdc int `json:"cdc,omitempty"`
}

MilvusReplicas is the replicas of milvus components

func (*MilvusReplicas) DeepCopy

func (in *MilvusReplicas) DeepCopy() *MilvusReplicas

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

func (*MilvusReplicas) DeepCopyInto

func (in *MilvusReplicas) DeepCopyInto(out *MilvusReplicas)

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

type MilvusRootCoord

type MilvusRootCoord struct {
	Component `json:",inline"`
}

func (*MilvusRootCoord) DeepCopy

func (in *MilvusRootCoord) DeepCopy() *MilvusRootCoord

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

func (*MilvusRootCoord) DeepCopyInto

func (in *MilvusRootCoord) DeepCopyInto(out *MilvusRootCoord)

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

type MilvusSpec

type MilvusSpec struct {

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum:={"cluster", "standalone"}
	// +kubebuilder:default:="standalone"
	Mode MilvusMode `json:"mode,omitempty"`

	// +kubebuilder:validation:Optional
	Com MilvusComponents `json:"components,omitempty"`

	// +kubebuilder:validation:Optional
	Dep MilvusDependencies `json:"dependencies,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:pruning:PreserveUnknownFields
	Conf Values `json:"config,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	HookConf Values `json:"hookConfig,omitempty"`
}

MilvusSpec defines the desired state of Milvus

func (*MilvusSpec) DeepCopy

func (in *MilvusSpec) DeepCopy() *MilvusSpec

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

func (*MilvusSpec) DeepCopyInto

func (in *MilvusSpec) DeepCopyInto(out *MilvusSpec)

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

func (MilvusSpec) GetMilvusVersionByImage

func (ms MilvusSpec) GetMilvusVersionByImage() (semver.Version, error)

GetMilvusVersionByImage returns the version of Milvus by ms.Com.ComponentSpec.Image

func (*MilvusSpec) GetPersistenceConfig

func (ms *MilvusSpec) GetPersistenceConfig() *Persistence

func (MilvusSpec) GetServiceComponent

func (ms MilvusSpec) GetServiceComponent() *ServiceComponent

func (MilvusSpec) IsStopping

func (ms MilvusSpec) IsStopping() bool

IsStopping returns true if the MilvusSpec has replicas serving

func (MilvusSpec) IsVersionGreaterThan2_6 added in v1.3.0

func (ms MilvusSpec) IsVersionGreaterThan2_6() bool

func (*MilvusSpec) UseCdc added in v1.3.3

func (ms *MilvusSpec) UseCdc() bool

func (*MilvusSpec) UseMixCoord

func (ms *MilvusSpec) UseMixCoord() bool

func (*MilvusSpec) UseStreamingNode

func (ms *MilvusSpec) UseStreamingNode() bool

type MilvusStandalone

type MilvusStandalone struct {
	ServiceComponent `json:",inline"`
}

func (*MilvusStandalone) DeepCopy

func (in *MilvusStandalone) DeepCopy() *MilvusStandalone

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

func (*MilvusStandalone) DeepCopyInto

func (in *MilvusStandalone) DeepCopyInto(out *MilvusStandalone)

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

type MilvusStatus

type MilvusStatus struct {

	// Status indicates the overall status of the Milvus
	// Status can be "Pending", "Healthy", "Unhealthy", "Stopped"
	// +kubebuilder:default:="Pending"
	Status MilvusHealthStatus `json:"status"`

	// Conditions of each components
	Conditions []MilvusCondition `json:"conditions,omitempty"`

	// Endpoint of milvus cluster
	Endpoint string `json:"endpoint,omitempty"`

	// IngressStatus of the ingress created by milvus
	IngressStatus networkv1.IngressStatus `json:"ingress,omitempty"`

	// ComponentsDeployStatus contains the map of component's name to the status of each component deployment
	// it is used to check the status of rolling update of each component
	// +optional
	ComponentsDeployStatus map[string]ComponentDeployStatus `json:"componentsDeployStatus,omitempty"`

	// RollingMode is the version of rolling mode the milvus CR is using
	RollingMode RollingMode `json:"rollingModeVersion,omitempty"`

	// ObservedGeneration has same usage as deployment.status.observedGeneration
	// it represents the .metadata.generation that the condition was set based upon.
	// For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
	// with respect to the current state of the instance.
	// +optional
	// +kubebuilder:validation:Minimum=0
	ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,3,opt,name=observedGeneration"`

	// CurrentImage is the current image of the milvus cluster
	// +optional
	CurrentImage string `json:"currentImage,omitempty"`

	// CurrentVersion is the current version of the milvus cluster
	// +optional
	CurrentVersion string `json:"currentVersion,omitempty"`
}

MilvusStatus defines the observed state of Milvus

func (*MilvusStatus) DeepCopy

func (in *MilvusStatus) DeepCopy() *MilvusStatus

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

func (*MilvusStatus) DeepCopyInto

func (in *MilvusStatus) DeepCopyInto(out *MilvusStatus)

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

type MilvusStorage

type MilvusStorage struct {
	// +kubebuilder:default:="MinIO"
	// +kubebuilder:validation:Enum:={"MinIO", "S3", "Azure", ""}
	// +kubebuilder:validation:Optional
	Type string `json:"type"`

	// +kubebuilder:validation:Optional
	SecretRef string `json:"secretRef"`

	// +kubebuilder:validation:Optional
	Endpoint string `json:"endpoint"`

	// +kubebuilder:validation:Optional
	InCluster *InClusterConfig `json:"inCluster,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=false
	External bool `json:"external,omitempty"`

	// SSL configuration for secure storage connections
	// +kubebuilder:validation:Optional
	SSL *MilvusStorageSSLConfig `json:"ssl,omitempty"`
}

func (*MilvusStorage) DeepCopy

func (in *MilvusStorage) DeepCopy() *MilvusStorage

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

func (*MilvusStorage) DeepCopyInto

func (in *MilvusStorage) DeepCopyInto(out *MilvusStorage)

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

type MilvusStorageSSLConfig added in v1.2.7

type MilvusStorageSSLConfig struct {
	// Enable SSL/TLS for storage connections
	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=false
	Enabled bool `json:"enabled,omitempty"`

	// Reference to secret containing CA certificate for SSL verification
	// Expected key: ca.crt
	// +kubebuilder:validation:Optional
	CACertificateRef string `json:"caCertificateRef,omitempty"`

	// Skip SSL certificate verification (not recommended for production)
	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=false
	InsecureSkipVerify bool `json:"insecureSkipVerify,omitempty"`
}

MilvusStorageSSLConfig defines SSL configuration for storage connections

func (*MilvusStorageSSLConfig) DeepCopy added in v1.2.7

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

func (*MilvusStorageSSLConfig) DeepCopyInto added in v1.2.7

func (in *MilvusStorageSSLConfig) DeepCopyInto(out *MilvusStorageSSLConfig)

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

type MilvusStreamingNode

type MilvusStreamingNode struct {
	Component `json:",inline"`
}

func (*MilvusStreamingNode) DeepCopy

func (in *MilvusStreamingNode) DeepCopy() *MilvusStreamingNode

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

func (*MilvusStreamingNode) DeepCopyInto

func (in *MilvusStreamingNode) DeepCopyInto(out *MilvusStreamingNode)

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

type MilvusTei added in v1.3.0

type MilvusTei struct {
	// +kubebuilder:validation:Optional
	InCluster *InClusterConfig `json:"inCluster,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=false
	Enabled bool `json:"enabled,omitempty"`
}

MilvusTei configuration

func (*MilvusTei) DeepCopy added in v1.3.0

func (in *MilvusTei) DeepCopy() *MilvusTei

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

func (*MilvusTei) DeepCopyInto added in v1.3.0

func (in *MilvusTei) DeepCopyInto(out *MilvusTei)

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

type MilvusUpgrade

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

	Spec   MilvusUpgradeSpec   `json:"spec,omitempty"`
	Status MilvusUpgradeStatus `json:"status,omitempty"`
}

MilvusUpgrade is the Schema for the milvusupgrades API

func (*MilvusUpgrade) DeepCopy

func (in *MilvusUpgrade) DeepCopy() *MilvusUpgrade

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

func (*MilvusUpgrade) DeepCopyInto

func (in *MilvusUpgrade) DeepCopyInto(out *MilvusUpgrade)

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

func (*MilvusUpgrade) DeepCopyObject

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

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

func (*MilvusUpgrade) Default

func (r *MilvusUpgrade) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*MilvusUpgrade) SetupWebhookWithManager

func (r *MilvusUpgrade) SetupWebhookWithManager(mgr ctrl.Manager) error

func (MilvusUpgrade) Validate

func (r MilvusUpgrade) Validate() error

func (*MilvusUpgrade) ValidateCreate

func (r *MilvusUpgrade) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*MilvusUpgrade) ValidateDelete

func (r *MilvusUpgrade) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*MilvusUpgrade) ValidateUpdate

func (r *MilvusUpgrade) ValidateUpdate(old runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type MilvusUpgradeList

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

MilvusUpgradeList contains a list of MilvusUpgrade

func (*MilvusUpgradeList) DeepCopy

func (in *MilvusUpgradeList) DeepCopy() *MilvusUpgradeList

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

func (*MilvusUpgradeList) DeepCopyInto

func (in *MilvusUpgradeList) DeepCopyInto(out *MilvusUpgradeList)

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

func (*MilvusUpgradeList) DeepCopyObject

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

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

type MilvusUpgradeSpec

type MilvusUpgradeSpec struct {

	// Operation is the operation of MilvusUpgrade, it can be "upgrade" or "rollback", default as "upgrade"
	// During upgration, you can modify operation to rollback to the previous version.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=upgrade;rollback;
	// +kubebuilder:default=upgrade
	Operation MilvusOperation `json:"operation,omitempty"`

	// Milvus is the reference to Milvus instance to be upgraded
	// +kubebuilder:validation:Required
	Milvus ObjectReference `json:"milvus"`

	// SourceVersion is the version of Milvus to be upgraded from
	// +kubebuilder:validation:Required
	SourceVersion string `json:"sourceVersion"`

	// TargetVersion is the version of Milvus to be upgraded to
	// +kubebuilder:validation:Required
	TargetVersion string `json:"targetVersion"`

	// TargetImage is the image of milvus target version.
	// milvus-operator will use official image if TargetImage is not set.
	// +kubebuilder:validation:Optional
	TargetImage string `json:"targetImage"`

	// ToolImage is the image of milvus upgrade tool.
	// milvus-operator will use official image if ToolImage is not set.
	// +kubebuilder:validation:Optional
	ToolImage string `json:"toolImage,omitempty"`

	// MaxRetry is the max retry times when upgrade failed
	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=3
	MaxRetry int `json:"maxRetry,omitempty"`

	// RollbackIfFailed indicates whether to rollback if upgrade failed.
	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=true
	RollbackIfFailed bool `json:"rollbackIfFailed,omitempty"`

	// BackupPVC is the pvc name for backup data.
	// If not provided, milvus-operator will auto-create one with default storage-class which will be deleted after upgration.
	// +kubebuilder:validation:Optional
	BackupPVC string `json:"backupPVC"`
}

MilvusUpgradeSpec defines the desired state of MilvusUpgrade

func (*MilvusUpgradeSpec) DeepCopy

func (in *MilvusUpgradeSpec) DeepCopy() *MilvusUpgradeSpec

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

func (*MilvusUpgradeSpec) DeepCopyInto

func (in *MilvusUpgradeSpec) DeepCopyInto(out *MilvusUpgradeSpec)

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

type MilvusUpgradeState

type MilvusUpgradeState string
const (
	// State in upgrade process
	UpgradeStatePending            MilvusUpgradeState = ""
	UpgradeStateOldVersionStopping MilvusUpgradeState = "OldVersionStopping"
	UpgradeStateBackupMeta         MilvusUpgradeState = "BackupMeta"
	UpgradeStateUpdatingMeta       MilvusUpgradeState = "UpdatingMeta"
	UpgradeStateNewVersionStarting MilvusUpgradeState = "NewVersionStarting"
	UpgradeStateSucceeded          MilvusUpgradeState = "Succeeded"

	UpgradeStateBakupMetaFailed  MilvusUpgradeState = "BakupMetaFailed"
	UpgradeStateUpdateMetaFailed MilvusUpgradeState = "UpdateMetaFailed"

	// State in rollback process
	UpgradeStateRollbackNewVersionStopping MilvusUpgradeState = "RollbackNewVersionStopping"
	UpgradeStateRollbackRestoringOldMeta   MilvusUpgradeState = "RollbackRestoringOldMeta"
	UpgradeStateRollbackOldVersionStarting MilvusUpgradeState = "RollbackOldVersionStarting"
	UpgradeStateRollbackSucceeded          MilvusUpgradeState = "RollbackedSucceeded"

	UpgradeStateRollbackFailed MilvusUpgradeState = "RollbackFailed"
)

func (MilvusUpgradeState) NeedRequeue

func (s MilvusUpgradeState) NeedRequeue() bool

type MilvusUpgradeStatus

type MilvusUpgradeStatus struct {

	// +optional
	State MilvusUpgradeState `json:"state,omitempty"`

	// Conditions: available condtition types types: CheckingUpgrationState Upgraded Rollbacked
	// +optional
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// SourceImage is the image of milvus source version. recorded for rollback
	// +optional
	SourceImage string `json:"sourceImage,omitempty"`

	// MetaStorageChanged indicates whether meta storage changed during upgrade
	// if true, milvus-operator needs to restore meta storge from bakup before start milvus when rollback
	// +optional
	MetaStorageChanged bool `json:"metaStorageChanged,omitempty"`

	// MetaBackuped indicates whether meta storage has been backuped
	// +optional
	MetaBackuped bool `json:"metaBackuped,omitempty"`

	// IsRollbacking indicates whether milvus is rollbacking
	// +optional
	IsRollbacking bool `json:"isRollbacking,omitempty"`

	// ReplicasBeforeUpgrade are replicas befor
	// +optional
	ReplicasBeforeUpgrade *MilvusReplicas `json:"replicasBeforeUprade,omitempty"`

	// BackupPVC is pvc stores meta backup
	// +optional
	BackupPVC string `json:"backupPVC,omitempty"`

	// RetriedTimes is the times that operator has retried to upgrade milvus
	// +optional
	RetriedTimes int `json:"retriedTimes"`
}

MilvusUpgradeStatus defines the observed state of MilvusUpgrade

func (*MilvusUpgradeStatus) DeepCopy

func (in *MilvusUpgradeStatus) DeepCopy() *MilvusUpgradeStatus

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

func (*MilvusUpgradeStatus) DeepCopyInto

func (in *MilvusUpgradeStatus) DeepCopyInto(out *MilvusUpgradeStatus)

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

type MsgStreamType

type MsgStreamType string
const (
	MsgStreamTypePulsar     MsgStreamType = "pulsar"
	MsgStreamTypeKafka      MsgStreamType = "kafka"
	MsgStreamTypeWoodPecker MsgStreamType = "woodpecker"
	MsgStreamTypeRocksMQ    MsgStreamType = "rocksmq"
	MsgStreamTypeNatsMQ     MsgStreamType = "natsmq"
	MsgStreamTypeCustom     MsgStreamType = "custom"
)

type ObjectReference

type ObjectReference struct {
	// +kubebuilder:validation:Optional
	Namespace string `json:"namespace,omitempty"`
	// +kubebuilder:validation:Required
	Name string `json:"name"`
}

func (*ObjectReference) DeepCopy

func (in *ObjectReference) DeepCopy() *ObjectReference

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

func (*ObjectReference) DeepCopyInto

func (in *ObjectReference) DeepCopyInto(out *ObjectReference)

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

func (ObjectReference) Object

type Persistence

type Persistence struct {
	// If Enabled, will create/use pvc for data persistence
	// +kubebuilder:validation:Optional
	Enabled bool `json:"enabled,omitempty"`
	// +kubebuilder:validation:Optional
	PVCDeletion bool `json:"pvcDeletion,omitempty"`
	// +kubebuilder:validation:Optional
	PersistentVolumeClaim PersistentVolumeClaim `json:"persistentVolumeClaim,omitempty"`
}

Persistence is persistence for milvus

func (*Persistence) DeepCopy

func (in *Persistence) DeepCopy() *Persistence

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

func (*Persistence) DeepCopyInto

func (in *Persistence) DeepCopyInto(out *Persistence)

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

type PersistentVolumeClaim

type PersistentVolumeClaim struct {
	// ExistingClaim if not empty, will use existing pvc, else create a pvc
	// +kubebuilder:validation:Optional
	ExistingClaim string `json:"existingClaim,omitempty"`

	// Map of string keys and values that can be used to organize and categorize
	// (scope and select) objects. May match selectors of replication controllers
	// and services.
	// More info: http://kubernetes.io/docs/user-guide/labels
	// +optional
	Labels map[string]string `json:"labels,omitempty"`

	// Annotations is an unstructured key value map stored with a resource that may be
	// set by external tools to store and retrieve arbitrary metadata. They are not
	// queryable and should be preserved when modifying objects.
	// More info: http://kubernetes.io/docs/user-guide/annotations
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// Spec defines the desired characteristics of a volume requested by a pod author.
	// It's same as corev1.PersistentVolumeClaimSpec, we use a Values here to avoid the CRD become too large
	// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
	// +optional
	// +nullable
	// +kubebuilder:pruning:PreserveUnknownFields
	Spec Values `json:"spec,omitempty"`
}

PersistentVolumeClaim for milvus

func (*PersistentVolumeClaim) DeepCopy

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

func (*PersistentVolumeClaim) DeepCopyInto

func (in *PersistentVolumeClaim) DeepCopyInto(out *PersistentVolumeClaim)

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

func (*PersistentVolumeClaim) GetSpec

type Probes

type Probes struct {
	StartupProbe   *corev1.Probe `json:"startupProbe,omitempty"`
	LivenessProbe  *corev1.Probe `json:"livenessProbe,omitempty"`
	ReadinessProbe *corev1.Probe `json:"readinessProbe,omitempty"`
}

Probes is the actual struct for the Probes field in ComponentSpec

func (*Probes) DeepCopy

func (in *Probes) DeepCopy() *Probes

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

func (*Probes) DeepCopyInto

func (in *Probes) DeepCopyInto(out *Probes)

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

type RollingMode

type RollingMode int

RollingMode we have changed our rolling mode several times, so we use this enum to track the version of rolling mode the milvus CR is using

const (
	// RollingModeNotSet is only used before init
	RollingModeNotSet RollingMode = iota
	// deprecated, shall not be used spec: in this mode all components are in OneDeployMode
	RollingModeV1
	// in this mode only querynode is in TwoDeployMode, other components are in OneDeployMode
	RollingModeV2
	// in this mode all components are in TwoDeployMode
	RollingModeV3
)

RollingMode definitions

type ServiceComponent

type ServiceComponent struct {
	Component `json:",inline"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum={"ClusterIP", "NodePort", "LoadBalancer"}
	// +kubebuilder:default="ClusterIP"
	ServiceType corev1.ServiceType `json:"serviceType,omitempty"`

	// Port of grpc service, if not set or <=0, default to 19530
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	Port int32 `json:"port,omitempty"`

	// +kubebuilder:validation:Optional
	ServiceRestfulPort int32 `json:"serviceRestfulPort,omitempty"`

	// +kubebuilder:validation:Optional
	ServiceLabels map[string]string `json:"serviceLabels,omitempty"`

	// +kubebuilder:validation:Optional
	ServiceAnnotations map[string]string `json:"serviceAnnotations,omitempty"`

	// +kubebuilder:validation:Optional
	Ingress *MilvusIngress `json:"ingress,omitempty"`
}

ServiceComponent is the milvus component that exposes service

func (*ServiceComponent) DeepCopy

func (in *ServiceComponent) DeepCopy() *ServiceComponent

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

func (*ServiceComponent) DeepCopyInto

func (in *ServiceComponent) DeepCopyInto(out *ServiceComponent)

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

type ServiceTargetPortType added in v1.3.0

type ServiceTargetPortType string
const (
	ServiceTargetPortTypeString ServiceTargetPortType = "string"
	ServiceTargetPortTypInteger ServiceTargetPortType = "integer"
)

type Values

type Values struct {
	// Work around for https://github.com/kubernetes-sigs/kubebuilder/issues/528
	Data map[string]interface{} `json:"-"`
}

func (Values) AsObject

func (v Values) AsObject(obj interface{}) error

func (*Values) DeepCopy

func (in *Values) DeepCopy() *Values

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

func (*Values) DeepCopyInto

func (v *Values) DeepCopyInto(out *Values)

DeepCopyInto is an deepcopy function, copying the receiver, writing into out. In must be non-nil. Declaring this here prevents it from being generated in `zz_generated.deepcopy.go`.

This exists here to work around https://github.com/kubernetes/code-generator/issues/50, and partially around https://github.com/kubernetes-sigs/controller-tools/pull/126 and https://github.com/kubernetes-sigs/controller-tools/issues/294.

func (*Values) FromObject

func (v *Values) FromObject(obj interface{}) error

func (Values) MarshalJSON

func (v Values) MarshalJSON() ([]byte, error)

func (Values) MustAsObj

func (v Values) MustAsObj(obj interface{})

func (*Values) UnmarshalJSON

func (v *Values) UnmarshalJSON(data []byte) error

Jump to

Keyboard shortcuts

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