member

package
v1.6.0 Latest Latest
Warning

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

Go to latest
Published: May 24, 2024 License: Apache-2.0 Imports: 68 Imported by: 2

Documentation

Index

Constants

View Source
const (
	// LastAppliedConfigAnnotation is annotation key of last applied configuration
	LastAppliedConfigAnnotation = "pingcap.com/last-applied-configuration"
	// ImagePullBackOff is the pod state of image pull failed
	ImagePullBackOff = "ImagePullBackOff"
	// ErrImagePull is the pod state of image pull failed
	ErrImagePull = "ErrImagePull"
)
View Source
const (

	// DefaultStorageSize is the default pvc request storage size for dm
	DefaultStorageSize = "10Gi"
)
View Source
const (
	FailedSetStoreLabels = "FailedSetStoreLabels"
)

TODO: move this to a centralized place Since the "Unhealthy" is a very universal event reason string, which could apply to all the TiDB/DM cluster components, we should make a global event module, and put event related constants there.

View Source
const (
	PdTlsCertPath = "/var/lib/pd-tls"
)

Variables

This section is empty.

Functions

func BuildProbeCommand added in v1.4.0

func BuildProbeCommand(tc *v1alpha1.TidbCluster, componentType string) (command []string)

func CreateOrUpdateService added in v1.2.0

func CreateOrUpdateService(serviceLister corelisters.ServiceLister, serviceControl controller.ServiceControlInterface, newSvc *corev1.Service, obj runtime.Object) error

func DMMasterPodName added in v1.2.0

func DMMasterPodName(dcName string, ordinal int32) string

func GetLastAppliedConfig

func GetLastAppliedConfig(set *apps.StatefulSet) (*apps.StatefulSetSpec, *corev1.PodSpec, error)

GetLastAppliedConfig get last applied config info from Statefulset's annotation and the podTemplate's annotation

func GetPVCSelectorForPod added in v1.1.13

func GetPVCSelectorForPod(controller runtime.Object, memberType v1alpha1.MemberType, ordinal int32) (labels.Selector, error)

GetPVCSelectorForPod compose a PVC selector from a tc/dm-cluster member pod at ordinal position

func GetTiFlashConfig added in v1.3.0

func GetTiFlashConfig(tc *v1alpha1.TidbCluster) *v1alpha1.TiFlashConfigWraper

func IsNodeRODiskFoundConditionTrue added in v1.4.0

func IsNodeRODiskFoundConditionTrue(status corev1.NodeStatus) bool

IsNodeRODiskFoundConditionTrue returns true if a pod has RODiskFound condition set to True; false otherwise.

func IsNodeReadyConditionFalseOrUnknown added in v1.4.0

func IsNodeReadyConditionFalseOrUnknown(status corev1.NodeStatus) bool

IsNodeReadyConditionFalseOrUnknown returns true if a pod is not ready; false otherwise.

func MapContainers added in v1.1.0

func MapContainers(podSpec *corev1.PodSpec) map[string]corev1.Container

MapContainers index containers of Pod by container name in favor of looking up

func MapInitContainers added in v1.2.5

func MapInitContainers(podSpec *corev1.PodSpec) map[string]corev1.Container

MapInitContainers index init containers of Pod by container name in favor of looking up

func MarshalTOML added in v1.1.0

func MarshalTOML(v interface{}) ([]byte, error)

MarshalTOML is a template function that try to marshal a go value to toml

func MemberPodName added in v1.1.0

func MemberPodName(controllerName, controllerKind string, ordinal int32, memberType v1alpha1.MemberType) (string, error)

func MergePatchContainers added in v1.4.0

func MergePatchContainers(base, patches []corev1.Container) ([]corev1.Container, error)

MergePatchContainers adds patches to base using a strategic merge patch and iterating by container name, failing on the first error

func NeedForceUpgrade added in v1.1.0

func NeedForceUpgrade(ann map[string]string) bool

NeedForceUpgrade check if force upgrade is necessary

func NewMasterMemberManager added in v1.2.0

