controllers

package
v0.7.17 Latest Latest
Warning

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

Go to latest
Published: Aug 9, 2023 License: Apache-2.0 Imports: 56 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MetricPortName = "metrics"
	MetricPath     = "/metrics"

	RestfulPortName = "restful"

	MixCoordName   = "mixcoord"
	RootCoordName  = "rootcoord"
	DataCoordName  = "datacoord"
	QueryCoordName = "querycoord"
	IndexCoordName = "indexcoord"
	DataNodeName   = "datanode"
	QueryNodeName  = "querynode"
	IndexNodeName  = "indexnode"
	ProxyName      = "proxy"
	StandaloneName = "standalone"
	MilvusName     = "milvus"

	MixCoordFieldName   = "MixCoord"
	RootCoordFieldName  = "RootCoord"
	DataCoordFieldName  = "DataCoord"
	QueryCoordFieldName = "QueryCoord"
	IndexCoordFieldName = "IndexCoord"
	DataNodeFieldName   = "DataNode"
	QueryNodeFieldName  = "QueryNode"
	IndexNodeFieldName  = "IndexNode"
	ProxyFieldName      = "Proxy"
	StandaloneFieldName = "Standalone"

	MetricPort     = 9091
	MultiplePorts  = -1
	RootCoordPort  = 53100
	DataCoordPort  = 13333
	QueryCoordPort = 19531
	IndexCoordPort = 31000
	IndexNodePort  = 21121
	QueryNodePort  = 21123
	DataNodePort   = 21124
	ProxyPort      = 19530
	// TODO: use configurable port?
	MilvusPort     = ProxyPort
	StandalonePort = MilvusPort
)

const name or ports

View Source
const (
	Etcd   = "etcd"
	Minio  = "minio"
	Pulsar = "pulsar"
	Kafka  = "kafka"
)
View Source
const (
	MilvusDataVolumeName         = "milvus-data" // for standalone persistence only
	MilvusConfigVolumeName       = "milvus-config"
	MilvusOriginalConfigPath     = "/milvus/configs/milvus.yaml"
	MilvusUserConfigMountPath    = "/milvus/configs/user.yaml"
	MilvusUserConfigMountSubPath = "user.yaml"
	AccessKey                    = "accesskey"
	SecretKey                    = "secretkey"
	AnnotationCheckSum           = "checksum/config"

	ToolsVolumeName = "tools"
	ToolsMountPath  = "/milvus/tools"
	RunScriptPath   = ToolsMountPath + "/run.sh"
	MergeToolPath   = ToolsMountPath + "/merge"
)
View Source
const (
	MilvusStatusCodePending     = float64(0)
	MilvusStatusCodeHealthy     = float64(1)
	MilvusStatusCodeUnHealthy   = float64(2)
	MilvusStatusCodeDeleting    = float64(3)
	MilvusStautsCodeStopped     = float64(4)
	MilvusStautsCodeMaintaining = float64(5)
)

MilvusStatusCode for milvusStatusCollector

View Source
const (
	MilvusFinalizerName      = "milvus.milvus.io/finalizer"
	PauseReconcileAnnotation = "milvus.io/pause-reconcile"
	MaintainingAnnotation    = "milvus.io/maintaining"
)
View Source
const (
	ConditionCheckingUpgrationState = "CheckingUpgrationState"
	ConditionUpgraded               = "Upgraded"
	ConditionRollbacked             = "Rollbacked"
)
View Source
const (
	LabelUpgrade  = v1beta1.MilvusIO + "/upgrade"
	LabelTaskKind = v1beta1.MilvusIO + "/task-kind"
	BackupMeta    = "backup-meta"
	UpdateMeta    = "update-meta"
	RollbackMeta  = "rollback-meta"
)
View Source
const (
	MessageEtcdReady         = "Etcd endpoints is healthy"
	MessageEtcdNotReady      = "All etcd endpoints are unhealthy"
	MessageStorageReady      = "Storage endpoints is healthy"
	MessageStorageNotReady   = "All Storage endpoints are unhealthy"
	MessageMsgStreamReady    = "MsgStream is ready"
	MessageMsgStreamNotReady = "MsgStream is not ready"
	MessageSecretNotExist    = "Secret not exist"
	MessageKeyNotExist       = "accesskey or secretkey not exist in secret"
	MessageDecodeErr         = "accesskey or secretkey decode error"
	MessageMilvusHealthy     = "All Milvus components are healthy"
	MessageMilvusStopped     = "All Milvus components are stopped"
	MessageMilvusStopping    = "All Milvus components are stopping"
)
View Source
const (
	AppLabel          = "app.kubernetes.io/"
	AppLabelInstance  = AppLabel + "instance"
	AppLabelVersion   = AppLabel + "version"
	AppLabelComponent = AppLabel + "component"
	AppLabelName      = AppLabel + "name"
	AppLabelManagedBy = AppLabel + "managed-by"
	HelmReleaseLabel  = "release"
)
View Source
const (
	CacheSizeEnvVarName = "CACHE_SIZE"
)
View Source
const ManagerName = "milvus-operator"

Variables

define MilvusComponents

