v1alpha1

package
v2.0.0-...-cde7f8a Latest Latest
Warning

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

Go to latest
Published: Feb 19, 2025 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

+groupName=core.pingcap.com +k8s:openapi-gen=true +k8s:deepcopy-gen=package

+kubebuilder:rbac:groups=coordination.k8s.io,resources=leases,verbs=get;list;watch;create;update;patch;delete

+kubebuilder:rbac:groups=core,resources=pods,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=core,resources=persistentvolumeclaims,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=core,resources=persistentvolumes,verbs=get;list;watch +kubebuilder:rbac:groups=core,resources=services,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=core,resources=configmaps,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=core,resources=events,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=core,resources=secrets,verbs=get;list;watch +kubebuilder:rbac:groups=core,resources=nodes,verbs=get;list;watch

+kubebuilder:rbac:groups=apps,resources=controllerrevisions,verbs=get;list;watch;create;update;patch;delete

+kubebuilder:rbac:groups=storage.k8s.io,resources=storageclasses,verbs=get;list;watch +kubebuilder:rbac:groups=storage.k8s.io,resources=volumeattributesclasses,verbs=get;list;watch

+kubebuilder:rbac:groups=core.pingcap.com,resources=clusters,verbs=get;list;watch;update +kubebuilder:rbac:groups=core.pingcap.com,resources=clusters/status,verbs=get;update;patch

+kubebuilder:rbac:groups=core.pingcap.com,resources=pdgroups,verbs=get;list;watch;delete;update +kubebuilder:rbac:groups=core.pingcap.com,resources=pdgroups/status,verbs=get;list;watch;update +kubebuilder:rbac:groups=core.pingcap.com,resources=pds,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=core.pingcap.com,resources=pds/status,verbs=get;list;watch;update;patch

+kubebuilder:rbac:groups=core.pingcap.com,resources=tikvgroups,verbs=get;list;watch;delete;update +kubebuilder:rbac:groups=core.pingcap.com,resources=tikvgroups/status,verbs=get;list;watch;update +kubebuilder:rbac:groups=core.pingcap.com,resources=tikvs,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=core.pingcap.com,resources=tikvs/status,verbs=get;list;watch;update;patch

+kubebuilder:rbac:groups=core.pingcap.com,resources=tiflashgroups,verbs=get;list;watch;delete;update +kubebuilder:rbac:groups=core.pingcap.com,resources=tiflashgroups/status,verbs=get;list;watch;update +kubebuilder:rbac:groups=core.pingcap.com,resources=tiflashes,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=core.pingcap.com,resources=tiflashes/status,verbs=get;list;watch;update;patch

+kubebuilder:rbac:groups=core.pingcap.com,resources=tidbgroups,verbs=get;list;watch;delete;update +kubebuilder:rbac:groups=core.pingcap.com,resources=tidbgroups/status,verbs=get;list;watch;update +kubebuilder:rbac:groups=core.pingcap.com,resources=tidbs,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=core.pingcap.com,resources=tidbs/status,verbs=get;list;watch;update;patch

+kubebuilder:rbac:groups=core.pingcap.com,resources=ticdcgroups,verbs=get;list;watch;delete;update +kubebuilder:rbac:groups=core.pingcap.com,resources=ticdcgroups/status,verbs=get;list;watch;update +kubebuilder:rbac:groups=core.pingcap.com,resources=ticdcs,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=core.pingcap.com,resources=ticdcs/status,verbs=get;list;watch;update;patch

+kubebuilder:rbac:resources="",verbs=get,urls=/metrics

Package v1alpha1 is the v1alpha1 version of core tidb operator api

Index

Constants

View Source
const (
	// ClusterCondAvailable means the cluster is available, i.e. the cluster can be used.
	// But it does not mean all members in the cluster are healthy.
	ClusterCondAvailable = "Available"

	// ClusterCondProgressing means the cluster is progressing, i.e. the cluster is being created, updated, scaled, etc.
	ClusterCondProgressing = "Progressing"
	ClusterCreationReason  = "ClusterCreation"
	ClusterDeletionReason  = "ClusterDeletion"
	ClusterAvailableReason = "ClusterAvailable"

	ClusterCondSuspended = "Suspended"
	ClusterSuspendReason = "ClusterSuspend"
)
View Source
const (
	// CondSuspended is a condition to display whether the group or instance is suspended
	CondSuspended     = "Suspended"
	ReasonSuspended   = "Suspended"
	ReasonSuspending  = "Suspending"
	ReasonUnsuspended = "Unsuspended"
)
View Source
const (
	// Ready means all managed resources are ready.
	// NOTE: It does not mean all managed resources are up to date.
	CondReady = "Ready"

	// Synced means all specs of managed resources are as expected and
	// nothing need to do in controller but only status updation.
	CondSynced = "Synced"
)
View Source
const (
	// KeyPrefix defines key prefix of well known labels and annotations
	KeyPrefix = "pingcap.com/"

	// LabelKeyManagedBy means resources are managed by tidb operator
	LabelKeyManagedBy         = KeyPrefix + "managed-by"
	LabelValManagedByOperator = "tidb-operator"

	// LabelKeyCluster means which tidb cluster the resource belongs to
	LabelKeyCluster = KeyPrefix + "cluster"
	// LabelKeyComponent means the component of the resource
	LabelKeyComponent = KeyPrefix + "component"
	// LabelKeyGroup means the component group of the resource
	LabelKeyGroup = KeyPrefix + "group"
	// LabelKeyInstance means the instance of the resource
	LabelKeyInstance = KeyPrefix + "instance"

	// LabelKeyPodSpecHash is the hash of the pod spec.
	LabelKeyPodSpecHash = KeyPrefix + "pod-spec-hash"

	// LabelKeyInstanceRevisionHash is the revision hash of the instance
	LabelKeyInstanceRevisionHash = KeyPrefix + "instance-revision-hash"

	// LabelKeyConfigHash is the hash of the user-specified config (i.e., `.Spec.Config`),
	// which will be used to determine whether the config has changed.
	// Since the tidb operator will overlay the user-specified config with some operator-managed fields,
	// if we hash the overlayed config, with the evolving TiDB Operator, the hash may change,
	// potentially triggering an unexpected rolling update.
	// Instead, we choose to hash the user-specified config,
	// and the worst case is that users expect a reboot but it doesn't happen.
	LabelKeyConfigHash = KeyPrefix + "config-hash"

	// LabelKeyVolumeName is used to distinguish different volumes, e.g. data volumes, log volumes, etc.
	// This label will be added to the PVCs created by the tidb operator.
	LabelKeyVolumeName = KeyPrefix + "volume-name"
)

TODO(liubo02): move to meta

View Source
const (
	// Label value for meta.LabelKeyComponent
	LabelValComponentPD      = "pd"
	LabelValComponentTiDB    = "tidb"
	LabelValComponentTiKV    = "tikv"
	LabelValComponentTiFlash = "tiflash"
	LabelValComponentTiCDC   = "ticdc"

	// LabelKeyClusterID is the unique identifier of the cluster.
	// This label is used for backward compatibility with TiDB Operator v1, so it has a different prefix.
	LabelKeyClusterID = "tidb.pingcap.com/cluster-id"
	// LabelKeyMemberID is the unique identifier of a PD member.
	// This label is used for backward compatibility with TiDB Operator v1, so it has a different prefix.
	LabelKeyMemberID = "tidb.pingcap.com/member-id"
	// LabelKeyStoreID is the unique identifier of a TiKV or TiFlash store.
	// This label is used for backward compatibility with TiDB Operator v1, so it has a different prefix.
	LabelKeyStoreID = "tidb.pingcap.com/store-id"
)
View Source
const (
	// AnnoKeyPrefix defines key prefix of well known annotations
	AnnoKeyPrefix = "core.pingcap.com/"

	// all bool anno will use this val as default
	AnnoValTrue = "true"

	// means the instance is marked as deleted and will be deleted later
	AnnoKeyDeferDelete = AnnoKeyPrefix + "defer-delete"
)
View Source
const (
	// VolumeNameConfig defines volume name for main config file
	VolumeNameConfig = meta.NamePrefix + "config"
	// VolumeNamePrestopChecker defines volume name for pre stop checker cmd
	VolumeNamePrestopChecker = meta.NamePrefix + "prestop-checker"
	// VolumeNameBootstrapSQL is the volume name for bootstrap sql
	VolumeNameBootstrapSQL = meta.NamePrefix + "tidb-bootstrap-sql"
	// VolumeNameTiDBAuthToken is the volume name for tidb auth token
	VolumeNameTiDBAuthToken = meta.NamePrefix + "tidb-auth-token"
	// VolumeNameTiDBSlowLogDefault defines default volume name of tidb slowlog
	// Users may claim another volume for tidb slowlog and the default one will be removed
	VolumeNameTiDBSlowLogDefault = meta.NamePrefix + "slowlog"

	// TLS
	//
	// VolumeNameClusterTLS defines volume name for the TLS secret used between components in the TiDB cluster
	VolumeNameClusterTLS = meta.NamePrefix + "tls"
	// VolumeNameClusterClientTLS defines volume name for any one-time job accessing the TiDB cluster components
	VolumeNameClusterClientTLS = meta.NamePrefix + "cluster-client-tls"
	// VolumeNameMySQLTLS is the volume name for the TLS secret used by TLS communication between TiDB server and MySQL client.
	VolumeNameMySQLTLS = meta.NamePrefix + "tidb-sql-tls"
)

All volume names

View Source
const (
	// Main component containers of the tidb cluster
	// These names are well known so the name prefix is not added.
	ContainerNamePD      = "pd"
	ContainerNameTiKV    = "tikv"
	ContainerNameTiDB    = "tidb"
	ContainerNameTiFlash = "tiflash"
	ContainerNameTiCDC   = "ticdc"

	// An init container to copy pre stop checker cmd to main container
	ContainerNamePrestopChecker = meta.NamePrefix + "prestop-checker"

	// TiDB
	//
	// Container to redirect slowlog
	ContainerNameTiDBSlowLog = meta.NamePrefix + "slowlog"

	// TiFlash
	//
	// Container to redirect server log
	ContainerNameTiFlashServerLog = meta.NamePrefix + "serverlog"
	// Container to redirect error log
	ContainerNameTiFlashErrorLog = meta.NamePrefix + "errorlog"
)