func NewMasterMemberManager(deps *controller.Dependencies, masterScaler Scaler, masterUpgrader DMUpgrader, masterFailover DMFailover, spder suspender.Suspender) manager.DMManager

NewMasterMemberManager returns a *masterMemberManager

func NewPDMSMemberManager added in v1.6.0

func NewPDMSMemberManager(dependencies *controller.Dependencies, pdMSScaler Scaler, pdMSUpgrader Upgrader, spder suspender.Suspender, pvm volumes.PodVolumeModifier) manager.Manager

NewPDMSMemberManager returns a *pdMSMemberManager

func NewPDMSScaler added in v1.6.0

func NewPDMSScaler(deps *controller.Dependencies) *pdMSScaler

NewPDMSScaler returns a PD Micro Service Scaler.

func NewPDMemberManager

func NewPDMemberManager(dependencies *controller.Dependencies, pdScaler Scaler, pdUpgrader Upgrader, pdFailover Failover, spder suspender.Suspender, pvm volumes.PodVolumeModifier) manager.Manager

NewPDMemberManager returns a *pdMemberManager

func NewPumpMemberManager added in v1.1.0

func NewPumpMemberManager(deps *controller.Dependencies, scaler Scaler, spder suspender.Suspender, pvm volumes.PodVolumeModifier) manager.Manager

NewPumpMemberManager returns a controller to reconcile pump clusters

func NewPumpScaler added in v1.2.0

func NewPumpScaler(deps *controller.Dependencies) *pumpScaler

NewPumpScaler returns a pump Scaler

func NewTiCDCMemberManager added in v1.1.0

func NewTiCDCMemberManager(deps *controller.Dependencies, scaler Scaler, ticdcUpgrader Upgrader, spder suspender.Suspender, pvm volumes.PodVolumeModifier) manager.Manager

NewTiCDCMemberManager returns a *ticdcMemberManager

func NewTiCDCScaler added in v1.2.0

func NewTiCDCScaler(deps *controller.Dependencies) *ticdcScaler

NewTiCDCScaler returns a TiCDC Scaler.

func NewTiDBMemberManager

func NewTiDBMemberManager(deps *controller.Dependencies, scaler Scaler, tidbUpgrader Upgrader, tidbFailover Failover, spder suspender.Suspender, pvm volumes.PodVolumeModifier) manager.Manager

NewTiDBMemberManager returns a *tidbMemberManager

func NewTiDBScaler added in v1.1.13

func NewTiDBScaler(deps *controller.Dependencies) *tidbScaler

NewTiDBScaler returns a TiDB Scaler.

func NewTiFlashMemberManager added in v1.1.0

func NewTiFlashMemberManager(deps *controller.Dependencies, tiflashFailover Failover, tiflashScaler Scaler, tiflashUpgrader Upgrader, spder suspender.Suspender, pvm volumes.PodVolumeModifier) manager.Manager

NewTiFlashMemberManager returns a *tiflashMemberManager

func NewTiKVMemberManager

func NewTiKVMemberManager(deps *controller.Dependencies, failover Failover, scaler Scaler, upgrader TiKVUpgrader, spder suspender.Suspender, pvm volumes.PodVolumeModifier) manager.Manager

NewTiKVMemberManager returns a *tikvMemberManager

func NewTiKVScaler

func NewTiKVScaler(deps *controller.Dependencies) *tikvScaler

NewTiKVScaler returns a tikv Scaler

func NewTiProxyMemberManager added in v1.4.0

func NewTiProxyMemberManager(deps *controller.Dependencies, scaler Scaler, upgrader Upgrader, spder suspender.Suspender) manager.Manager

NewTiProxyMemberManager returns a *tiproxyMemberManager

func NewWorkerMemberManager added in v1.2.0

func NewWorkerMemberManager(deps *controller.Dependencies, scaler Scaler, failover DMFailover, spder suspender.Suspender) manager.DMManager

NewWorkerMemberManager returns a *ticdcMemberManager

func PDMSPodName added in v1.6.0