View Source
var (
	MilvusConfigMapMode int32 = 420
	ErrRequeue                = pkgerr.New("requeue")
)
View Source
var (
	DefaultOperatorImageInfo = ImageInfo{
		Image:           "milvusdb/milvus-operator:main-latest",
		ImagePullPolicy: corev1.PullAlways,
	}
	ToolImage = ""
)
View Source
var (
	CacheSizeEnvVar = corev1.EnvVar{
		Name: CacheSizeEnvVarName,
		ValueFrom: &corev1.EnvVarSource{
			ResourceFieldRef: &corev1.ResourceFieldSelector{
				Divisor:  resource.MustParse("1Gi"),
				Resource: "limits.memory",
			},
		},
	}
)
View Source
var (
	// DefaultValuesPath is the path to the default values file
	// variable in test, const in runtime
	DefaultValuesPath = "config/assets/charts/values.yaml"
)
View Source
var DeploymentConditionNotSet = appsv1.DeploymentCondition{}
View Source
var MergeAnnotations = MergeLabels
View Source
var PodConditionNotSet = corev1.PodCondition{}

PodConditionNotSet is used when pod condition is not found when calling GetPodConditionByType

View Source
var (
	S3ReadyCondition = v1beta1.MilvusCondition{
		Type:   v1beta1.StorageReady,
		Status: GetConditionStatus(true),
		Reason: v1beta1.ReasonS3Ready,
	}
)
View Source
var (
	SetControllerReference = func(owner, controlled metav1.Object, scheme *kruntime.Scheme) error {
		if err := ctrl.SetControllerReference(owner, controlled, scheme); err != nil {
			if reflect.TypeOf(err) == alreadyOwnedErrorType {
				if err.(*controllerutil.AlreadyOwnedError).Owner.Kind == milvusclusterOwnerKind {
					return nil
				}
			}
			return errors.Wrap(err, "set controller reference")
		}
		return nil
	}
)

Functions

func CheckMilvusStopped added in v0.7.16

func CheckMilvusStopped(ctx context.Context, cli client.Client, mc v1beta1.Milvus) (bool, error)

func DeploymentReady

func DeploymentReady(status appsv1.DeploymentStatus) bool

DeploymentReady deployment is ready when all components are available

func GetCondition added in v0.4.0

func GetCondition(getter func() v1beta1.MilvusCondition, eps []string) v1beta1.MilvusCondition

func GetConditionStatus

func GetConditionStatus(b bool) corev1.ConditionStatus

func GetConfCheckSum added in v0.2.0

func GetConfCheckSum(spec v1beta1.MilvusSpec) string

GetConfCheckSum returns the checksum of the component configuration

func GetContainerIndex

func GetContainerIndex(containers []corev1.Container, name string) int

GetContainerIndex returns index of container @name in @containers, -1 if not found

func GetContainerMessage added in v0.6.8

func GetContainerMessage(status corev1.ContainerStatus) string

func GetDeploymentConditionByType added in v0.6.8

func GetDeploymentConditionByType(conditions []appsv1.DeploymentCondition, Type appsv1.DeploymentConditionType) appsv1.DeploymentCondition

func GetDeploymentFalseCondition added in v0.6.8

func GetDeploymentFalseCondition(deploy appsv1.Deployment) (*appsv1.DeploymentCondition, error)

func GetEndpointsHealth

func GetEndpointsHealth(endpoints []string) map[string]EtcdEndPointHealth

func GetEtcdCondition added in v0.2.3

func GetEtcdCondition(ctx context.Context, endpoints []string) v1beta1.MilvusCondition

func GetKafkaCondition added in v0.5.0

func GetKafkaCondition(ctx context.Context, logger logr.Logger, p v1beta1.MilvusKafka) v1beta1.MilvusCondition

func GetLivenessProbe added in v0.2.0

func GetLivenessProbe() *corev1.Probe

func GetMilvusConditionByType added in v0.7.6

func GetMilvusConditionByType(conditions []v1beta1.MilvusCondition, Type v1beta1.MilvusConditionType) *v1beta1.MilvusCondition

func GetMilvusConfCheckSum added in v0.2.0

func GetMilvusConfCheckSum(spec v1beta1.MilvusSpec) string

GetMilvusConfCheckSum returns the checksum of the component configuration

func GetMilvusEndpoint added in v0.2.3

func GetMilvusEndpoint(ctx context.Context, logger logr.Logger, client client.Client, info MilvusEndpointInfo) string

func GetMilvusUpdatedCondition added in v0.7.6

func GetMilvusUpdatedCondition(m *v1beta1.Milvus) v1beta1.MilvusCondition

func GetMinioBucket added in v0.5.0

func GetMinioBucket(conf map[string]interface{}) string

func GetMinioCondition added in v0.2.3

func GetMinioCondition(ctx context.Context, logger logr.Logger, cli client.Client, info StorageConditionInfo) v1beta1.MilvusCondition

func GetMinioIAMEndpoint added in v0.5.0

func GetMinioIAMEndpoint(conf map[string]interface{}) string

func GetMinioSecure

func GetMinioSecure(conf map[string]interface{}) bool

func GetMinioUseIAM added in v0.5.0