All container names

View Source
const (
	// config dir path
	DirPathConfigPD      = "/etc/pd"
	DirPathConfigTiKV    = "/etc/tikv"
	DirPathConfigTiDB    = "/etc/tidb"
	DirPathConfigTiFlash = "/etc/tiflash"
	DirPathConfigTiCDC   = "/etc/ticdc"

	// DirPathPrestop defines dir path of pre stop checker cmd
	DirPathPrestop = "/prestop"
	// Dir path of bootstrap sql
	DirPathBootstrapSQL = "/etc/tidb-bootstrap"
	// Dir path of tidb auth token
	DirPathTiDBAuthToken = "/var/lib/tidb-auth-token" // #nosec
	// Default dir path of tidb slowlog
	DirPathTiDBSlowLogDefault = "/var/log/tidb"

	// TLS
	//
	// Dir path of cluster tls file
	DirPathClusterTLSPD      = "/var/lib/pd-tls"
	DirPathClusterTLSTiKV    = "/var/lib/tikv-tls"
	DirPathClusterTLSTiDB    = "/var/lib/tidb-tls"
	DirPathTiDBClientTLS     = "/var/lib/tidb-client-tls" // FIXME(ideascf): do we need this?
	DirPathClusterTLSTiFlash = "/var/lib/tiflash-tls"
	DirPathClusterClientTLS  = "/var/lib/cluster-client-tls"
	DirPathClusterTLSTiCDC   = "/var/lib/ticdc-tls"
	// Dir path of tls file for tidb and mysql client
	DirPathMySQLTLS = "/var/lib/tidb-sql-tls"
)

All well known dir path

View Source
const (
	// FileNameConfig defines default name of config file
	FileNameConfig = "config.toml"
	// FileNameConfigTiFlashProxy defines default name of tiflash proxy config file
	FileNameConfigTiFlashProxy = "proxy.toml"
	// FileNameBootstrapSQL defines default file name of bootstrap sql
	FileNameBootstrapSQL = "bootstrap.sql"
	// FileNameTiDBAuthTokenJWKS defines default file name of auth token jwks
	FileNameTiDBAuthTokenJWKS = "tidb_auth_token_jwks.json" // #nosec
	// FileNameTiDBSlowLog defines default file name of tidb slowlog
	FileNameTiDBSlowLog = "slowlog"
)

All file names

View Source
const (
	PDPortNameClient    = "client"
	PDPortNamePeer      = "peer"
	DefaultPDPortClient = 2379
	DefaultPDPortPeer   = 2380
)
View Source
const (
	TiCDCPortName    = "ticdc" // main port
	DefaultTiCDCPort = 8300
)
View Source
const (
	TiCDCGroupCondAvailable   = "Available"
	TiCDCGroupAvailableReason = "TiCDCGroupAvailable"
)
View Source
const (
	TiDBPortNameClient    = "mysql-client"
	TiDBPortNameStatus    = "status"
	DefaultTiDBPortClient = 4000
	DefaultTiDBPortStatus = 10080
)
View Source
const (
	// TCPProbeType represents the readiness prob method with TCP.
	TCPProbeType string = "tcp"
	// CommandProbeType represents the readiness prob method with arbitrary unix `exec` call format commands.
	CommandProbeType string = "command"
)
View Source
const (
	TiDBGroupCondAvailable   = "Available"
	TiDBGroupAvailableReason = "TiDBGroupAvailable"
)
View Source
const (
	TiFlashPortNameFlash       = "tiflash"
	TiFlashPortNameProxy       = "proxy"
	TiFlashPortNameMetrics     = "metrics"
	TiFlashPortNameProxyStatus = "proxy-metrics" // both used for metrics and status, same name as v1

	DefaultTiFlashPortFlash       = 3930
	DefaultTiFlashPortProxy       = 20170
	DefaultTiFlashPortMetrics     = 8234
	DefaultTiFlashPortProxyStatus = 20292
)
View Source
const (
	TiKVPortNameClient    = "client"
	TiKVPortNameStatus    = "status"
	DefaultTiKVPortClient = 20160
	DefaultTiKVPortStatus = 20180
)
View Source
const (
	StoreStateUnknown   = "Unknown"
	StoreStatePreparing = "Preparing"
	StoreStateServing   = "Serving"
	StoreStateRemoving  = "Removing"
	StoreStateRemoved   = "Removed"
)
View Source
const (
	AnnoKeyInitialClusterNum = "pd.core.pingcap.com/initial-cluster-num"
)
View Source
const (
	// Keep compatible with the bootstrap sql in v1
	ConfigMapKeyBootstrapSQL = "bootstrap-sql"
)

All config map keys

View Source
const GroupName = "core.pingcap.com"

GroupName specifies the group name used to register the objects.

View Source
const (
	// PDCondInitialized means the operator detects that the PD instance has joined the cluster
	PDCondInitialized = "Initialized"
)
View Source
const (
	// This policy is defined to evenly spread all instances of a group
	// e.g. we may hope tikvs can evenly spread in 3 az
	SchedulePolicyTypeEvenlySpread = "EvenlySpread"
)
View Source
const (
	TiKVCondLeadersEvicted = "LeadersEvicted"
)

Variables

View Source
var (
	// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.
	SchemeBuilder runtime.SchemeBuilder

	// Deprecated: use Install instead
	AddToScheme = localSchemeBuilder.AddToScheme
	Install     = localSchemeBuilder.AddToScheme
)
View Source
var ErrFieldIsManagedByOperator = errors.New("field is managed by operator, cannot be set in config file")
View Source
var GroupVersion = v1.GroupVersion{Group: GroupName, Version: "v1alpha1"}

GroupVersion specifies the group and the version used to register the objects.

View Source
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"}

SchemeGroupVersion is group version used to register these objects Deprecated: use GroupVersion instead.

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type Cluster

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

	Spec   ClusterSpec   `json:"spec,omitempty"`
	Status ClusterStatus `json:"status,omitempty"`
}

Cluster defines a TiDB cluster

func (*Cluster) DeepCopy

func (in *Cluster) DeepCopy() *Cluster

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

func (*Cluster) DeepCopyInto

func (in *Cluster) DeepCopyInto(out *Cluster)

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

func (*Cluster) DeepCopyObject

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

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

type ClusterList

type ClusterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []Cluster `json:"items"`
}

ClusterList defines a list of TiDB clusters

func (*ClusterList) DeepCopy

func (in *ClusterList) DeepCopy() *ClusterList

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

func (*ClusterList) DeepCopyInto

func (in *ClusterList) DeepCopyInto(out *ClusterList)

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

func (*ClusterList) DeepCopyObject

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

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

type ClusterReference

type ClusterReference struct {
	Name string `json:"name"`
}

ClusterReference is a reference to cluster NOTE: namespace may be added into the reference in the future

func (*ClusterReference) DeepCopy

func (in *ClusterReference) DeepCopy() *ClusterReference

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

func (*ClusterReference) DeepCopyInto

func (in *ClusterReference) DeepCopyInto(out *ClusterReference)

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

type ClusterSpec

type ClusterSpec struct {
	// SuspendAction defines the suspend actions for the cluster.
	SuspendAction *SuspendAction `json:"suspendAction,omitempty"`

	// Whether enable the TLS connection between TiDB cluster components.
	TLSCluster *TLSCluster `json:"tlsCluster,omitempty"`

	// BootstrapSQL refers to a configmap which contains the bootstrap SQL file with the key `bootstrap-sql`,
	// which will only be executed when a TiDB cluster bootstrap on the first time.
	// Only v6.5.1+ supports this feature.
	BootstrapSQL *corev1.LocalObjectReference `json:"bootstrapSQL,omitempty"`

	// UpgradePolicy defines the upgrade policy for the cluster.
	UpgradePolicy UpgradePolicy `json:"upgradePolicy,omitempty"`

	// Paused specifies whether to pause the reconciliation loop for all components of the cluster.
	Paused bool `json:"paused,omitempty"`

	// RevisionHistoryLimit is the maximum number of revisions that will
	// be maintained in each Group's revision history.
	// The revision history consists of all revisions not represented by a currently applied version.
	// The default value is 10.
	// +kubebuilder:validation:Minimum=0
	RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty"`

	FeatureGates []meta.FeatureGate `json:"featureGates,omitempty"`
}

func (*ClusterSpec) DeepCopy

func (in *ClusterSpec) DeepCopy() *ClusterSpec

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

func (*ClusterSpec) DeepCopyInto

func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec)

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

type ClusterStatus

type ClusterStatus struct {
	// observedGeneration is the most recent generation observed for this Cluster. It corresponds to the
	// Cluster's generation, which is updated on mutation by the API Server.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,1,opt,name=observedGeneration"`

	// Components is the status of each component in the cluster.
	// +patchMergeKey=kind
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=kind
	Components []ComponentStatus `json:"components,omitempty" patchStrategy:"merge" patchMergeKey:"kind" protobuf:"bytes,1,rep,name=components"`

	// Conditions contains the current status of the cluster.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`

	// ID is the cluster id.
	ID string `json:"id"`

	// PD means url of the pd service, it's prepared for internal use
	// e.g. https://pd:2379
	PD string `json:"pd,omitempty"`

	// FeatureGates of this cluster
	FeatureGates []meta.FeatureGateStatus `json:"featureGates,omitempty"`
}

func (*ClusterStatus) DeepCopy

func (in *ClusterStatus) DeepCopy() *ClusterStatus

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

func (*ClusterStatus) DeepCopyInto

func (in *ClusterStatus) DeepCopyInto(out *ClusterStatus)

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

type CommonStatus