func PDMSPodName(tcName string, ordinal int32, component string) string

func PDMSSupportMicroServices added in v1.6.0

func PDMSSupportMicroServices(version string) (bool, error)

PDMSSupportMicroServices returns true if the given version of PDMS supports microservices.

func PdName added in v1.2.0

func PdName(tcName string, ordinal int32, namespace string, clusterDomain string, acrossK8s bool) string

PdName should match the start arg `--name` of pd-server See the start script of PD in pkg/manager/member/startscript/v1.pdStartScriptTpl and pkg/manager/member/startscript/v2.RenderPDStartScript

func PdPodName added in v1.1.0

func PdPodName(tcName string, ordinal int32) string

func SetServiceWhenPreferIPv6 added in v1.5.0

func SetServiceWhenPreferIPv6(svc *corev1.Service)

func TiFlashPodName added in v1.1.11

func TiFlashPodName(tcName string, ordinal int32) string

func TiKVLessThanV50 added in v1.3.0

func TiKVLessThanV50(image string) bool

TiKVLessThanV50 checks whether the `image` is less than v5.0.0

func TiKVStoreFromStatus added in v1.5.0

func TiKVStoreFromStatus(tc *v1alpha1.TidbCluster, podName string) (v1alpha1.TiKVStore, error)

func TiKVStoreIDFromStatus added in v1.3.0

func TiKVStoreIDFromStatus(tc *v1alpha1.TidbCluster, podName string) (uint64, error)

func TikvPodName added in v1.1.0

func TikvPodName(tcName string, ordinal int32) string

func UnmarshalTOML added in v1.1.0

func UnmarshalTOML(b []byte, obj interface{}) error

Types

type DMFailover added in v1.2.0

type DMFailover interface {
	Failover(*v1alpha1.DMCluster) error
	Recover(*v1alpha1.DMCluster)
	RemoveUndesiredFailures(*v1alpha1.DMCluster)
}

DMFailover implements the logic for dm-master/dm-worker's failover and recovery.

func NewFakeMasterFailover added in v1.2.0

func NewFakeMasterFailover() DMFailover

NewFakeMasterFailover returns a fake Failover

func NewFakeWorkerFailover added in v1.2.0

func NewFakeWorkerFailover() DMFailover

NewFakeMasterFailover returns a fake Failover

func NewMasterFailover added in v1.2.0

func NewMasterFailover(deps *controller.Dependencies) DMFailover

NewMasterFailover returns a master Failover

func NewWorkerFailover added in v1.2.0

func NewWorkerFailover(deps *controller.Dependencies) DMFailover

NewWorkerFailover returns a worker Failover

type DMUpgrader added in v1.2.0

type DMUpgrader interface {
	Upgrade(*v1alpha1.DMCluster, *apps.StatefulSet, *apps.StatefulSet) error
}

DMUpgrader implements the logic for upgrading the dm cluster.

func NewFakeMasterUpgrader added in v1.2.0

func NewFakeMasterUpgrader() DMUpgrader

NewFakeMasterUpgrader returns a fakeMasterUpgrader

func NewMasterUpgrader added in v1.2.0

func NewMasterUpgrader(deps *controller.Dependencies) DMUpgrader

NewMasterUpgrader returns a masterUpgrader

type Failover added in v0.2.0

type Failover interface {
	Failover(*v1alpha1.TidbCluster) error
	Recover(*v1alpha1.TidbCluster)
	RemoveUndesiredFailures(*v1alpha1.TidbCluster)
}

Failover implements the logic for pd/tikv/tidb's failover and recovery.

func NewFakePDFailover added in v0.2.0

func NewFakePDFailover() Failover

NewFakePDFailover returns a fake Failover

func NewFakeTiDBFailover added in v0.2.0

func NewFakeTiDBFailover() Failover

NewFakeTiDBFailover returns a fake Failover

func NewFakeTiFlashFailover added in v1.1.0

func NewFakeTiFlashFailover() Failover

NewFakeTiFlashFailover returns a fake Failover

func NewFakeTiKVFailover added in v0.2.0