func GetMinioUseIAM(conf map[string]interface{}) bool

func GetNotReadyDependencyConditions added in v0.7.10

func GetNotReadyDependencyConditions(conditions []v1beta1.MilvusCondition) map[v1beta1.MilvusConditionType]*v1beta1.MilvusCondition

func GetPodConditionByType added in v0.6.8

func GetPodConditionByType(conditions []corev1.PodCondition, Type corev1.PodConditionType) corev1.PodCondition

GetPodConditionByType returns the condition with the provided type, return ConditionNotSet if not found

func GetPodFalseCondition added in v0.6.8

func GetPodFalseCondition(pod corev1.Pod) (*corev1.PodCondition, error)

func GetPulsarCondition added in v0.2.3

func GetPulsarCondition(ctx context.Context, logger logr.Logger, p v1beta1.MilvusPulsar) v1beta1.MilvusCondition

func GetReadinessProbe added in v0.2.0

func GetReadinessProbe() *corev1.Probe

func GetServiceInstanceName added in v0.4.0

func GetServiceInstanceName(instance string) string

GetServiceInstanceName returns the name of the component service

func GetStartupProbe added in v0.6.0

func GetStartupProbe() *corev1.Probe

func GetStorageSecretRefEnv

func GetStorageSecretRefEnv(secretRef string) []corev1.EnvVar

func GetVolumeIndex

func GetVolumeIndex(volumes []corev1.Volume, name string) int

GetVolumeIndex returns index of volume @name in @volumes, -1 if not found

func GetVolumeMountIndex

func GetVolumeMountIndex(volumeMounts []corev1.VolumeMount, mountPath string) int

GetVolumeMountIndex returns index of volumeMount with @mountPath in @volumeMounts, -1 if not found

func InitializeMetrics added in v0.5.0

func InitializeMetrics()

InitializeMetrics for controllers

func IsDependencyReady

func IsDependencyReady(conditions []v1beta1.MilvusCondition) bool

func IsEqual

func IsEqual(obj1, obj2 interface{}) bool

IsEqual check two object is equal.

func IsMilvusConditionTrueByType added in v0.7.6

func IsMilvusConditionTrueByType(conditions []v1beta1.MilvusCondition, Type v1beta1.MilvusConditionType) bool

func IsMilvusDeploymentsComplete added in v0.7.5

func IsMilvusDeploymentsComplete(m *v1beta1.Milvus) bool

func IsSetDefaultDone added in v0.2.0

func IsSetDefaultDone(mc *v1beta1.Milvus) bool

func LoopWithInterval added in v0.2.3

func LoopWithInterval(ctx context.Context, loopFunc func() error, interval time.Duration, logger logr.Logger)

func MergeContainerPort

func MergeContainerPort(src, dst []corev1.ContainerPort) []corev1.ContainerPort

func MergeEnvVar

func MergeEnvVar(src, dst []corev1.EnvVar) []corev1.EnvVar

Merge dst env into src

func MergeLabels

func MergeLabels(allLabels ...map[string]string) map[string]string

MergeLabels merges all labels together and returns a new label.

func MergeServicePort

func MergeServicePort(src, dst []corev1.ServicePort) []corev1.ServicePort

func MergeVolumeMount

func MergeVolumeMount(src, dst []corev1.VolumeMount) []corev1.VolumeMount

func MilvusStatusToCode added in v0.7.4

func MilvusStatusToCode(status v1beta1.MilvusHealthStatus, isMaintaining bool) float64

func NamespacedName

func NamespacedName(namespace, name string) types.NamespacedName

func NewAppLabels

func NewAppLabels(instance string) map[string]string

func NewComponentAppLabels

func NewComponentAppLabels(instance, component string) map[string]string

func NewServicePodLabels added in v0.7.16

func NewServicePodLabels(instance string) map[string]string

func PodReady added in v0.6.8

func PodReady(pod corev1.Pod) bool

PodReady returns whether a pod is running and each container has passed it's ready state.

func RemoveConditions added in v0.7.16

func RemoveConditions(status *v1beta1.MilvusStatus, typesToRemove []v1beta1.MilvusConditionType)

func SetupControllers

func SetupControllers(ctx context.Context, mgr manager.Manager, stopReconcilers []string, enableHook bool) error

func UpdateCondition

func UpdateCondition(status *v1beta1.MilvusStatus, c v1beta1.MilvusCondition)

func WarppedReconcileComponentFunc

func WarppedReconcileComponentFunc(
	f func(context.Context, v1beta1.Milvus, MilvusComponent) error,
	ctx context.Context, mc v1beta1.Milvus, c MilvusComponent) func() error

func WrappedFunc added in v0.2.3

func WrappedFunc(f interface{}, args ...interface{}) func() error

Types

type Args added in v0.2.3

type Args = []interface{}

Args array of args for a func

type Chart added in v0.3.0

type Chart = string

type CommonInfo added in v0.3.0

type CommonInfo struct {
	OperatorImageInfo ImageInfo
	// contains filtered or unexported fields
}

CommonInfo should be init when before time reconcile

func (*CommonInfo) InitIfNot added in v0.3.0