type CommonStatus struct {
	// Conditions contain details of the current state.
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// ObservedGeneration is the most recent generation observed by the controller.
	// It's used to determine whether the controller has reconciled the latest spec.
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// CurrentRevision is the revision of the Controller that created the resource.
	CurrentRevision string `json:"currentRevision,omitempty"`

	// UpdateRevision is the revision of the Controller that should modify the resource.
	UpdateRevision string `json:"updateRevision,omitempty"`

	// CollisionCount is the count of hash collisions. The controller
	// uses this field as a collision avoidance mechanism when it needs to create the name for the
	// newest ControllerRevision.
	// +optional
	CollisionCount *int32 `json:"collisionCount,omitempty"`
}

CommonStatus defines common status fields for instances and groups managed by TiDB Operator.

func (*CommonStatus) DeepCopy

func (in *CommonStatus) DeepCopy() *CommonStatus

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

func (*CommonStatus) DeepCopyInto

func (in *CommonStatus) DeepCopyInto(out *CommonStatus)

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

type ComponentKind

type ComponentKind string
const (
	ComponentKindPD      ComponentKind = "PD"
	ComponentKindTiKV    ComponentKind = "TiKV"
	ComponentKindTiDB    ComponentKind = "TiDB"
	ComponentKindTiFlash ComponentKind = "TiFlash"
	ComponentKindTiCDC   ComponentKind = "TiCDC"
)

type ComponentStatus

type ComponentStatus struct {
	// Kind is the kind of the component, e.g., PD, TiKV, TiDB, TiFlash.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=PD;TiKV;TiDB;TiFlash;TiCDC
	Kind ComponentKind `json:"kind"`

	// Replicas is the number of desired replicas of the component.
	// +kubebuilder:validation:Required
	Replicas int32 `json:"replicas"`
}

ComponentStatus is the status of a component in the cluster.

func (*ComponentStatus) DeepCopy

func (in *ComponentStatus) DeepCopy() *ComponentStatus

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

func (*ComponentStatus) DeepCopyInto

func (in *ComponentStatus) DeepCopyInto(out *ComponentStatus)

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

type ConfigFile

type ConfigFile string

type ConfigUpdateStrategy

type ConfigUpdateStrategy string

ConfigUpdateStrategy represents the strategy to update configuration.

const (
	// ConfigUpdateStrategyHotReload updates config without restarting.
	ConfigUpdateStrategyHotReload ConfigUpdateStrategy = "HotReload"

	// ConfigUpdateStrategyRestart performs a restart to apply changed configs.
	ConfigUpdateStrategyRestart ConfigUpdateStrategy = "Restart"
)

type GroupStatus

type GroupStatus struct {
	// Version is the version of all instances in the group.
	// It will be same as the `spec.version` only when all instances are upgraded to the desired version.
	Version string `json:"version,omitempty"`

	// Replicas is the number of Instance created by the controller.
	Replicas int32 `json:"replicas"`

	// ReadyReplicas is the number of Instances created for this ComponentGroup with a Ready Condition.
	ReadyReplicas int32 `json:"readyReplicas"`

	// CurrentReplicas is the number of Instances created by the Group controller from the Group version
	// indicated by currentRevision.
	CurrentReplicas int32 `json:"currentReplicas"`

	// UpdatedReplicas is the number of Instances created by the Group controller from the Group version
	// indicated by updateRevision.
	UpdatedReplicas int32 `json:"updatedReplicas"`
}

GroupStatus defines the common status fields for all component groups.

func (*GroupStatus) DeepCopy

func (in *GroupStatus) DeepCopy() *GroupStatus

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

func (*GroupStatus) DeepCopyInto

func (in *GroupStatus) DeepCopyInto(out *GroupStatus)

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

type ObjectMeta

type ObjectMeta struct {
	// Name must be unique within a namespace. Is required when creating resources, although
	// some resources may allow a client to request the generation of an appropriate name
	// automatically. Name is primarily intended for creation idempotence and configuration
	// definition.
	// Cannot be updated.
	// More info: http://kubernetes.io/docs/user-guide/identifiers#names
	// +optional
	Name string `json:"name,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"`
}

ObjectMeta is defined for replacing the embedded metav1.ObjectMeta Now only labels and annotations are allowed

func (*ObjectMeta) DeepCopy

func (in *ObjectMeta) DeepCopy() *ObjectMeta

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

func (*ObjectMeta) DeepCopyInto

func (in *ObjectMeta) DeepCopyInto(out *ObjectMeta)

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

type Overlay

type Overlay struct {
	Pod                    *PodOverlay                    `json:"pod,omitempty"`
	PersistentVolumeClaims []PersistentVolumeClaimOverlay `json:"volumeClaims,omitempty"`
}

Overlay defines some templates of k8s native resources. Users can specify this field to overlay the spec of managed resources(pod, pvcs, ...).

func (*Overlay) DeepCopy

func (in *Overlay) DeepCopy() *Overlay

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

func (*Overlay) DeepCopyInto

func (in *Overlay) DeepCopyInto(out *Overlay)

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

type PD

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

	Spec   PDSpec   `json:"spec,omitempty"`
	Status PDStatus `json:"status,omitempty"`
}

PD defines a PD instance

func (*PD) DeepCopy

func (in *PD) DeepCopy() *PD

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

func (*PD) DeepCopyInto

func (in *PD) DeepCopyInto(out *PD)

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

func (*PD) DeepCopyObject

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

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

type PDGroup

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

	Spec   PDGroupSpec   `json:"spec,omitempty"`
	Status PDGroupStatus `json:"status,omitempty"`
}

PDGroup defines a group of similar PD instances

func (*PDGroup) DeepCopy

func (in *PDGroup) DeepCopy() *PDGroup

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

func (*PDGroup) DeepCopyInto

func (in *PDGroup) DeepCopyInto(out *PDGroup)

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

func (*PDGroup) DeepCopyObject

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

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

type PDGroupList

type PDGroupList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []PDGroup `json:"items"`
}

PDGroupList defines a list of PD groups

func (*PDGroupList) DeepCopy

func (in *PDGroupList) DeepCopy() *PDGroupList

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

func (*PDGroupList) DeepCopyInto

func (in *PDGroupList) DeepCopyInto(out *PDGroupList)

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

func (*PDGroupList) DeepCopyObject

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

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

type PDGroupSpec

type PDGroupSpec struct {
	Cluster  ClusterReference `json:"cluster"`
	Replicas *int32           `json:"replicas"`

	// Bootstrapped means that pd cluster has been bootstrapped,
	// and there is no need to initialize a new cluster.
	// In other words, this PD group will just join an existing cluster.
	// Normally, this field is automatically changed by operator.
	// If it's true, it cannot be set to false for security
	Bootstrapped bool `json:"bootstrapped,omitempty"`

	// +listType=map
	// +listMapKey=type
	SchedulePolicies []SchedulePolicy `json:"schedulePolicies,omitempty"`

	Template PDTemplate `json:"template"`
}

PDGroupSpec describes the common attributes of a PDGroup

func (*PDGroupSpec) DeepCopy

func (in *PDGroupSpec) DeepCopy() *PDGroupSpec

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

func (*PDGroupSpec) DeepCopyInto

func (in *PDGroupSpec) DeepCopyInto(out *PDGroupSpec)

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

type PDGroupStatus

type PDGroupStatus struct {
	CommonStatus `json:",inline"`
	GroupStatus  `json:",inline"`
}

func (*PDGroupStatus) DeepCopy

func (in *PDGroupStatus) DeepCopy() *PDGroupStatus

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

func (*PDGroupStatus) DeepCopyInto

func (in *PDGroupStatus) DeepCopyInto(out *PDGroupStatus)

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

type PDList

type PDList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []PD `json:"items"`
}

PDList defines a list of PD instances

func (*PDList) DeepCopy

func (in *PDList) DeepCopy() *PDList

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

func (*PDList) DeepCopyInto

func (in *PDList) DeepCopyInto(out *PDList)

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

func (*PDList) DeepCopyObject

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

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

type PDPorts

type PDPorts struct {
	// Client defines port for pd's api service
	Client *Port `json:"client,omitempty"`
	// Peer defines port for peer communication
	Peer *Port `json:"peer,omitempty"`
}

func (*PDPorts) DeepCopy

func (in *PDPorts) DeepCopy() *PDPorts

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

func (*PDPorts) DeepCopyInto

func (in *PDPorts) DeepCopyInto(out *PDPorts)

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

type PDServer

type PDServer struct {
	// Ports defines all ports listened by pd
	Ports PDPorts `json:"ports,omitempty"`
}

func (*PDServer) DeepCopy

func (in *PDServer) DeepCopy() *PDServer

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

func (*PDServer) DeepCopyInto

func (in *PDServer) DeepCopyInto(out *PDServer)

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

type PDSpec

type PDSpec struct {
	// Cluster is a reference of tidb cluster
	Cluster ClusterReference `json:"cluster"`

	// Topology defines the topology domain of this pd instance
	// It will be translated into a node affinity config
	// Topology cannot be changed
	Topology Topology `json:"topology,omitempty"`

	// Subdomain means the subdomain of the exported pd dns.
	// A same pd cluster will use a same subdomain
	Subdomain string `json:"subdomain"`

	// PDTemplateSpec embedded some fields managed by PDGroup
	PDTemplateSpec `json:",inline"`
}

PDSpec describes the common attributes of a PD instance

func (*PDSpec) DeepCopy

func (in *PDSpec) DeepCopy() *PDSpec

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

func (*PDSpec) DeepCopyInto

func (in *PDSpec) DeepCopyInto(out *PDSpec)

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

type PDStatus

type PDStatus struct {
	CommonStatus `json:",inline"`

	// ID is the member id of this pd instance
	ID string `json:"id"`

	// IsLeader indicates whether this pd is the leader
	// NOTE: it's a snapshot from PD, not always up to date
	IsLeader bool `json:"isLeader"`
}

func (*PDStatus) DeepCopy

func (in *PDStatus) DeepCopy() *PDStatus

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

func (*PDStatus) DeepCopyInto