func NewFakeTiKVFailover() Failover

NewFakeTiKVFailover returns a fake Failover

func NewPDFailover added in v0.2.0

func NewPDFailover(deps *controller.Dependencies) Failover

NewPDFailover returns a pd Failover

func NewTiDBFailover added in v0.2.0

func NewTiDBFailover(deps *controller.Dependencies) Failover

NewTiDBFailover returns a tidbFailover instance

func NewTiFlashFailover added in v1.1.0

func NewTiFlashFailover(deps *controller.Dependencies) Failover

NewTiFlashFailover returns a tiflash Failover

func NewTiKVFailover added in v0.2.0

func NewTiKVFailover(deps *controller.Dependencies) Failover

NewTiKVFailover returns a tikv Failover

type FailureObjectAccess added in v1.4.0

type FailureObjectAccess interface {
	GetMemberType() v1alpha1.MemberType
	GetFailureObjects(tc *v1alpha1.TidbCluster) map[string]v1alpha1.EmptyStruct
	IsFailing(tc *v1alpha1.TidbCluster, objectId string) bool
	GetPodName(tc *v1alpha1.TidbCluster, objectId string) string
	IsHostDownForFailedPod(tc *v1alpha1.TidbCluster) bool
	IsHostDown(tc *v1alpha1.TidbCluster, objectId string) bool
	SetHostDown(tc *v1alpha1.TidbCluster, objectId string, hostDown bool)
	GetCreatedAt(tc *v1alpha1.TidbCluster, objectId string) metav1.Time
	GetLastTransitionTime(tc *v1alpha1.TidbCluster, objectId string) metav1.Time
	GetPVCUIDSet(tc *v1alpha1.TidbCluster, objectId string) map[types.UID]v1alpha1.EmptyStruct
}

FailureObjectAccess contains the common methods to access the properties of a failure object. Failure object denotes the instance running on a pod of a component like a FailureStore or FailureMember. Thus, In case of PD, the objectId is PD name (which is the key of FailureMember) In case of TiKV/TiFlash, the objectId is storeID (which is the key of FailureStore)

type FakeDiscoveryManager added in v1.1.0

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

func NewFakeDiscoveryManger added in v1.1.0

func NewFakeDiscoveryManger() *FakeDiscoveryManager

func (*FakeDiscoveryManager) Reconcile added in v1.1.0

func (m *FakeDiscoveryManager) Reconcile(_ client.Object) error

func (*FakeDiscoveryManager) SetReconcileError added in v1.1.0

func (m *FakeDiscoveryManager) SetReconcileError(err error)

type FakeMasterMemberManager added in v1.2.0

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

TODO: seems not used

func NewFakeMasterMemberManager added in v1.2.0

func NewFakeMasterMemberManager() *FakeMasterMemberManager

func (*FakeMasterMemberManager) SetSyncError added in v1.2.0

func (m *FakeMasterMemberManager) SetSyncError(err error)

func (*FakeMasterMemberManager) SyncDM added in v1.2.0

type FakeOrphanPodsCleaner added in v1.1.0

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

func NewFakeOrphanPodsCleaner added in v1.0.0

func NewFakeOrphanPodsCleaner() *FakeOrphanPodsCleaner

NewFakeOrphanPodsCleaner returns a fake orphan pods cleaner

func (*FakeOrphanPodsCleaner) Clean added in v1.1.0

func (*FakeOrphanPodsCleaner) SetnOrphanPodCleanerError added in v1.1.0

func (c *FakeOrphanPodsCleaner) SetnOrphanPodCleanerError(err error)

type FakePDMSMemberManager added in v1.6.0

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

func NewFakePDMSMemberManager added in v1.6.0

func NewFakePDMSMemberManager() *FakePDMSMemberManager

func (*FakePDMSMemberManager) SetSyncError added in v1.6.0

func (m *FakePDMSMemberManager) SetSyncError(err error)

func (*FakePDMSMemberManager) Sync added in v1.6.0

type FakePDMemberManager added in v0.4.0

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

TODO: seems not used