func (c *CommonInfo) InitIfNot(cli client.Client)

type ComponentConditionGetter added in v0.7.16

type ComponentConditionGetter interface {
	GetMilvusInstanceCondition(ctx context.Context, cli client.Client, mc v1beta1.Milvus) (v1beta1.MilvusCondition, error)
}

func GetComponentConditionGetter added in v0.7.16

func GetComponentConditionGetter() ComponentConditionGetter

type ComponentConditionGetterImpl added in v0.7.16

type ComponentConditionGetterImpl struct{}

func (ComponentConditionGetterImpl) GetMilvusInstanceCondition added in v0.7.16

func (c ComponentConditionGetterImpl) GetMilvusInstanceCondition(ctx context.Context, cli client.Client, mc v1beta1.Milvus) (v1beta1.MilvusCondition, error)

type ComponentErrorDetail added in v0.6.8

type ComponentErrorDetail struct {
	ComponentName string
	NotObserved   bool
	Deployment    *appsv1.DeploymentCondition
	PodName       string
	Pod           *corev1.PodCondition
	Container     *corev1.ContainerStatus
}

ComponentErrorDetail is one sample of error detail among all error pods

func (ComponentErrorDetail) String added in v0.6.8

func (m ComponentErrorDetail) String() string

type ComponentSpec added in v0.3.2

type ComponentSpec = v1beta1.ComponentSpec

func MergeComponentSpec added in v0.3.2

func MergeComponentSpec(src, dst ComponentSpec) ComponentSpec

MergeComponentSpec merges the src ComponentSpec to dst

type EndpointCheckCache added in v0.4.0

type EndpointCheckCache interface {
	TryStartProbeFor(endpoint []string) bool
	EndProbeFor(endpoint []string)
	Get(endpoint []string) (condition *v1beta1.MilvusCondition, found bool)
	Set(endpoints []string, condition *v1beta1.MilvusCondition)
}

EndpointCheckCache coordinates endpoint check to avoid duplicated check for same endpoint

func NewEndpointCheckCacheImpl added in v0.4.0

func NewEndpointCheckCacheImpl() EndpointCheckCache

type EndpointCheckCacheImpl added in v0.4.0

type EndpointCheckCacheImpl struct {
	// contains filtered or unexported fields
}

EndpointCheckCacheImpl implements EndpointCheckCache

func (EndpointCheckCacheImpl) EndProbeFor added in v0.7.16

func (e EndpointCheckCacheImpl) EndProbeFor(endpoints []string)

func (EndpointCheckCacheImpl) Get added in v0.4.0

func (e EndpointCheckCacheImpl) Get(endpoints []string) (condition *v1beta1.MilvusCondition, isUpToDate bool)

func (EndpointCheckCacheImpl) Set added in v0.4.0

func (e EndpointCheckCacheImpl) Set(endpoints []string, condition *v1beta1.MilvusCondition)

func (EndpointCheckCacheImpl) TryStartProbeFor added in v0.7.16

func (e EndpointCheckCacheImpl) TryStartProbeFor(endpoints []string) bool

TryStartProbeFor use an atomic int32 to lock the endpoint

type EtcdClient added in v0.2.3

type EtcdClient interface {
	Get(ctx context.Context, key string, opts ...clientv3.OpOption) (*clientv3.GetResponse, error)
	AlarmList(ctx context.Context) (*clientv3.AlarmResponse, error)
	Close() error
}

EtcdClient for mock

type EtcdConditionInfo added in v0.2.3

type EtcdConditionInfo struct {
	Endpoints []string
}

type EtcdEndPointHealth

type EtcdEndPointHealth struct {
	Ep     string `json:"endpoint"`
	Health bool   `json:"health"`
	Error  string `json:"error,omitempty"`
}

type Func added in v0.2.3

type Func = interface{}

Func any callable func

type Group

type Group struct {
	// contains filtered or unexported fields
}

func NewGroup

func NewGroup(ctx context.Context) (*Group, context.Context)

NewGroup creates a new group.

func (*Group) Go

func (g *Group) Go(f func() error)

Go to run a func.

func (*Group) Wait

func (g *Group) Wait() error

Wait until all the go functions are returned If errors occurred, they'll be combined with ":" and returned.

type GroupRunner added in v0.2.3

type GroupRunner interface {
	// Run runs a group of funcs by same args, if any func fail, it should return err
	Run(funcs []Func, ctx context.Context, args ...interface{}) error
	// RunWithResult runs a group of funcs by same args, returns results with data & err for each func called
	RunWithResult(funcs []Func, ctx context.Context, args ...interface{}) []Result
	// RunDiffArgs runs a func by groups of args from @argsArray multiple times, if any failed, it should return err
	RunDiffArgs(f MilvusReconcileFunc, ctx context.Context, argsArray []*v1beta1.Milvus) error
}

GroupRunner does a group of funcs in parallel

type HelmReconciler added in v0.2.3

type HelmReconciler interface {
	NewHelmCfg(namespace string) *action.Configuration
	Reconcile(ctx context.Context, request helm.ChartRequest) error
	GetValues(namespace, release string) (map[string]interface{}, error)
}