func (in *PDStatus) DeepCopyInto(out *PDStatus)

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

type PDTemplate

type PDTemplate struct {
	ObjectMeta `json:"metadata,omitempty"`
	Spec       PDTemplateSpec `json:"spec"`
}

func (*PDTemplate) DeepCopy

func (in *PDTemplate) DeepCopy() *PDTemplate

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

func (*PDTemplate) DeepCopyInto

func (in *PDTemplate) DeepCopyInto(out *PDTemplate)

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

type PDTemplateSpec

type PDTemplateSpec struct {
	Version string `json:"version"`
	// Image is pd's image
	// If tag is omitted, version will be used as the image tag.
	// Default is pingcap/pd
	Image *string `json:"image,omitempty"`
	// Server defines server config for PD
	Server         PDServer             `json:"server,omitempty"`
	Resources      ResourceRequirements `json:"resources,omitempty"`
	UpdateStrategy UpdateStrategy       `json:"updateStrategy,omitempty"`
	// Config defines config file of PD
	Config ConfigFile `json:"config"`
	// Volumes defines persistent volumes of PD
	Volumes []Volume `json:"volumes"`
	// Overlay defines a k8s native resource template patch
	// All resources(pod, pvcs, ...) managed by PD can be overlayed by this field
	// +kubebuilder:validation:Schemaless
	// +kubebuilder:pruning:PreserveUnknownFields
	Overlay *Overlay `json:"overlay,omitempty"`
}

PDTemplateSpec can only be specified in PDGroup TODO: It's name may need to be changed to distinguish from PodTemplateSpec

func (*PDTemplateSpec) DeepCopy

func (in *PDTemplateSpec) DeepCopy() *PDTemplateSpec

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

func (*PDTemplateSpec) DeepCopyInto

func (in *PDTemplateSpec) DeepCopyInto(out *PDTemplateSpec)

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

type PersistentVolumeClaimOverlay

type PersistentVolumeClaimOverlay struct {
	ObjectMeta `json:"metadata,omitempty"`
	Spec       *corev1.PersistentVolumeClaimSpec `json:"spec,omitempty"`
}

func (*PersistentVolumeClaimOverlay) DeepCopy

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

func (*PersistentVolumeClaimOverlay) DeepCopyInto

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

type PodOverlay

type PodOverlay struct {
	ObjectMeta `json:"metadata,omitempty"`
	Spec       *corev1.PodSpec `json:"spec,omitempty"`
}

func (*PodOverlay) DeepCopy

func (in *PodOverlay) DeepCopy() *PodOverlay

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

func (*PodOverlay) DeepCopyInto

func (in *PodOverlay) DeepCopyInto(out *PodOverlay)

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

type Port

type Port struct {
	Port int32 `json:"port"`
}

Port defines a listen port

func (*Port) DeepCopy

func (in *Port) DeepCopy() *Port

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

func (*Port) DeepCopyInto

func (in *Port) DeepCopyInto(out *Port)

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

type ResourceRequirements

type ResourceRequirements struct {
	CPU    *resource.Quantity `json:"cpu,omitempty"`
	Memory *resource.Quantity `json:"memory,omitempty"`
}

ResourceRequirements describes the compute resource requirements. It's simplified from corev1.ResourceRequirements to fit the most common use cases. This field will be translated to requests=limits for all resources. If users need to specify more advanced resource requirements, just try to use overlay to override it

func (*ResourceRequirements) DeepCopy

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

func (*ResourceRequirements) DeepCopyInto

func (in *ResourceRequirements) DeepCopyInto(out *ResourceRequirements)

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

type SchedulePolicy

type SchedulePolicy struct {
	Type         SchedulePolicyType          `json:"type"`
	EvenlySpread *SchedulePolicyEvenlySpread `json:"evenlySpread,omitempty"`
}

SchedulePolicy defines how instances of the group schedules its pod.

func (*SchedulePolicy) DeepCopy

func (in *SchedulePolicy) DeepCopy() *SchedulePolicy

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

func (*SchedulePolicy) DeepCopyInto

func (in *SchedulePolicy) DeepCopyInto(out *SchedulePolicy)

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

type SchedulePolicyEvenlySpread

type SchedulePolicyEvenlySpread struct {
	// All instances of a group will evenly spread in differnet topologies
	Topologies []ScheduleTopology `json:"topologies"`
}

func (*SchedulePolicyEvenlySpread) DeepCopy

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

func (*SchedulePolicyEvenlySpread) DeepCopyInto

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

type SchedulePolicyType

type SchedulePolicyType string

type ScheduleTopology

type ScheduleTopology struct {
	// Topology means the topo for scheduling
	Topology Topology `json:"topology"`
	// Weight defines how many pods will be scheduled to this topo
	// default is 1
	Weight *int32 `json:"weight,omitempty"`
}

func (*ScheduleTopology) DeepCopy

func (in *ScheduleTopology) DeepCopy() *ScheduleTopology

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

func (*ScheduleTopology) DeepCopyInto

func (in *ScheduleTopology) DeepCopyInto(out *ScheduleTopology)

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

type SuspendAction

type SuspendAction struct {
	// SuspendCompute indicates delete the pods but keep the PVCs.
	SuspendCompute bool `json:"suspendCompute,omitempty"`
}

func (*SuspendAction) DeepCopy

func (in *SuspendAction) DeepCopy() *SuspendAction

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

func (*SuspendAction) DeepCopyInto

func (in *SuspendAction) DeepCopyInto(out *SuspendAction)

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

type TLS

type TLS struct {
	Enabled bool `json:"enabled,omitempty"`
}

TLS defines a common tls config for all components Now it only support enable or disable. TODO(liubo02): add more tls configs

func (*TLS) DeepCopy

func (in *TLS) DeepCopy() *TLS

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

func (*TLS) DeepCopyInto

func (in *TLS) DeepCopyInto(out *TLS)

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

type TLSCluster

type TLSCluster struct {
	// Enable mutual TLS connection between TiDB cluster components.
	// Once enabled, the mutual authentication applies to all components,
	// and it does not support applying to only part of the components.
	// The steps to enable this feature:
	//   1. Generate TiDB cluster components certificates and a client-side certifiacete for them.
	//      There are multiple ways to generate these certificates:
	//        - user-provided certificates: https://docs.pingcap.com/tidb/stable/generate-self-signed-certificates
	//        - use the K8s built-in certificate signing system signed certificates: https://kubernetes.io/docs/tasks/tls/managing-tls-in-a-cluster/
	//        - or use cert-manager signed certificates: https://cert-manager.io/
	//   2. Create one secret object for one component group which contains the certificates created above.
	//      The name of this Secret must be: <groupName>-<componentName>-cluster-secret.
	//        For PD: kubectl create secret generic <groupName>-pd-cluster-secret --namespace=<namespace> --from-file=tls.crt=<path/to/tls.crt> --from-file=tls.key=<path/to/tls.key> --from-file=ca.crt=<path/to/ca.crt>
	//        For TiKV: kubectl create secret generic <groupName>-tikv-cluster-secret --namespace=<namespace> --from-file=tls.crt=<path/to/tls.crt> --from-file=tls.key=<path/to/tls.key> --from-file=ca.crt=<path/to/ca.crt>
	//        For TiDB: kubectl create secret generic <groupName>-tidb-cluster-secret --namespace=<namespace> --from-file=tls.crt=<path/to/tls.crt> --from-file=tls.key=<path/to/tls.key> --from-file=ca.crt=<path/to/ca.crt>
	//        For Client: kubectl create secret generic <clusterName>-cluster-client-secret --namespace=<namespace> --from-file=tls.crt=<path/to/tls.crt> --from-file=tls.key=<path/to/tls.key> --from-file=ca.crt=<path/to/ca.crt>
	//        Same for other components.
	// +optional
	Enabled bool `json:"enabled,omitempty"`
}

TLSCluster is used to enable mutual TLS connection between TiDB cluster components. https://docs.pingcap.com/tidb/stable/enable-tls-between-components

func (*TLSCluster) DeepCopy

func (in *TLSCluster) DeepCopy() *TLSCluster

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

func (*TLSCluster) DeepCopyInto

func (in *TLSCluster) DeepCopyInto(out *TLSCluster)

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

type TiCDC

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

	Spec   TiCDCSpec   `json:"spec,omitempty"`
	Status TiCDCStatus `json:"status,omitempty"`
}

TiCDC defines a TiCDC instance

func (*TiCDC) DeepCopy

func (in *TiCDC) DeepCopy() *TiCDC

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

func (*TiCDC) DeepCopyInto

func (in *TiCDC) DeepCopyInto(out *TiCDC)

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

func (*TiCDC) DeepCopyObject

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

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

type TiCDCGroup

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

	Spec   TiCDCGroupSpec   `json:"spec,omitempty"`
	Status TiCDCGroupStatus `json:"status,omitempty"`
}

TiCDCGroup defines a group of similar TiCDC instances

func (*TiCDCGroup) DeepCopy

func (in *TiCDCGroup) DeepCopy() *TiCDCGroup

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

func (*TiCDCGroup) DeepCopyInto

func (in *TiCDCGroup) DeepCopyInto(out *TiCDCGroup)

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

func (*TiCDCGroup) DeepCopyObject

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

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

type TiCDCGroupList

type TiCDCGroupList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []TiCDCGroup `json:"items"`
}

TiCDCGroupList defines a list of TiCDC groups

func (*TiCDCGroupList) DeepCopy

func (in *TiCDCGroupList) DeepCopy() *TiCDCGroupList

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

func (*TiCDCGroupList) DeepCopyInto

func (in *TiCDCGroupList) DeepCopyInto(out *TiCDCGroupList)

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

func (*TiCDCGroupList) DeepCopyObject

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

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

type TiCDCGroupSpec

type TiCDCGroupSpec struct {
	Cluster  ClusterReference `json:"cluster"`
	Replicas *int32           `json:"replicas"`

	// +listType=map
	// +listMapKey=type
	SchedulePolicies []SchedulePolicy `json:"schedulePolicies,omitempty"`

	Template TiCDCTemplate `json:"template"`
}