func NewFakePDMemberManager added in v0.4.0

func NewFakePDMemberManager() *FakePDMemberManager

func (*FakePDMemberManager) SetSyncError added in v0.4.0

func (m *FakePDMemberManager) SetSyncError(err error)

func (*FakePDMemberManager) Sync added in v0.4.0

type FakePVCCleaner added in v1.1.0

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

func NewFakePVCCleaner added in v1.0.1

func NewFakePVCCleaner() *FakePVCCleaner

NewFakePVCCleaner returns a fake PVC cleaner

func (*FakePVCCleaner) Clean added in v1.1.0

func (c *FakePVCCleaner) Clean(_ metav1.Object) (map[string]string, error)

func (*FakePVCCleaner) SetPVCCleanerError added in v1.1.0

func (c *FakePVCCleaner) SetPVCCleanerError(err error)

type FakePumpMemberManager added in v1.1.0

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

func NewFakePumpMemberManager added in v1.1.0

func NewFakePumpMemberManager() *FakePumpMemberManager

func (*FakePumpMemberManager) SetSyncError added in v1.1.0

func (m *FakePumpMemberManager) SetSyncError(err error)

func (*FakePumpMemberManager) Sync added in v1.1.0

type FakeTiCDCMemberManager added in v1.1.0

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

func NewFakeTiCDCMemberManager added in v1.1.0

func NewFakeTiCDCMemberManager() *FakeTiCDCMemberManager

func (*FakeTiCDCMemberManager) SetSyncError added in v1.1.0

func (m *FakeTiCDCMemberManager) SetSyncError(err error)

func (*FakeTiCDCMemberManager) Sync added in v1.1.0

type FakeTiDBInitManager added in v1.1.0

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

FakeTiDBInitManager FakeTiDBInitManager

func NewFakeTiDBInitManager added in v1.1.0

func NewFakeTiDBInitManager() *FakeTiDBInitManager

NewFakeTiDBInitManager NewFakeTiDBInitManager

func (*FakeTiDBInitManager) SetSyncError added in v1.1.0

func (ftm *FakeTiDBInitManager) SetSyncError(err error)

SetSyncError SetSyncError

func (*FakeTiDBInitManager) Sync added in v1.1.0

Sync Sync

type FakeTiDBMemberManager added in v0.4.0

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

func NewFakeTiDBMemberManager added in v0.4.0

func NewFakeTiDBMemberManager() *FakeTiDBMemberManager

func (*FakeTiDBMemberManager) SetSyncError added in v0.4.0

func (m *FakeTiDBMemberManager) SetSyncError(err error)

func (*FakeTiDBMemberManager) Sync added in v0.4.0

type FakeTiFlashMemberManager added in v1.1.0

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

func NewFakeTiFlashMemberManager added in v1.1.0

func NewFakeTiFlashMemberManager() *FakeTiFlashMemberManager

func (*FakeTiFlashMemberManager) SetSyncError added in v1.1.0

func (m *FakeTiFlashMemberManager) SetSyncError(err error)

func (*FakeTiFlashMemberManager) Sync added in v1.1.0

type FakeTiKVMemberManager added in v0.4.0

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

func NewFakeTiKVMemberManager added in v0.4.0

func NewFakeTiKVMemberManager() *FakeTiKVMemberManager

func (*FakeTiKVMemberManager) SetSyncError added in v0.4.0

func (m *FakeTiKVMemberManager) SetSyncError(err error)

func (*FakeTiKVMemberManager) Sync added in v0.4.0

type FakeTiProxyMemberManager added in v1.4.0

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

func NewFakeTiProxyMemberManager added in v1.4.0

func NewFakeTiProxyMemberManager() *FakeTiProxyMemberManager

func (*FakeTiProxyMemberManager) SetSyncError added in v1.4.0

func (m *FakeTiProxyMemberManager) SetSyncError(err error)

func (*FakeTiProxyMemberManager) Sync added in v1.4.0

type FakeTidbClusterStatusManager added in v1.1.0