HelmReconciler reconciles Helm releases

type ImageInfo added in v0.3.0

type ImageInfo struct {
	Image           string
	ImagePullPolicy corev1.PullPolicy
}

ImageInfo for image pulling

type K8sClient added in v0.2.0

type K8sClient interface {
	client.Client
}

K8sClient for mock

type LocalHelmReconciler added in v0.2.3

type LocalHelmReconciler struct {
	// contains filtered or unexported fields
}

LocalHelmReconciler implements HelmReconciler at local

func MustNewLocalHelmReconciler added in v0.3.0

func MustNewLocalHelmReconciler(helmSettings *cli.EnvSettings, logger logr.Logger) *LocalHelmReconciler

func (*LocalHelmReconciler) GetValues added in v0.5.1

func (l *LocalHelmReconciler) GetValues(namespace, release string) (map[string]interface{}, error)

func (LocalHelmReconciler) NewHelmCfg added in v0.2.3

func (l LocalHelmReconciler) NewHelmCfg(namespace string) *action.Configuration

func (LocalHelmReconciler) Reconcile added in v0.2.3

func (l LocalHelmReconciler) Reconcile(ctx context.Context, request helm.ChartRequest) error

ReconcileHelm reconciles Helm releases

type Logger added in v0.2.3

type Logger interface {
	logr.Logger
}

Logger for mock

type MilvusComponent

type MilvusComponent struct {
	Name        string
	FieldName   string
	DefaultPort int32
}

MilvusComponent contains basic info of a milvus cluster component

func GetComponentsBySpec added in v0.5.0

func GetComponentsBySpec(spec v1beta1.MilvusSpec) []MilvusComponent

GetComponentsBySpec returns the components by the spec

func (MilvusComponent) GetComponentPort

func (c MilvusComponent) GetComponentPort(spec v1beta1.MilvusSpec) int32

GetComponentPort returns the port of the component

func (MilvusComponent) GetComponentSpec

func (c MilvusComponent) GetComponentSpec(spec v1beta1.MilvusSpec) v1beta1.ComponentSpec

GetComponentSpec returns the component spec

func (MilvusComponent) GetContainerName

func (c MilvusComponent) GetContainerName() string

GetContainerName returns the name of the component container

func (MilvusComponent) GetContainerPorts

func (c MilvusComponent) GetContainerPorts(spec v1beta1.MilvusSpec) []corev1.ContainerPort

GetContainerPorts returns the ports of the component container

func (MilvusComponent) GetDependencies added in v0.7.6

func (c MilvusComponent) GetDependencies(spec v1beta1.MilvusSpec) []MilvusComponent

func (MilvusComponent) GetDeploymentName added in v0.5.0

func (c MilvusComponent) GetDeploymentName(instance string) string

GetDeploymentName returns the name of the component deployment

func (MilvusComponent) GetDeploymentStrategy

func (c MilvusComponent) GetDeploymentStrategy(configs map[string]interface{}) appsv1.DeploymentStrategy

func (MilvusComponent) GetInitContainers added in v0.7.13

func (c MilvusComponent) GetInitContainers(spec v1beta1.MilvusSpec) []corev1.Container

GetSideCars returns the component init conatiners

func (MilvusComponent) GetMilvusReplicas added in v0.7.0

func (c MilvusComponent) GetMilvusReplicas(status *v1beta1.MilvusReplicas) int

SetStatusReplica sets the replica status of the component, input status should not be nil

func (MilvusComponent) GetName added in v0.5.0

func (c MilvusComponent) GetName() string

String returns the name of the component

func (MilvusComponent) GetPortName added in v0.5.0

func (c MilvusComponent) GetPortName() string

GetPortName returns the port name of the component container

func (MilvusComponent) GetReplicas

func (c MilvusComponent) GetReplicas(spec v1beta1.MilvusSpec) *int32

GetReplicas returns the replicas for the component

func (MilvusComponent) GetRestfulPort added in v0.7.16

func (c MilvusComponent) GetRestfulPort(spec v1beta1.MilvusSpec) int32

GetComponentPort returns the port of the component

func (MilvusComponent) GetRunCommands added in v0.5.0

func (c MilvusComponent) GetRunCommands() []string

String returns the name of the component

func (MilvusComponent) GetServicePorts

func (c MilvusComponent) GetServicePorts(spec v1beta1.MilvusSpec) []corev1.ServicePort

GetServicePorts returns the ports of the component service

func (MilvusComponent) GetServiceType

func (c MilvusComponent) GetServiceType(spec v1beta1.MilvusSpec) corev1.ServiceType

GetServiceType returns the type of the component service

func (MilvusComponent) GetSideCars added in v0.7.13

func (c MilvusComponent) GetSideCars(spec v1beta1.MilvusSpec) []corev1.Container

GetSideCars returns the component sidecar conatiners

func (MilvusComponent) IsCoord

func (c MilvusComponent) IsCoord() bool

IsCoord return if it's a coord by its name

func (MilvusComponent) IsImageUpdated added in v0.7.6

func (c MilvusComponent) IsImageUpdated(m *v1beta1.Milvus) bool

IsImageUpdated returns whether the image of the component is updated