TiCDCGroupSpec describes the common attributes of a TiCDCGroup

func (*TiCDCGroupSpec) DeepCopy

func (in *TiCDCGroupSpec) DeepCopy() *TiCDCGroupSpec

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

func (*TiCDCGroupSpec) DeepCopyInto

func (in *TiCDCGroupSpec) DeepCopyInto(out *TiCDCGroupSpec)

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

type TiCDCGroupStatus

type TiCDCGroupStatus struct {
	CommonStatus `json:",inline"`
	GroupStatus  `json:",inline"`
}

func (*TiCDCGroupStatus) DeepCopy

func (in *TiCDCGroupStatus) DeepCopy() *TiCDCGroupStatus

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

func (*TiCDCGroupStatus) DeepCopyInto

func (in *TiCDCGroupStatus) DeepCopyInto(out *TiCDCGroupStatus)

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

type TiCDCList

type TiCDCList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []TiCDC `json:"items"`
}

TiCDCList defines a list of TiCDC instances

func (*TiCDCList) DeepCopy

func (in *TiCDCList) DeepCopy() *TiCDCList

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

func (*TiCDCList) DeepCopyInto

func (in *TiCDCList) DeepCopyInto(out *TiCDCList)

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

func (*TiCDCList) DeepCopyObject

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

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

type TiCDCPorts

type TiCDCPorts struct {
	// Port defines main port for TiCDC.
	Port *Port `json:"port,omitempty"`
}

func (*TiCDCPorts) DeepCopy

func (in *TiCDCPorts) DeepCopy() *TiCDCPorts

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

func (*TiCDCPorts) DeepCopyInto

func (in *TiCDCPorts) DeepCopyInto(out *TiCDCPorts)

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

type TiCDCServer

type TiCDCServer struct {
	// Ports defines all ports listened by TiCDC
	Ports TiCDCPorts `json:"ports,omitempty"`
}

func (*TiCDCServer) DeepCopy

func (in *TiCDCServer) DeepCopy() *TiCDCServer

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

func (*TiCDCServer) DeepCopyInto

func (in *TiCDCServer) DeepCopyInto(out *TiCDCServer)

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

type TiCDCSpec

type TiCDCSpec struct {
	// Cluster is a reference of tidb cluster
	Cluster ClusterReference `json:"cluster"`

	// Topology defines the topology domain of this TiCDC instance
	// It will be translated into a node affinity config
	// Topology cannot be changed
	Topology Topology `json:"topology,omitempty"`

	// Subdomain means the subdomain of the exported TiCDC DNS.
	// A same TiCDC cluster will use a same subdomain
	Subdomain string `json:"subdomain"`

	// TiCDCTemplateSpec embedded some fields managed by TiCDCGroup
	TiCDCTemplateSpec `json:",inline"`
}

TiCDCSpec describes the common attributes of a TiCDC instance

func (*TiCDCSpec) DeepCopy

func (in *TiCDCSpec) DeepCopy() *TiCDCSpec

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

func (*TiCDCSpec) DeepCopyInto

func (in *TiCDCSpec) DeepCopyInto(out *TiCDCSpec)

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

type TiCDCStatus

type TiCDCStatus struct {
	CommonStatus `json:",inline"`

	// ID is the member id of this TiCDC instance
	ID string `json:"id"`
}

func (*TiCDCStatus) DeepCopy

func (in *TiCDCStatus) DeepCopy() *TiCDCStatus

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

func (*TiCDCStatus) DeepCopyInto

func (in *TiCDCStatus) DeepCopyInto(out *TiCDCStatus)

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

type TiCDCTemplate

type TiCDCTemplate struct {
	ObjectMeta `json:"metadata,omitempty"`
	Spec       TiCDCTemplateSpec `json:"spec"`
}

func (*TiCDCTemplate) DeepCopy

func (in *TiCDCTemplate) DeepCopy() *TiCDCTemplate

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

func (*TiCDCTemplate) DeepCopyInto

func (in *TiCDCTemplate) DeepCopyInto(out *TiCDCTemplate)

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

type TiCDCTemplateSpec

type TiCDCTemplateSpec struct {
	Version string `json:"version"`
	// Image is TiCDC's image
	// If tag is omitted, version will be used as the image tag.
	// Default is pingcap/ticdc
	Image *string `json:"image,omitempty"`
	// Server defines server config for TiCDC
	Server         TiCDCServer          `json:"server,omitempty"`
	Resources      ResourceRequirements `json:"resources,omitempty"`
	UpdateStrategy UpdateStrategy       `json:"updateStrategy,omitempty"`
	// Config defines config file of TiCDC
	Config ConfigFile `json:"config,omitempty"`

	// Volumes defines persistent volumes of TiCDC, it is optional.
	// If you want to use ephemeral storage or mount sink TLS certs, you can use "overlay" instead.
	Volumes []Volume `json:"volumes,omitempty"`
	// Overlay defines a k8s native resource template patch
	// All resources(pod, pvcs, ...) managed by TiCDC can be overlayed by this field
	// +kubebuilder:validation:Schemaless
	// +kubebuilder:pruning:PreserveUnknownFields
	Overlay *Overlay `json:"overlay,omitempty"`

	// GracefulShutdownTimeout is the timeout of gracefully shutdown a TiCDC pod
	// when scaling in or rolling update.
	// Encoded in the format of Go Duration.
	// Defaults to 10m
	GracefulShutdownTimeout *metav1.Duration `json:"gracefulShutdownTimeout,omitempty"`
}

TiCDCTemplateSpec can only be specified in TiCDCGroup

func (*TiCDCTemplateSpec) DeepCopy

func (in *TiCDCTemplateSpec) DeepCopy() *TiCDCTemplateSpec

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

func (*TiCDCTemplateSpec) DeepCopyInto

func (in *TiCDCTemplateSpec) DeepCopyInto(out *TiCDCTemplateSpec)

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

type TiDB

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

	Spec   TiDBSpec   `json:"spec,omitempty"`
	Status TiDBStatus `json:"status,omitempty"`
}

TiDB defines a TiDB instance.

func (*TiDB) DeepCopy

func (in *TiDB) DeepCopy() *TiDB

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

func (*TiDB) DeepCopyInto

func (in *TiDB) DeepCopyInto(out *TiDB)

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

func (*TiDB) DeepCopyObject

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

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

type TiDBAuthToken

type TiDBAuthToken struct {
	// Secret name of jwks
	JWKs corev1.LocalObjectReference `json:"jwks"`
}

func (*TiDBAuthToken) DeepCopy

func (in *TiDBAuthToken) DeepCopy() *TiDBAuthToken

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

func (*TiDBAuthToken) DeepCopyInto

func (in *TiDBAuthToken) DeepCopyInto(out *TiDBAuthToken)

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

type TiDBGroup

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

	Spec   TiDBGroupSpec   `json:"spec,omitempty"`
	Status TiDBGroupStatus `json:"status,omitempty"`
}

TiDBGroup defines a group of similar TiDB instances.

func (*TiDBGroup) DeepCopy

func (in *TiDBGroup) DeepCopy() *TiDBGroup

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

func (*TiDBGroup) DeepCopyInto

func (in *TiDBGroup) DeepCopyInto(out *TiDBGroup)

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

func (*TiDBGroup) DeepCopyObject

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

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

type TiDBGroupList

type TiDBGroupList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []TiDBGroup `json:"items"`
}

TiDBGroupList defines a list of TiDB groups

func (*TiDBGroupList) DeepCopy

func (in *TiDBGroupList) DeepCopy() *TiDBGroupList

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

func (*TiDBGroupList) DeepCopyInto

func (in *TiDBGroupList) DeepCopyInto(out *TiDBGroupList)

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

func (*TiDBGroupList) DeepCopyObject

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

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

type TiDBGroupSpec

type TiDBGroupSpec struct {
	Cluster  ClusterReference `json:"cluster"`
	Replicas *int32           `json:"replicas"`

	// Service defines some fields used to override the default service.
	Service *TiDBService `json:"service,omitempty"`

	// +listType=map
	// +listMapKey=type
	SchedulePolicies []SchedulePolicy `json:"schedulePolicies,omitempty"`

	Template TiDBTemplate `json:"template"`
}

TiDBGroupSpec describes the common attributes of a TiDBGroup.

func (*TiDBGroupSpec) DeepCopy

func (in *TiDBGroupSpec) DeepCopy() *TiDBGroupSpec

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

func (*TiDBGroupSpec) DeepCopyInto

func (in *TiDBGroupSpec) DeepCopyInto(out *TiDBGroupSpec)

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

type TiDBGroupStatus

type TiDBGroupStatus struct {
	CommonStatus `json:",inline"`
	GroupStatus  `json:",inline"`
}

func (*TiDBGroupStatus) DeepCopy

func (in *TiDBGroupStatus) DeepCopy() *TiDBGroupStatus

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

func (*TiDBGroupStatus) DeepCopyInto

func (in *TiDBGroupStatus) DeepCopyInto(out *TiDBGroupStatus)

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

type TiDBList

type TiDBList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []TiDB `json:"items"`
}

TiDBList defines a list of TiDB instances.

func (*TiDBList) DeepCopy

func (in *TiDBList) DeepCopy() *TiDBList

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

func (*TiDBList) DeepCopyInto

func (in *TiDBList) DeepCopyInto(out *TiDBList)

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

func (*TiDBList) DeepCopyObject

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

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

type TiDBPorts

type TiDBPorts struct {
	// Client defines port for TiDB's SQL service.
	Client *Port `json:"client,omitempty"`
	// Status defines port for TiDB status API.
	Status *Port `json:"status,omitempty"`
}

func (*TiDBPorts) DeepCopy

func (in *TiDBPorts) DeepCopy() *TiDBPorts

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

func (*TiDBPorts) DeepCopyInto

func (in *TiDBPorts) DeepCopyInto(out *TiDBPorts)

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

type TiDBProb