type FakeTidbClusterStatusManager struct {
}

func NewFakeTidbClusterStatusManager added in v1.1.0

func NewFakeTidbClusterStatusManager() *FakeTidbClusterStatusManager

func (*FakeTidbClusterStatusManager) Sync added in v1.1.0

type FakeWorkerMemberManager added in v1.2.0

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

func NewFakeWorkerMemberManager added in v1.2.0

func NewFakeWorkerMemberManager() *FakeWorkerMemberManager

func (*FakeWorkerMemberManager) SetSyncError added in v1.2.0

func (m *FakeWorkerMemberManager) SetSyncError(err error)

func (*FakeWorkerMemberManager) SyncDM added in v1.2.0

type InitManager added in v1.1.0

type InitManager interface {
	// Sync	implements the logic for syncing TidbInitializer.
	Sync(*v1alpha1.TidbInitializer) error
}

InitManager implements the logic for syncing TidbInitializer.

func NewTiDBInitManager added in v1.1.0

func NewTiDBInitManager(deps *controller.Dependencies) InitManager

NewTiDBInitManager return tidbInitManager

type NodeAvailabilityStatus added in v1.4.0

type NodeAvailabilityStatus struct {
	NodeUnavailable   bool
	ReadOnlyDiskFound bool
}

NodeAvailabilityStatus has the availability status information of a k8s node

type OrphanPodsCleaner added in v1.0.0

type OrphanPodsCleaner interface {
	Clean(metav1.Object) (map[string]string, error)
}

OrphanPodsCleaner implements the logic for cleaning the orphan pods(has no pvc)

In scaling out and failover, we will try to delete the old PVC to prevent it from being used by the new pod. However, the PVC might not be deleted immediately in the apiserver because of finalizers (e.g. kubernetes.io/pvc-protection) and the statefulset controller may not have received PVC delete event when it tries to create the new replica and the new pod will be pending forever because no PVC to use. We need to clean these orphan pods and let the statefulset controller to create PVC(s) for them.

https://github.com/kubernetes/kubernetes/blob/84fe3db5cf58bf0fc8ff792b885465ceaf70a435/pkg/controller/statefulset/stateful_pod_control.go#L175-L199

func NewOrphanPodsCleaner added in v1.0.0

func NewOrphanPodsCleaner(deps *controller.Dependencies) OrphanPodsCleaner

NewOrphanPodsCleaner returns a OrphanPodsCleaner

type PVCCleanerInterface added in v1.0.1

type PVCCleanerInterface interface {
	Clean(metav1.Object) (map[string]string, error)
}

PVCCleaner implements the logic for cleaning the pvc related resource

func NewRealPVCCleaner added in v1.0.1

func NewRealPVCCleaner(deps *controller.Dependencies) PVCCleanerInterface

NewRealPVCCleaner returns a realPVCCleaner

type PVCResizerInterface added in v1.1.4

type PVCResizerInterface interface {
	Sync(*v1alpha1.TidbCluster) error
	SyncDM(*v1alpha1.DMCluster) error
}

PVCResizerInterface represents the interface of PVC Resizer. It patches the PVCs owned by tidb cluster according to the latest storage request specified by the user. See https://github.com/pingcap/tidb-operator/issues/3004 for more details.

Implementation:

for every unmatched PVC (desiredCapacity != actualCapacity)

if storageClass does not support VolumeExpansion, skip and continue
if not patched, patch

We patch all PVCs of one Pod at the same time. For many cloud storage plugins (e.g. AWS-EBS, GCE-PD), they support online file system expansion in latest Kubernetes (1.15+).