func (MilvusComponent) IsNode

func (c MilvusComponent) IsNode() bool

IsCoord return if it's a node by its name

func (MilvusComponent) IsService added in v0.7.16

func (c MilvusComponent) IsService() bool

func (MilvusComponent) IsStandalone added in v0.5.0

func (c MilvusComponent) IsStandalone() bool

IsCoord return if it's a coord by its name

func (MilvusComponent) SetReplicas added in v0.7.0

func (c MilvusComponent) SetReplicas(spec v1beta1.MilvusSpec, replicas *int32) error

GetReplicas returns the replicas for the component

func (MilvusComponent) SetStatusReplicas added in v0.4.0

func (c MilvusComponent) SetStatusReplicas(status *v1beta1.MilvusReplicas, replicas int)

SetStatusReplica sets the replica status of the component, input status should not be nil

type MilvusEndpointInfo added in v0.2.3

type MilvusEndpointInfo struct {
	Namespace   string
	Name        string
	ServiceType corev1.ServiceType
	Port        int32
}

MilvusEndpointInfo info for calculate the endpoint

type MilvusHealthStatusInfo added in v0.7.5

type MilvusHealthStatusInfo struct {
	LastState  v1beta1.MilvusHealthStatus
	IsStopping bool
	IsHealthy  bool
}

func (MilvusHealthStatusInfo) GetMilvusHealthStatus added in v0.7.5

func (m MilvusHealthStatusInfo) GetMilvusHealthStatus() v1beta1.MilvusHealthStatus

type MilvusPredicate added in v0.5.0

type MilvusPredicate struct {
	predicate.Funcs
}

func (*MilvusPredicate) Create added in v0.5.0

func (*MilvusPredicate) Update added in v0.5.0

type MilvusReconcileFunc added in v0.2.3

type MilvusReconcileFunc func(context.Context, *v1beta1.Milvus) error

type MilvusReconciler added in v0.2.0

type MilvusReconciler struct {
	client.Client
	Scheme *runtime.Scheme
	// contains filtered or unexported fields
}

MilvusReconciler reconciles a Milvus object

func (*MilvusReconciler) Finalize added in v0.2.0

func (r *MilvusReconciler) Finalize(ctx context.Context, mc v1beta1.Milvus) error

func (*MilvusReconciler) Reconcile added in v0.2.0

func (r *MilvusReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error)

Reconcile is part of the main kubernetes reconciliation loop which aims to move the current state of the cluster closer to the desired state.

For more details, check Reconcile and its Result here: - https://pkg.go.dev/sigs.k8s.io/controller-runtime@v0.8.3/pkg/reconcile

func (*MilvusReconciler) ReconcileAll added in v0.2.0

func (r *MilvusReconciler) ReconcileAll(ctx context.Context, mc v1beta1.Milvus) error

func (*MilvusReconciler) ReconcileComponentDeployment added in v0.5.0

func (r *MilvusReconciler) ReconcileComponentDeployment(
	ctx context.Context, mc v1beta1.Milvus, component MilvusComponent,
) error

func (*MilvusReconciler) ReconcileComponentService added in v0.5.0

func (r *MilvusReconciler) ReconcileComponentService(
	ctx context.Context, mc v1beta1.Milvus, component MilvusComponent,
) error

func (*MilvusReconciler) ReconcileConfigMaps added in v0.2.0

func (r *MilvusReconciler) ReconcileConfigMaps(ctx context.Context, mc v1beta1.Milvus) error

func (*MilvusReconciler) ReconcileDeployments added in v0.2.0

func (r *MilvusReconciler) ReconcileDeployments(ctx context.Context, mc v1beta1.Milvus) error

func (*MilvusReconciler) ReconcileEtcd added in v0.2.0

func (r *MilvusReconciler) ReconcileEtcd(ctx context.Context, mc v1beta1.Milvus) error

func (*MilvusReconciler) ReconcileIngress added in v0.4.0

func (r *MilvusReconciler) ReconcileIngress(ctx context.Context, mc v1beta1.Milvus) error

func (*MilvusReconciler) ReconcileKafka added in v0.5.0

func (r *MilvusReconciler) ReconcileKafka(ctx context.Context, mc v1beta1.Milvus) error

func (*MilvusReconciler) ReconcileLegacyValues added in v0.5.1

func (r *MilvusReconciler) ReconcileLegacyValues(ctx context.Context, old, milvus *v1beta1.Milvus) error

func (*MilvusReconciler) ReconcileMilvus added in v0.2.0

func (r *MilvusReconciler) ReconcileMilvus(ctx context.Context, mc v1beta1.Milvus) error

func (*MilvusReconciler) ReconcileMinio added in v0.2.0

func (r *MilvusReconciler) ReconcileMinio(ctx context.Context, mc v1beta1.Milvus) error

func (*MilvusReconciler) ReconcileMsgStream added in v0.5.0

func (r *MilvusReconciler) ReconcileMsgStream(ctx context.Context, mc v1beta1.Milvus) error

func (*MilvusReconciler) ReconcilePVCs added in v0.4.0

func (r *MilvusReconciler) ReconcilePVCs(ctx context.Context, mil v1beta1.Milvus) error