type TiDBProb struct {
	// "tcp" will use TCP socket to connect component port.
	// "command" will probe the status api of tidb.
	// +kubebuilder:validation:Enum=tcp;command
	Type *string `json:"type,omitempty"`
}

func (*TiDBProb) DeepCopy

func (in *TiDBProb) DeepCopy() *TiDBProb

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

func (*TiDBProb) DeepCopyInto

func (in *TiDBProb) DeepCopyInto(out *TiDBProb)

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

type TiDBProbes

type TiDBProbes struct {
	// Readiness defines the readiness probe for TiDB.
	// The default handler is a TCP socket on the client port.
	Readiness *TiDBProb `json:"readiness,omitempty"`
}

func (*TiDBProbes) DeepCopy

func (in *TiDBProbes) DeepCopy() *TiDBProbes

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

func (*TiDBProbes) DeepCopyInto

func (in *TiDBProbes) DeepCopyInto(out *TiDBProbes)

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

type TiDBSecurity

type TiDBSecurity struct {
	// Whether enable the TLS connection between the TiDB server and MySQL client.
	// TODO(liubo02): rename the TiDBTLSClient struct,
	TLS *TiDBTLS `json:"tls,omitempty"`

	// Whether enable `tidb_auth_token` authentication method.
	// To enable this feature, a K8s secret named `<groupName>-tidb-auth-token-jwks-secret` must be created to store the JWKs.
	// ref: https://docs.pingcap.com/tidb/stable/security-compatibility-with-mysql#tidb_auth_token
	// Defaults to false.
	AuthToken *TiDBAuthToken `json:"authToken,omitempty"`
}

func (*TiDBSecurity) DeepCopy

func (in *TiDBSecurity) DeepCopy() *TiDBSecurity

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

func (*TiDBSecurity) DeepCopyInto

func (in *TiDBSecurity) DeepCopyInto(out *TiDBSecurity)

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

type TiDBServer

type TiDBServer struct {
	// Port defines all ports listened by TiDB.
	Ports TiDBPorts `json:"ports,omitempty"`
}

func (*TiDBServer) DeepCopy

func (in *TiDBServer) DeepCopy() *TiDBServer

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

func (*TiDBServer) DeepCopyInto

func (in *TiDBServer) DeepCopyInto(out *TiDBServer)

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

type TiDBService

type TiDBService struct {
	// type determines how the Service is exposed. Defaults to ClusterIP. Valid
	// options are ExternalName, ClusterIP, NodePort, and LoadBalancer.
	// "ClusterIP" allocates a cluster-internal IP address for load-balancing
	// to endpoints. Endpoints are determined by the selector or if that is not
	// specified, by manual construction of an Endpoints object or
	// EndpointSlice objects. If clusterIP is "None", no virtual IP is
	// allocated and the endpoints are published as a set of endpoints rather
	// than a virtual IP.
	// "NodePort" builds on ClusterIP and allocates a port on every node which
	// routes to the same endpoints as the clusterIP.
	// "LoadBalancer" builds on NodePort and creates an external load-balancer
	// (if supported in the current cloud) which routes to the same endpoints
	// as the clusterIP.
	// "ExternalName" aliases this service to the specified externalName.
	// Several other fields do not apply to ExternalName services.
	// More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
	// +optional
	Type corev1.ServiceType `json:"type,omitempty"`
}

TiDBService defines some fields used to override the default service.

func (*TiDBService) DeepCopy

func (in *TiDBService) DeepCopy() *TiDBService

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

func (*TiDBService) DeepCopyInto

func (in *TiDBService) DeepCopyInto(out *TiDBService)

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

type TiDBSlowLog

type TiDBSlowLog struct {
	// Disabled indicates whether the separate slow log is disabled.
	// Defaults to false. In other words, the separate slow log is enabled by default.
	Disabled bool `json:"disable,omitempty"`

	// Image to tail slowlog to stdout
	// Default is busybox:1.37.0
	Image *string `json:"image,omitempty"`

	// ResourceRequirements defines the resource requirements for the slow log sidecar.
	Resources ResourceRequirements `json:"resources,omitempty"`
}

func (*TiDBSlowLog) DeepCopy

func (in *TiDBSlowLog) DeepCopy() *TiDBSlowLog

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

func (*TiDBSlowLog) DeepCopyInto

func (in *TiDBSlowLog) DeepCopyInto(out *TiDBSlowLog)

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

type TiDBSpec

type TiDBSpec struct {
	Cluster ClusterReference `json:"cluster"`

	// Topology defines the topology domain of this TiDB instance.
	// It will be translated into a node affnity config.
	// Topology cannot be changed.
	Topology Topology `json:"topology,omitempty"`

	// Subdomain means the subdomain of the exported pd dns.
	// A same pd cluster will use a same subdomain
	Subdomain string `json:"subdomain"`

	// TiDBTemplateSpec embeded some fields managed by TiDBGroup.
	TiDBTemplateSpec `json:",inline"`
}

func (*TiDBSpec) DeepCopy

func (in *TiDBSpec) DeepCopy() *TiDBSpec

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

func (*TiDBSpec) DeepCopyInto

func (in *TiDBSpec) DeepCopyInto(out *TiDBSpec)

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

type TiDBStatus

type TiDBStatus struct {
	CommonStatus `json:",inline"`
}

func (*TiDBStatus) DeepCopy

func (in *TiDBStatus) DeepCopy() *TiDBStatus

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

func (*TiDBStatus) DeepCopyInto

func (in *TiDBStatus) DeepCopyInto(out *TiDBStatus)

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

type TiDBTLS

type TiDBTLS struct {
	// When enabled, TiDB will accept TLS encrypted connections from MySQL clients.
	// The steps to enable this feature:
	//   1. Generate a TiDB server-side certificate and a client-side certifiacete for the TiDB cluster.
	//      There are multiple ways to generate certificates:
	//        - user-provided certificates: https://docs.pingcap.com/tidb/stable/generate-self-signed-certificates
	//        - use the K8s built-in certificate signing system signed certificates: https://kubernetes.io/docs/tasks/tls/managing-tls-in-a-cluster/
	//        - or use cert-manager signed certificates: https://cert-manager.io/
	//   2. Create a K8s Secret object which contains the TiDB server-side certificate created above.
	//      The name of this Secret must be: <groupName>-tidb-server-secret.
	//        kubectl create secret generic <groupName>-tidb-server-secret --namespace=<namespace> --from-file=tls.crt=<path/to/tls.crt> --from-file=tls.key=<path/to/tls.key> --from-file=ca.crt=<path/to/ca.crt>
	//   3. Create a K8s Secret object which contains the TiDB client-side certificate created above which will be used by TiDB Operator.
	//      The name of this Secret must be: <groupName>-tidb-client-secret.
	//        kubectl create secret generic <groupName>-tidb-client-secret --namespace=<namespace> --from-file=tls.crt=<path/to/tls.crt> --from-file=tls.key=<path/to/tls.key> --from-file=ca.crt=<path/to/ca.crt>
	//   4. Set Enabled to `true`.
	MySQL *TLS `json:"mysql,omitempty"`
}

func (*TiDBTLS) DeepCopy

func (in *TiDBTLS) DeepCopy() *TiDBTLS

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

func (*TiDBTLS) DeepCopyInto

func (in *TiDBTLS) DeepCopyInto(out *TiDBTLS)

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

type TiDBTemplate

type TiDBTemplate struct {
	ObjectMeta `json:"metadata,omitempty"`
	Spec       TiDBTemplateSpec `json:"spec"`
}

func (*TiDBTemplate) DeepCopy

func (in *TiDBTemplate) DeepCopy() *TiDBTemplate

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

func (*TiDBTemplate) DeepCopyInto

func (in *TiDBTemplate) DeepCopyInto(out *TiDBTemplate)

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

type TiDBTemplateSpec

type TiDBTemplateSpec struct {
	Version string `json:"version"`
	// Image is tidb's image
	// If tag is omitted, version will be used as the image tag.
	// Default is pingcap/tidb
	Image *string `json:"image,omitempty"`
	// Server defines the server configuration of TiDB.
	Server TiDBServer `json:"server,omitempty"`
	// Probes defines probes for TiDB.
	Probes TiDBProbes `json:"probes,omitempty"`
	// Resources defines resource required by TiDB.
	Resources ResourceRequirements `json:"resources,omitempty"`
	// Config defines config file of TiDB.
	Config         ConfigFile     `json:"config"`
	UpdateStrategy UpdateStrategy `json:"updateStrategy,omitempty"`

	Security *TiDBSecurity `json:"security,omitempty"`
	// Volumes defines data volume of TiDB, it is optional.
	Volumes []Volume `json:"volumes,omitempty"`

	// SlowLog defines the separate slow log configuration for TiDB.
	// When enabled, a sidecar container will be created to output the slow log to its stdout.
	SlowLog *TiDBSlowLog `json:"slowLog,omitempty"`

	// Overlay defines a k8s native resource template patch.
	// All resources(pod, pvcs, ...) managed by TiDB can be overlayed by this field.
	// +kubebuilder:validation:Schemaless
	// +kubebuilder:pruning:PreserveUnknownFields
	Overlay *Overlay `json:"overlay,omitempty"`
}

TiDBTemplateSpec can only be specified in TiDBGroup.

func (*TiDBTemplateSpec) DeepCopy

func (in *TiDBTemplateSpec) DeepCopy() *TiDBTemplateSpec

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

func (*TiDBTemplateSpec) DeepCopyInto

func (in *TiDBTemplateSpec) DeepCopyInto(out *TiDBTemplateSpec)

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

type TiFlash

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

	Spec   TiFlashSpec   `json:"spec,omitempty"`
	Status TiFlashStatus `json:"status,omitempty"`
}

TiFlash defines a TiFlash instance

func (*TiFlash) DeepCopy

func (in *TiFlash) DeepCopy() *TiFlash

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

func (*TiFlash) DeepCopyInto

func (in *TiFlash) DeepCopyInto(out *TiFlash)

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

func (*TiFlash) DeepCopyObject

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

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