Limitations:

  • Note that the current statfulset implementation does not allow `volumeClaimTemplates` to be changed, so new PVCs created by statefulset controller will use the old storage request.
  • This is best effort, before statefulset volume resize feature (e.g. https://github.com/kubernetes/enhancements/pull/1848) to be implemented.
  • If the feature `ExpandInUsePersistentVolumes` is not enabled or the volume plugin does not support, the pod referencing the volume must be deleted and recreated after the `FileSystemResizePending` condition becomes true.
  • Shrinking volumes is not supported.

func NewFakePVCResizer added in v1.1.4

func NewFakePVCResizer() PVCResizerInterface

func NewPVCResizer added in v1.1.4

func NewPVCResizer(deps *controller.Dependencies) PVCResizerInterface

type Scaler

type Scaler interface {
	// Scale scales the cluster. It does nothing if scaling is not needed.
	Scale(meta metav1.Object, actual *apps.StatefulSet, desired *apps.StatefulSet) error
	// ScaleOut scales out the cluster
	ScaleOut(meta metav1.Object, actual *apps.StatefulSet, desired *apps.StatefulSet) error
	// ScaleIn scales in the cluster
	ScaleIn(meta metav1.Object, actual *apps.StatefulSet, desired *apps.StatefulSet) error
}

Scaler implements the logic for scaling out or scaling in the cluster.

func NewFakeMasterScaler added in v1.2.0

func NewFakeMasterScaler() Scaler

NewFakeMasterScaler returns a fake Scaler

func NewFakePDMSScaler added in v1.6.0

func NewFakePDMSScaler() Scaler

NewFakePDMSScaler returns a fake Scaler

func NewFakePDScaler

func NewFakePDScaler() Scaler

NewFakePDScaler returns a fake Scaler

func NewFakePumpScaler added in v1.2.0

func NewFakePumpScaler() Scaler

NewFakePumpScaler returns a fake pump Scaler

func NewFakeTiFlashScaler added in v1.1.0

func NewFakeTiFlashScaler() Scaler

NewFakeTiFlashScaler returns a fake tiflash Scaler

func NewFakeTiKVScaler

func NewFakeTiKVScaler() Scaler

NewFakeTiKVScaler returns a fake tikv Scaler

func NewFakeWorkerScaler added in v1.2.0

func NewFakeWorkerScaler() Scaler

NewFakeWorkerScaler returns a fake Scaler

func NewMasterScaler added in v1.2.0

func NewMasterScaler(deps *controller.Dependencies) Scaler

NewMasterScaler returns a DMScaler

func NewPDScaler

func NewPDScaler(deps *controller.Dependencies) Scaler

NewPDScaler returns a Scaler

func NewTiFlashScaler added in v1.1.0

func NewTiFlashScaler(deps *controller.Dependencies) Scaler

NewTiFlashScaler returns a tiflash Scaler

func NewTiProxyScaler added in v1.4.0

func NewTiProxyScaler(deps *controller.Dependencies) Scaler

NewTiProxyScaler returns a Scaler

func NewWorkerScaler added in v1.2.0

func NewWorkerScaler(deps *controller.Dependencies) Scaler

NewWorkerScaler returns a DMScaler

type StoreAccess added in v1.4.0

type StoreAccess interface {
	GetFailoverPeriod(cliConfig *controller.CLIConfig) time.Duration
	GetMemberType() v1alpha1.MemberType
	GetMaxFailoverCount(tc *v1alpha1.TidbCluster) *int32
	GetStores(tc *v1alpha1.TidbCluster) map[string]v1alpha1.TiKVStore
	GetStore(tc *v1alpha1.TidbCluster, storeID string) (v1alpha1.TiKVStore, bool)
	SetFailoverUIDIfAbsent(tc *v1alpha1.TidbCluster)
	CreateFailureStoresIfAbsent(tc *v1alpha1.TidbCluster)
	GetFailureStores(tc *v1alpha1.TidbCluster) map[string]v1alpha1.TiKVFailureStore
	GetFailureStore(tc *v1alpha1.TidbCluster, storeID string) (v1alpha1.TiKVFailureStore, bool)
	SetFailureStore(tc *v1alpha1.TidbCluster, storeID string, failureStore v1alpha1.TiKVFailureStore)
	ClearFailStatus(tc *v1alpha1.TidbCluster)
	GetStsDesiredOrdinals(tc *v1alpha1.TidbCluster, excludeFailover bool) sets.Int32
	IsHostDownForFailurePod(tc *v1alpha1.TidbCluster) bool
}

StoreAccess contains the common set of functions to access the properties of TiKV and TiFlash types

type SvcConfig

type SvcConfig struct {
	Name       string
	Port       int32
	SvcLabel   func(label.Label) label.Label
	MemberName func(clusterName string) string
	Headless   bool
}

SvcConfig corresponds to a K8s service

type TiKVUpgrader added in v1.2.0

type TiKVUpgrader interface {
	Upgrade(meta metav1.Object, oldSet *apps.StatefulSet, newSet *apps.StatefulSet) error
}

func NewFakeTiKVUpgrader added in v0.2.0

func NewFakeTiKVUpgrader() TiKVUpgrader

NewFakeTiKVUpgrader returns a fake tikv upgrader

func NewTiKVUpgrader added in v0.2.0

func NewTiKVUpgrader(deps *controller.Dependencies, pvm volumes.PodVolumeModifier) TiKVUpgrader

NewTiKVUpgrader returns a tikv Upgrader

type TidbClusterStatusManager added in v1.1.0

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

func NewTidbClusterStatusManager added in v1.1.0

func NewTidbClusterStatusManager(deps *controller.Dependencies) *TidbClusterStatusManager

func (*TidbClusterStatusManager) Sync added in v1.1.0

type TidbDiscoveryManager added in v1.1.0

type TidbDiscoveryManager interface {
	Reconcile(obj client.Object) error
}

func NewTidbDiscoveryManager added in v1.1.0

func NewTidbDiscoveryManager(deps *controller.Dependencies) TidbDiscoveryManager

type Upgrader added in v0.2.0

type Upgrader interface {
	// Upgrade upgrade the cluster
	Upgrade(*v1alpha1.TidbCluster, *apps.StatefulSet, *apps.StatefulSet) error
}

Upgrader implements the logic for upgrading the tidb cluster.

func NewFakePDMSUpgrader added in v1.6.0

func NewFakePDMSUpgrader() Upgrader

NewFakePDMSUpgrader returns a fakePDUpgrader

func NewFakePDUpgrader added in v0.2.0

func NewFakePDUpgrader() Upgrader

NewFakePDUpgrader returns a fakePDUpgrader

func NewFakeTiDBUpgrader added in v0.2.0

func NewFakeTiDBUpgrader() Upgrader

NewFakeTiDBUpgrader returns a fake tidb upgrader

func NewFakeTiFlashUpgrader added in v1.1.0

func NewFakeTiFlashUpgrader() Upgrader

NewFakeTiFlashUpgrader returns a fake tiflash upgrader

func NewFakeTiProxyUpgrader added in v1.6.0

func NewFakeTiProxyUpgrader() Upgrader

NewFakeTiProxyUpgrader returns a fake tiproxy upgrader

func NewPDMSUpgrader added in v1.6.0

func NewPDMSUpgrader(deps *controller.Dependencies) Upgrader

NewPDMSUpgrader returns a PD Micro Service Upgrader

func NewPDUpgrader added in v0.2.0

func NewPDUpgrader(deps *controller.Dependencies) Upgrader

NewPDUpgrader returns a pdUpgrader

func NewTiCDCUpgrader added in v1.1.12

func NewTiCDCUpgrader(deps *controller.Dependencies) Upgrader

NewTiCDCUpgrader returns a ticdc Upgrader

func NewTiDBUpgrader added in v0.2.0

func NewTiDBUpgrader(deps *controller.Dependencies) Upgrader

NewTiDBUpgrader returns a tidb Upgrader

func NewTiFlashUpgrader added in v1.1.0

func NewTiFlashUpgrader(deps *controller.Dependencies) Upgrader

NewTiFlashUpgrader returns a tiflash Upgrader

func NewTiProxyUpgrader added in v1.4.0

func NewTiProxyUpgrader(deps *controller.Dependencies) Upgrader

NewTiProxyUpgrader returns a tiproxyUpgrader

Directories

Path Synopsis
v1
v2

Jump to

Keyboard shortcuts

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