func (*MilvusReconciler) ReconcilePodMonitor added in v0.2.0

func (r *MilvusReconciler) ReconcilePodMonitor(ctx context.Context, mc v1beta1.Milvus) error

func (*MilvusReconciler) ReconcilePulsar added in v0.5.0

func (r *MilvusReconciler) ReconcilePulsar(ctx context.Context, mc v1beta1.Milvus) error

func (*MilvusReconciler) ReconcileServices added in v0.2.0

func (r *MilvusReconciler) ReconcileServices(ctx context.Context, mc v1beta1.Milvus) error

func (*MilvusReconciler) RemoveOldStandlone added in v0.5.0

func (r *MilvusReconciler) RemoveOldStandlone(ctx context.Context, mc v1beta1.Milvus) error

func (*MilvusReconciler) SetDefaultStatus added in v0.2.0

func (r *MilvusReconciler) SetDefaultStatus(ctx context.Context, mc *v1beta1.Milvus) error

SetDefaultStatus update status if default not set; return true if updated, return false if not, return err if update failed

func (*MilvusReconciler) SetupWithManager added in v0.2.0

func (r *MilvusReconciler) SetupWithManager(mgr ctrl.Manager) error

SetupWithManager sets up the controller with the Manager.

type MilvusStatusSyncer added in v0.2.0

type MilvusStatusSyncer struct {
	client.Client

	sync.Once
	// contains filtered or unexported fields
}

func NewMilvusStatusSyncer added in v0.2.0

func NewMilvusStatusSyncer(ctx context.Context, client client.Client, logger logr.Logger) *MilvusStatusSyncer

func (*MilvusStatusSyncer) GetEtcdCondition added in v0.2.0

func (r *MilvusStatusSyncer) GetEtcdCondition(ctx context.Context, mc v1beta1.Milvus) (v1beta1.MilvusCondition, error)

func (*MilvusStatusSyncer) GetMilvusEndpoint added in v0.2.0

func (r *MilvusStatusSyncer) GetMilvusEndpoint(ctx context.Context, mc v1beta1.Milvus) string

func (*MilvusStatusSyncer) GetMinioCondition added in v0.2.0

func (r *MilvusStatusSyncer) GetMinioCondition(
	ctx context.Context, mc v1beta1.Milvus) (v1beta1.MilvusCondition, error)

TODO: rename as GetStorageCondition

func (*MilvusStatusSyncer) GetMsgStreamCondition added in v0.5.0

func (r *MilvusStatusSyncer) GetMsgStreamCondition(
	ctx context.Context, mc v1beta1.Milvus) (v1beta1.MilvusCondition, error)

func (*MilvusStatusSyncer) RunIfNot added in v0.2.0

func (r *MilvusStatusSyncer) RunIfNot()

func (*MilvusStatusSyncer) UpdateIngressStatus added in v0.4.0

func (r *MilvusStatusSyncer) UpdateIngressStatus(ctx context.Context, mc *v1beta1.Milvus) error

func (*MilvusStatusSyncer) UpdateStatusForNewGeneration added in v0.5.2

func (r *MilvusStatusSyncer) UpdateStatusForNewGeneration(ctx context.Context, mc *v1beta1.Milvus) error

func (*MilvusStatusSyncer) UpdateStatusRoutine added in v0.5.2

func (r *MilvusStatusSyncer) UpdateStatusRoutine(ctx context.Context, mc *v1beta1.Milvus) error

type MilvusStatusSyncerInterface added in v0.5.2

type MilvusStatusSyncerInterface interface {
	RunIfNot()
	UpdateStatusForNewGeneration(ctx context.Context, mc *v1beta1.Milvus) error
}

MilvusStatusSyncerInterface abstracts MilvusStatusSyncer

type MilvusUpgradeReconciler added in v0.7.0

type MilvusUpgradeReconciler struct {
	client.Client
	Scheme *runtime.Scheme
	// contains filtered or unexported fields
}

MilvusUpgradeReconciler reconciles a MilvusUpgrade object

func NewMilvusUpgradeReconciler added in v0.7.0

func NewMilvusUpgradeReconciler(client client.Client, scheme *runtime.Scheme) *MilvusUpgradeReconciler

NewMilvusUpgradeReconciler returns a new MilvusUpgradeReconciler

func (*MilvusUpgradeReconciler) BackupMeta added in v0.7.0

func (*MilvusUpgradeReconciler) DetermineCurrentState added in v0.7.0

func (r *MilvusUpgradeReconciler) DetermineCurrentState(ctx context.Context, upgrade *v1beta1.MilvusUpgrade) (nextState v1beta1.MilvusUpgradeState)

func (*MilvusUpgradeReconciler) HandleBakupMetaFailed added in v0.7.0

func (r *MilvusUpgradeReconciler) HandleBakupMetaFailed(ctx context.Context, upgrade *v1beta1.MilvusUpgrade, milvus *v1beta1.Milvus) (v1beta1.MilvusUpgradeState, error)

func (*MilvusUpgradeReconciler) HandleUpgradeFailed added in v0.7.0