type TiFlashGroup

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

	Spec   TiFlashGroupSpec   `json:"spec,omitempty"`
	Status TiFlashGroupStatus `json:"status,omitempty"`
}

TiFlashGroup defines a group of similar TiFlash instances

func (*TiFlashGroup) DeepCopy

func (in *TiFlashGroup) DeepCopy() *TiFlashGroup

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

func (*TiFlashGroup) DeepCopyInto

func (in *TiFlashGroup) DeepCopyInto(out *TiFlashGroup)

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

func (*TiFlashGroup) DeepCopyObject

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

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

type TiFlashGroupList

type TiFlashGroupList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []TiFlashGroup `json:"items"`
}

TiFlashGroupList defines a list of TiFlash groups

func (*TiFlashGroupList) DeepCopy

func (in *TiFlashGroupList) DeepCopy() *TiFlashGroupList

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

func (*TiFlashGroupList) DeepCopyInto

func (in *TiFlashGroupList) DeepCopyInto(out *TiFlashGroupList)

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

func (*TiFlashGroupList) DeepCopyObject

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

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

type TiFlashGroupSpec

type TiFlashGroupSpec struct {
	Cluster  ClusterReference `json:"cluster"`
	Replicas *int32           `json:"replicas"`

	// +listType=map
	// +listMapKey=type
	SchedulePolicies []SchedulePolicy `json:"schedulePolicies,omitempty"`
	Template         TiFlashTemplate  `json:"template"`
}

func (*TiFlashGroupSpec) DeepCopy

func (in *TiFlashGroupSpec) DeepCopy() *TiFlashGroupSpec

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

func (*TiFlashGroupSpec) DeepCopyInto

func (in *TiFlashGroupSpec) DeepCopyInto(out *TiFlashGroupSpec)

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

type TiFlashGroupStatus

type TiFlashGroupStatus struct {
	CommonStatus `json:",inline"`
	GroupStatus  `json:",inline"`
}

func (*TiFlashGroupStatus) DeepCopy

func (in *TiFlashGroupStatus) DeepCopy() *TiFlashGroupStatus

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

func (*TiFlashGroupStatus) DeepCopyInto

func (in *TiFlashGroupStatus) DeepCopyInto(out *TiFlashGroupStatus)

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

type TiFlashList

type TiFlashList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []TiFlash `json:"items"`
}

TiFlashList defines a list of TiFlash instances

func (*TiFlashList) DeepCopy

func (in *TiFlashList) DeepCopy() *TiFlashList

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

func (*TiFlashList) DeepCopyInto

func (in *TiFlashList) DeepCopyInto(out *TiFlashList)

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

func (*TiFlashList) DeepCopyObject

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

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

type TiFlashLogTailer

type TiFlashLogTailer struct {
	// Image to tail log to stdout
	// Default is busybox:1.37.0
	Image *string `json:"image,omitempty"`

	// ResourceRequirements defines the resource requirements for the log sidecar.
	Resources ResourceRequirements `json:"resources,omitempty"`
}

func (*TiFlashLogTailer) DeepCopy

func (in *TiFlashLogTailer) DeepCopy() *TiFlashLogTailer

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

func (*TiFlashLogTailer) DeepCopyInto

func (in *TiFlashLogTailer) DeepCopyInto(out *TiFlashLogTailer)

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

type TiFlashPorts

type TiFlashPorts struct {
	Flash   *Port `json:"flash,omitempty"`
	Metrics *Port `json:"metrics,omitempty"`

	Proxy       *Port `json:"proxy,omitempty"`
	ProxyStatus *Port `json:"proxyStatus,omitempty"`
}

func (*TiFlashPorts) DeepCopy

func (in *TiFlashPorts) DeepCopy() *TiFlashPorts

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

func (*TiFlashPorts) DeepCopyInto

func (in *TiFlashPorts) DeepCopyInto(out *TiFlashPorts)

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

type TiFlashServer

type TiFlashServer struct {
	// Ports defines all ports listened by tiflash
	Ports TiFlashPorts `json:"ports,omitempty"`
}

func (*TiFlashServer) DeepCopy

func (in *TiFlashServer) DeepCopy() *TiFlashServer

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

func (*TiFlashServer) DeepCopyInto

func (in *TiFlashServer) DeepCopyInto(out *TiFlashServer)

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

type TiFlashSpec

type TiFlashSpec struct {
	// Cluster is a reference of tidb cluster
	Cluster ClusterReference `json:"cluster"`
	// Topology defines the topology domain of this pd instance
	// It will be translated into a node affinity config
	// Topology cannot be changed
	Topology Topology `json:"topology,omitempty"`
	// Subdomain means the subdomain of the exported TiFlash dns.
	// A same TiFlash group will use a same subdomain
	Subdomain string `json:"subdomain"`

	// TiFlashTemplateSpec embedded some fields managed by TiFlashGroup
	TiFlashTemplateSpec `json:",inline"`
}

func (*TiFlashSpec) DeepCopy

func (in *TiFlashSpec) DeepCopy() *TiFlashSpec

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

func (*TiFlashSpec) DeepCopyInto

func (in *TiFlashSpec) DeepCopyInto(out *TiFlashSpec)

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

type TiFlashStatus

type TiFlashStatus struct {
	CommonStatus `json:",inline"`

	// Store ID
	ID string `json:"id,omitempty"`

	// Store State
	State string `json:"state,omitempty"`
}

func (*TiFlashStatus) DeepCopy

func (in *TiFlashStatus) DeepCopy() *TiFlashStatus

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

func (*TiFlashStatus) DeepCopyInto

func (in *TiFlashStatus) DeepCopyInto(out *TiFlashStatus)

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

type TiFlashTemplate

type TiFlashTemplate struct {
	ObjectMeta `json:"metadata,omitempty"`
	Spec       TiFlashTemplateSpec `json:"spec"`
}

func (*TiFlashTemplate) DeepCopy

func (in *TiFlashTemplate) DeepCopy() *TiFlashTemplate

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

func (*TiFlashTemplate) DeepCopyInto

func (in *TiFlashTemplate) DeepCopyInto(out *TiFlashTemplate)

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

type TiFlashTemplateSpec

type TiFlashTemplateSpec struct {
	Version string `json:"version"`
	// Image is tiflash's image
	// If tag is omitted, version will be used as the image tag.
	// Default is pingcap/tiflash
	Image *string `json:"image,omitempty"`
	// Server defines the server config of TiFlash
	Server TiFlashServer `json:"server,omitempty"`
	// Resources defines resource required by TiFlash
	Resources ResourceRequirements `json:"resources,omitempty"`

	// Config defines config file of TiFlash
	Config ConfigFile `json:"config"`

	UpdateStrategy UpdateStrategy `json:"updateStrategy,omitempty"`

	// ProxyConfig defines config file of TiFlash proxy
	ProxyConfig ConfigFile `json:"proxyConfig,omitempty"`

	// Volumes defines data volume of TiFlash
	Volumes []Volume `json:"volumes"`

	// LogTailer defines the sidercar log tailer config of TiFlash.
	// We always use sidecar to tail the log of TiFlash now.
	LogTailer *TiFlashLogTailer `json:"logTailer,omitempty"`

	// Overlay defines a k8s native resource template patch
	// All resources(pod, pvcs, ...) managed by TiFlash can be overlayed by this field
	// +kubebuilder:validation:Schemaless
	// +kubebuilder:pruning:PreserveUnknownFields
	Overlay *Overlay `json:"overlay,omitempty"`
}

func (*TiFlashTemplateSpec) DeepCopy

func (in *TiFlashTemplateSpec) DeepCopy() *TiFlashTemplateSpec

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

func (*TiFlashTemplateSpec) DeepCopyInto

func (in *TiFlashTemplateSpec) DeepCopyInto(out *TiFlashTemplateSpec)

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

type TiKV

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

	Spec   TiKVSpec   `json:"spec,omitempty"`
	Status TiKVStatus `json:"status,omitempty"`
}

TiKV defines a TiKV instance

func (*TiKV) DeepCopy

func (in *TiKV) DeepCopy() *TiKV

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

func (*TiKV) DeepCopyInto

func (in *TiKV) DeepCopyInto(out *TiKV)

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

func (*TiKV) DeepCopyObject

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

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

type TiKVGroup

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

	Spec   TiKVGroupSpec   `json:"spec,omitempty"`
	Status TiKVGroupStatus `json:"status,omitempty"`
}

TiKVGroup defines a group of similar TiKV instances

func (*TiKVGroup) DeepCopy

func (in *TiKVGroup) DeepCopy() *TiKVGroup

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

func (*TiKVGroup) DeepCopyInto

func (in *TiKVGroup) DeepCopyInto(out *TiKVGroup)

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

func (*TiKVGroup) DeepCopyObject

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

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

type TiKVGroupList

type TiKVGroupList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []TiKVGroup `json:"items"`
}

TiKVGroupList defines a list of TiKV groups

func (*TiKVGroupList) DeepCopy

func (in *TiKVGroupList) DeepCopy() *TiKVGroupList

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

func (*TiKVGroupList) DeepCopyInto

func (in *TiKVGroupList) DeepCopyInto(out *TiKVGroupList)

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

func (*TiKVGroupList) DeepCopyObject

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

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

type TiKVGroupSpec

type TiKVGroupSpec struct {
	Cluster  ClusterReference `json:"cluster"`
	Replicas *int32           `json:"replicas"`

	// +listType=map
	// +listMapKey=type
	SchedulePolicies []SchedulePolicy `json:"schedulePolicies,omitempty"`

	Template TiKVTemplate `json:"template"`
}

TiKVGroupSpec describes the common attributes of a TiKVGroup

func (*TiKVGroupSpec) DeepCopy

func (in *TiKVGroupSpec) DeepCopy() *TiKVGroupSpec

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

func (*TiKVGroupSpec) DeepCopyInto

func (in *TiKVGroupSpec) DeepCopyInto(out *TiKVGroupSpec)

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

type TiKVGroupStatus