func (r *MilvusUpgradeReconciler) HandleUpgradeFailed(ctx context.Context, upgrade *v1beta1.MilvusUpgrade, milvus *v1beta1.Milvus) (v1beta1.MilvusUpgradeState, error)

func (*MilvusUpgradeReconciler) OldVersionStopping added in v0.7.0

func (r *MilvusUpgradeReconciler) OldVersionStopping(ctx context.Context, upgrade *v1beta1.MilvusUpgrade, milvus *v1beta1.Milvus) (v1beta1.MilvusUpgradeState, error)

func (*MilvusUpgradeReconciler) Reconcile added in v0.7.0

func (r *MilvusUpgradeReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error)

Reconcile is part of the main kubernetes reconciliation loop which aims to move the current state of the cluster closer to the desired state. TODO(user): Modify the Reconcile function to compare the state specified by the MilvusUpgrade object against the actual cluster state, and then perform operations to make the cluster state reflect the state specified by the user.

For more details, check Reconcile and its Result here: - https://pkg.go.dev/sigs.k8s.io/controller-runtime@v0.10.0/pkg/reconcile

func (*MilvusUpgradeReconciler) RollbackNewVersionStopping added in v0.7.0

func (r *MilvusUpgradeReconciler) RollbackNewVersionStopping(ctx context.Context, upgrade *v1beta1.MilvusUpgrade, milvus *v1beta1.Milvus) (v1beta1.MilvusUpgradeState, error)

func (*MilvusUpgradeReconciler) RollbackOldVersionStarting added in v0.7.0

func (r *MilvusUpgradeReconciler) RollbackOldVersionStarting(ctx context.Context, upgrade *v1beta1.MilvusUpgrade, milvus *v1beta1.Milvus) (v1beta1.MilvusUpgradeState, error)

func (*MilvusUpgradeReconciler) RollbackRestoringOldMeta added in v0.7.0

func (r *MilvusUpgradeReconciler) RollbackRestoringOldMeta(ctx context.Context, upgrade *v1beta1.MilvusUpgrade, milvus *v1beta1.Milvus) (v1beta1.MilvusUpgradeState, error)

func (*MilvusUpgradeReconciler) RunStateMachine added in v0.7.0

func (r *MilvusUpgradeReconciler) RunStateMachine(ctx context.Context, upgrade *v1beta1.MilvusUpgrade) error

func (*MilvusUpgradeReconciler) SetupWithManager added in v0.7.0

func (r *MilvusUpgradeReconciler) SetupWithManager(mgr ctrl.Manager) error

SetupWithManager sets up the controller with the Manager.

func (*MilvusUpgradeReconciler) StartingMilvusNewVersion added in v0.7.0

func (r *MilvusUpgradeReconciler) StartingMilvusNewVersion(ctx context.Context, upgrade *v1beta1.MilvusUpgrade, milvus *v1beta1.Milvus) (v1beta1.MilvusUpgradeState, error)

func (*MilvusUpgradeReconciler) UpdatingMeta added in v0.7.0

type MilvusUpgradeReconcilerCommonFunc added in v0.7.0

type MilvusUpgradeReconcilerCommonFunc func(ctx context.Context, upgrade *v1beta1.MilvusUpgrade, milvus *v1beta1.Milvus) (nextState v1beta1.MilvusUpgradeState, err error)

type NewEtcdClientFunc added in v0.2.3

type NewEtcdClientFunc func(cfg clientv3.Config) (EtcdClient, error)

type ParallelGroupRunner added in v0.2.3

type ParallelGroupRunner struct {
}

ParallelGroupRunner is a group runner that run funcs in parallel

func (ParallelGroupRunner) Run added in v0.2.3

func (ParallelGroupRunner) Run(funcs []Func, ctx context.Context, args ...interface{}) error

Run a group of funcs by same args in parallel, if any func fail, it should return err

func (ParallelGroupRunner) RunDiffArgs added in v0.2.3

func (ParallelGroupRunner) RunDiffArgs(f MilvusReconcileFunc, ctx context.Context, argsArray []*v1beta1.Milvus) error

RunDiffArgs runs a func by groups of args from @argsArray multiple times, if any failed, it should return err

func (ParallelGroupRunner) RunWithResult added in v0.2.3

func (ParallelGroupRunner) RunWithResult(funcs []Func, ctx context.Context, args ...interface{}) []Result

RunWithResult runs a group of funcs by same args, returns results with data & err for each func called

type PulsarClient added in v0.2.3

type PulsarClient interface {
	pulsar.Client
}

PulsarClient for mock

type PulsarReader added in v0.2.3

type PulsarReader interface {
	pulsar.Reader
}

PulsarReader for mock

type Result added in v0.2.3

type Result struct {
	Data interface{}
	Err  error
}

Result contains data & err for a func's return

type StorageConditionInfo added in v0.2.3

type StorageConditionInfo struct {
	Namespace   string
	Bucket      string
	Storage     v1beta1.MilvusStorage
	UseSSL      bool
	UseIAM      bool
	IAMEndpoint string
}

StorageConditionInfo is info for acquiring storage condition

type Values added in v0.3.0

type Values = map[string]interface{}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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