type TiKVGroupStatus struct {
	CommonStatus `json:",inline"`
	GroupStatus  `json:",inline"`
}

func (*TiKVGroupStatus) DeepCopy

func (in *TiKVGroupStatus) DeepCopy() *TiKVGroupStatus

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

func (*TiKVGroupStatus) DeepCopyInto

func (in *TiKVGroupStatus) DeepCopyInto(out *TiKVGroupStatus)

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

type TiKVList

type TiKVList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []TiKV `json:"items"`
}

TiKVList defines a list of TiKV instances

func (*TiKVList) DeepCopy

func (in *TiKVList) DeepCopy() *TiKVList

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

func (*TiKVList) DeepCopyInto

func (in *TiKVList) DeepCopyInto(out *TiKVList)

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

func (*TiKVList) DeepCopyObject

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

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

type TiKVPorts

type TiKVPorts struct {
	// Client defines port for tikv's api service
	Client *Port `json:"client,omitempty"`
	// Status defines port for tikv status api
	Status *Port `json:"peer,omitempty"`
}

func (*TiKVPorts) DeepCopy

func (in *TiKVPorts) DeepCopy() *TiKVPorts

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

func (*TiKVPorts) DeepCopyInto

func (in *TiKVPorts) DeepCopyInto(out *TiKVPorts)

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

type TiKVPreStop

type TiKVPreStop struct {
	// Image of pre stop checker
	// Default is pingcap/prestop-checker:latest
	Image *string `json:"image,omitempty"`
}

func (*TiKVPreStop) DeepCopy

func (in *TiKVPreStop) DeepCopy() *TiKVPreStop

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

func (*TiKVPreStop) DeepCopyInto

func (in *TiKVPreStop) DeepCopyInto(out *TiKVPreStop)

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

type TiKVServer

type TiKVServer struct {
	// Ports defines all ports listened by tikv
	Ports TiKVPorts `json:"ports,omitempty"`
}

func (*TiKVServer) DeepCopy

func (in *TiKVServer) DeepCopy() *TiKVServer

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

func (*TiKVServer) DeepCopyInto

func (in *TiKVServer) DeepCopyInto(out *TiKVServer)

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

type TiKVSpec

type TiKVSpec struct {
	// Cluster is a reference of tidb cluster
	Cluster ClusterReference `json:"cluster"`
	// Topology defines the topology domain of this pd instance
	// It will be translated into a node affinity config
	// Topology cannot be changed
	Topology Topology `json:"topology,omitempty"`
	// Subdomain means the subdomain of the exported tikv dns.
	// A same tikv group will use a same subdomain
	Subdomain string `json:"subdomain"`

	// TiKVTemplateSpec embedded some fields managed by TiKVGroup
	TiKVTemplateSpec `json:",inline"`
}

func (*TiKVSpec) DeepCopy

func (in *TiKVSpec) DeepCopy() *TiKVSpec

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

func (*TiKVSpec) DeepCopyInto

func (in *TiKVSpec) DeepCopyInto(out *TiKVSpec)

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

type TiKVStatus

type TiKVStatus struct {
	CommonStatus `json:",inline"`

	// Store ID
	ID string `json:"id,omitempty"`

	// Store State
	State string `json:"state,omitempty"`
}

func (*TiKVStatus) DeepCopy

func (in *TiKVStatus) DeepCopy() *TiKVStatus

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

func (*TiKVStatus) DeepCopyInto

func (in *TiKVStatus) DeepCopyInto(out *TiKVStatus)

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

type TiKVTemplate

type TiKVTemplate struct {
	ObjectMeta `json:"metadata,omitempty"`
	Spec       TiKVTemplateSpec `json:"spec"`
}

func (*TiKVTemplate) DeepCopy

func (in *TiKVTemplate) DeepCopy() *TiKVTemplate

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

func (*TiKVTemplate) DeepCopyInto

func (in *TiKVTemplate) DeepCopyInto(out *TiKVTemplate)

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

type TiKVTemplateSpec

type TiKVTemplateSpec struct {
	Version string `json:"version"`
	// Image is tikv's image
	// If tag is omitted, version will be used as the image tag.
	// Default is pingcap/tikv
	Image *string `json:"image,omitempty"`
	// Server defines the server config of TiKV
	Server TiKVServer `json:"server,omitempty"`
	// Resources defines resource required by TiKV
	Resources ResourceRequirements `json:"resources,omitempty"`
	// Config defines config file of TiKV
	Config         ConfigFile     `json:"config"`
	UpdateStrategy UpdateStrategy `json:"updateStrategy,omitempty"`
	// Volumes defines data volume of TiKV
	Volumes []Volume `json:"volumes"`

	// PreStop defines preStop config
	PreStop *TiKVPreStop `json:"preStop,omitempty"`
	// Overlay defines a k8s native resource template patch
	// All resources(pod, pvcs, ...) managed by TiKV can be overlayed by this field
	// +kubebuilder:validation:Schemaless
	// +kubebuilder:pruning:PreserveUnknownFields
	Overlay *Overlay `json:"overlay,omitempty"`
}

TiKVTemplateSpec can only be specified in TiKVGroup TODO: It's name may need to be changed to distinguish from PodTemplateSpec

func (*TiKVTemplateSpec) DeepCopy

func (in *TiKVTemplateSpec) DeepCopy() *TiKVTemplateSpec

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

func (*TiKVTemplateSpec) DeepCopyInto

func (in *TiKVTemplateSpec) DeepCopyInto(out *TiKVTemplateSpec)

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

type Topology

type Topology map[string]string

Topology means the topo for scheduling e.g. topology.kubernetes.io/zone: us-west-1a It will be translated to pod.spec.nodeSelector IMPORTANT: Topology is immutable for an instance

func (Topology) DeepCopy

func (in Topology) DeepCopy() Topology

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

func (Topology) DeepCopyInto

func (in Topology) DeepCopyInto(out *Topology)

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

type UpdateStrategy

type UpdateStrategy struct {
	// Config determines how the configuration change is applied to the cluster.
	// Valid values are "Restart" (by default) and "HotReload".
	// +kubebuilder:validation:Enum=Restart;HotReload
	// +kubebuilder:default="Restart"
	Config ConfigUpdateStrategy `json:"config,omitempty"`
}

func (*UpdateStrategy) DeepCopy

func (in *UpdateStrategy) DeepCopy() *UpdateStrategy

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

func (*UpdateStrategy) DeepCopyInto

func (in *UpdateStrategy) DeepCopyInto(out *UpdateStrategy)

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

type UpgradePolicy

type UpgradePolicy string
const (
	// UpgradePolicyDefault means the cluster will be upgraded in the following order:
	// PD, TiProxy, TiFlash, TiKV, TiDB.
	UpgradePolicyDefault UpgradePolicy = "Default"

	// UpgradePolicyNoConstraints means the cluster will be upgraded without any constraints,
	// all components will be upgraded at the same time.
	UpgradePolicyNoConstraints UpgradePolicy = "NoConstraints"
)

type Volume

type Volume struct {
	// Name is volume name.
	// If not specified, the PVC name will be "{component}-{podName}"
	Name string `json:"name,omitempty"`

	// Mounts defines mount infos of this volume
	Mounts []VolumeMount `json:"mounts"`

	// Storage defines the request size of this volume
	Storage resource.Quantity `json:"storage"`

	// StorageClassName means the storage class the volume used.
	// You can modify volumes' attributes by changing the StorageClass
	// when VolumeAttributesClass is not available.
	// Note that only newly created PV will use the new StorageClass.
	StorageClassName *string `json:"storageClassName,omitempty"`

	// VolumeAttributesClassName means the VolumeAttributesClass the volume used.
	// You can modify volumes' attributes by changing it.
	// This feature is introduced since K8s 1.29 as alpha feature and disabled by default.
	// It's only available when the feature is enabled.
	VolumeAttributesClassName *string `json:"volumeAttributesClassName,omitempty"`
}

Volume defines a persistent volume, it will be mounted at a specified root path A volume can be mounted for multiple different usages. For example, a volume can be mounted for both data and raft log.

func (*Volume) DeepCopy

func (in *Volume) DeepCopy() *Volume

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

func (*Volume) DeepCopyInto

func (in *Volume) DeepCopyInto(out *Volume)

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

type VolumeMount

type VolumeMount struct {
	// Type is a type of the volume mount.
	Type VolumeMountType `json:"type"`
	// Mount path of volume, if it's not set, use the default path of this type.
	// TODO: webhook for empty path if it's not a built-in type.
	MountPath string `json:"mountPath,omitempty"`
	// SubPath is the path of the volume's root path.
	SubPath string `json:"subPath,omitempty"`
}

func (*VolumeMount) DeepCopy

func (in *VolumeMount) DeepCopy() *VolumeMount

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

func (*VolumeMount) DeepCopyInto

func (in *VolumeMount) DeepCopyInto(out *VolumeMount)

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

type VolumeMountType

type VolumeMountType string
const (
	// VolumeMountTypePDData means data dir of PD
	VolumeMountTypePDData VolumeMountType = "data"

	VolumeMountPDDataDefaultPath = "/var/lib/pd"
)
const (
	// VolumeUsageTypeTiDBSlowLog means the data dir of slowlog
	// Users can define a persistent volume for slowlog, or an emptydir will be used.
	VolumeMountTypeTiDBSlowLog VolumeMountType = "slowlog"

	VolumeMountTiDBSlowLogDefaultPath = "/var/log/tidb"
)
const (
	// VolumeMountTypeTiFlashData is the main data dir for the tiflash
	VolumeMountTypeTiFlashData VolumeMountType = "data"

	VolumeMountTiFlashDataDefaultPath = "/var/lib/tiflash"
)
const (
	// VolumeMountTypeTiKVData is the main data dir for the tikv
	// The default sub path of this type is ""
	VolumeMountTypeTiKVData VolumeMountType = "data"

	VolumeMountTiKVDataDefaultPath = "/var/lib/tikv"
)

Jump to

Keyboard shortcuts

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