v1alpha1

package
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Feb 7, 2022 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the rds v1alpha1 API group +kubebuilder:object:generate=true +groupName=rds.hakurei.cn

Index

Constants

View Source
const (
	// ModeMGRMP cluster mode is mysql group replication multi primary
	ModeMGRMP ClusterMode = "MGRMP"
	// ModeMGRSP cluster mode is  mysql group replication single primary
	ModeMGRSP ClusterMode = "MGRSP"
	// ModeSemiSync cluster mode is  mysql semi sync
	ModeSemiSync ClusterMode = "SemiSync"

	MysqlPhaseNotReady    ClusterPhase = "NotReady"
	MysqlPhaseRunning     ClusterPhase = "Running"
	MysqlPhaseTerminating ClusterPhase = "Terminating"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "rds.hakurei.cn", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var SchemeGroupVersion = GroupVersion

SchemeGroupVersion is group version used to register these objects.

Functions

func Resource

func Resource(resource string) schema.GroupResource

Types

type BackupWebHookPostData

type BackupWebHookPostData struct {
	// Status backup CR status, values are [Pending Generating Done]
	// Pending mean pod is Created or Scheduling
	// Gernating mean pod is Running
	// Done mean pod is Completed
	Status string `json:"status"`
	// Path s3 path of this backup file
	Path string `json:"path"`
	// CreateTime create time of backup operation
	CreateTime string `json:"createTime"`
	// DoneTime backup oeration done time
	DoneTime string `json:"doneTime"`
	// backup file size bytes
	Size int64 `json:"size"`
	// CostSeconds how many seconds cost of backup operation, from create to finish
	CostSeconds int `json:"costSeconds"`
	// SourceServer backup file source server
	SourceServer string `json:"sourceServer"`
}

BackupWebHookPostData POST http body json Data

func (*BackupWebHookPostData) DeepCopy

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

func (*BackupWebHookPostData) DeepCopyInto

func (in *BackupWebHookPostData) DeepCopyInto(out *BackupWebHookPostData)

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

type CRDMysql added in v0.0.2

type CRDMysql struct {
	Name      string  `json:"name"`
	Namespace *string `json:"namespace,omitempty"`
	Port      *int    `json:"port,omitempty"`
}

func (*CRDMysql) DeepCopy added in v0.0.2

func (in *CRDMysql) DeepCopy() *CRDMysql

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

func (*CRDMysql) DeepCopyInto added in v0.0.2

func (in *CRDMysql) DeepCopyInto(out *CRDMysql)

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

type ClusterMode

type ClusterMode string

ClusterMode mysql cluster mode type

type ClusterPhase

type ClusterPhase string

ClusterPhase mysql cluster status

type CommonField

type CommonField struct {
	// Image main container image
	Image string `json:"image"`
	// ImagePullPolicy all pods image pull policy,value should keep with corev1.PullPolicy
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
	// Command container run command
	Command []string `json:"command,omitempty"`
	// Args container run args
	Args []string `json:"args,omitempty"`
	// Tolerations all pods tolerations,should keep with corev1.Toleration
	Tolerations []corev1.Toleration `json:"tolerations,omitempty" protobuf:"bytes,22,opt,name=tolerations"`
	// If specified, the pod's scheduling constraints
	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty" protobuf:"bytes,18,opt,name=affinity"`
	// ServiceAccountName is the name of the ServiceAccount to use to run this pod.
	// More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
	// +optional
	ServiceAccountName string `json:"serviceAccountName,omitempty" protobuf:"bytes,8,opt,name=serviceAccountName"`
	// StorageClassName all pods storage class name
	// TimeZone timezone string , for example Asia/Shanghai
	TimeZone string `json:"timeZone"`
	// PriorityClassName pod priority class name for all pods under CR resource
	PriorityClassName string `json:"priorityClassName,omitempty" protobuf:"bytes,24,opt,name=priorityClassName"`
	// Compute Resources required by this container.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty" protobuf:"bytes,8,opt,name=resources"`
	// Periodic probe of container liveness.
	// Container will be restarted if the probe fails.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
	// +optional
	LivenessProbe *corev1.Probe `json:"livenessProbe,omitempty" protobuf:"bytes,10,opt,name=livenessProbe"`
	// Periodic probe of container service readiness.
	// Container will be removed from service endpoints if the probe fails.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
	// +optional
	ReadinessProbe *corev1.Probe `json:"readinessProbe,omitempty" protobuf:"bytes,11,opt,name=readinessProbe"`
	// PVCRetentionSeconds pvc retention seconds after CR has been deleted
	// after pvc deleted, a deadline annotations will add to pvc.
	// if deadline reached (default time.Now().Unix() + PVCRetentionSeconds), and CR not found(filtered by labels), pvc will be deleted by operator.
	// if before deadline, a new CR with same labels of pvc created. pvc deadline annotation will be removed.
	// if this field value is nil, types.PVCDeleteRetentionSeconds will be default value to this field
	// if this field value is zero, pvc will alive forever
	PVCRetentionSeconds *int `json:"pvcRetentionSeconds,omitempty"`
}

func (*CommonField) DeepCopy

func (in *CommonField) DeepCopy() *CommonField

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

func (*CommonField) DeepCopyInto

func (in *CommonField) DeepCopyInto(out *CommonField)

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

type Mysql

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

	Spec   MysqlSpec   `json:"spec,omitempty"`
	Status MysqlStatus `json:"status,omitempty"`
}

Mysql is the Schema for the mysqls API

func (*Mysql) DeepCopy

func (in *Mysql) DeepCopy() *Mysql

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

func (*Mysql) DeepCopyInto

func (in *Mysql) DeepCopyInto(out *Mysql)

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

func (*Mysql) DeepCopyObject

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

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

type MysqlBackup

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

	Spec   MysqlBackupSpec   `json:"spec,omitempty"`
	Status MysqlBackupStatus `json:"status,omitempty"`
}

MysqlBackup is the Schema for the mysqls API

func (*MysqlBackup) DeepCopy

func (in *MysqlBackup) DeepCopy() *MysqlBackup

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

func (*MysqlBackup) DeepCopyInto

func (in *MysqlBackup) DeepCopyInto(out *MysqlBackup)

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

func (*MysqlBackup) DeepCopyObject

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

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

type MysqlBackupList

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

MysqlBackupList contains a list of Mysql

func (*MysqlBackupList) DeepCopy

func (in *MysqlBackupList) DeepCopy() *MysqlBackupList

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

func (*MysqlBackupList) DeepCopyInto

func (in *MysqlBackupList) DeepCopyInto(out *MysqlBackupList)

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

func (*MysqlBackupList) DeepCopyObject

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

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

type MysqlBackupSpec

type MysqlBackupSpec struct {
	CommonField `json:",inline"`
	// S3 use aws s3 object storage service for store backup files
	S3 *S3Config `json:"s3,omitempty"`
	// Mysql host for backup
	Address []MysqlHost `json:"address,omitempty"`
	// ClusterMode mysql cluster mode
	ClusterMode ClusterMode `json:"clusterMode"`
	// PVCName if pvc name is empty, a emptydir will be used as tmp storage for mysql backup files
	PVCName *string `json:"pvcName,omitempty"`
	// StorageSize mysql backup files tmp storage dir max size
	StorageSize string `json:"storageSize"`
	// Username username of all mysql hosts, used for this backup operation
	Username string `json:"username"`
	// Password password of all mysql hosts, used for this backup operation
	Password string `json:"password"`
	// Schedule k8s/linux cronjob schedule
	Schedule string `json:"schedule"`
	// UseZlibCompress use zlib compress for mysqlpump command
	// how to extra zlib compressed mysql backup file, see ???
	UseZlibCompress *bool `json:"useZlibCompress,omitempty"`
	// Webhook send backup file info POST to webhook url
	Webhook *Webhook `json:"webhook,omitempty"`
	// LockTable lock table when backup
	LockTable bool `json:"lockTable,omitempty"`
}

MysqlBackupSpec defines the desired state of Mysql

func (*MysqlBackupSpec) DeepCopy

func (in *MysqlBackupSpec) DeepCopy() *MysqlBackupSpec

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

func (*MysqlBackupSpec) DeepCopyInto

func (in *MysqlBackupSpec) DeepCopyInto(out *MysqlBackupSpec)

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

type MysqlBackupStatus

type MysqlBackupStatus struct {
	LastErrMsg string `json:"lastErrMsg,omitempty"`
	Phase      string `json:"phase,omitempty"`
}

MysqlBackupStatus defines the observed state of Mysql

func (*MysqlBackupStatus) DeepCopy

func (in *MysqlBackupStatus) DeepCopy() *MysqlBackupStatus

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

func (*MysqlBackupStatus) DeepCopyInto

func (in *MysqlBackupStatus) DeepCopyInto(out *MysqlBackupStatus)

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

type MysqlHost

type MysqlHost struct {
	Host string `json:"host"`
	Port int    `json:"port"`
}

MysqlHost mysql back server connection settings

func (*MysqlHost) DeepCopy

func (in *MysqlHost) DeepCopy() *MysqlHost

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

func (*MysqlHost) DeepCopyInto

func (in *MysqlHost) DeepCopyInto(out *MysqlHost)

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

type MysqlList

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

MysqlList contains a list of Mysql

func (*MysqlList) DeepCopy

func (in *MysqlList) DeepCopy() *MysqlList

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

func (*MysqlList) DeepCopyInto

func (in *MysqlList) DeepCopyInto(out *MysqlList)

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

func (*MysqlList) DeepCopyObject

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

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

type MysqlMGRSinglePrimaryOptions

type MysqlMGRSinglePrimaryOptions struct {
	// ApplierThreshold mysql mgr variable: loose-group_replication_flow_control_applier_threshold
	ApplierThreshold int `json:"applierThreshold,omitempty"`
	// MGRRtries mysql mgr variable: loose-group_replication_recovery_retry_count
	MGRRetries int `json:"mgrRetries,omitempty"`
}

MysqlMGRSinglePrimaryOptions mysql multi group replication single primary mode options

func (*MysqlMGRSinglePrimaryOptions) DeepCopy

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

func (*MysqlMGRSinglePrimaryOptions) DeepCopyInto

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

type MysqlMonitor added in v0.0.2

type MysqlMonitor struct {
	// User mysql user which have privileges to monitor mysql, if not exists, will auto create
	User *MysqlSimpleUserInfo `json:"user,omitempty"`
	// Image prom/mysqld-exporter image
	Image string `json:"image"`
	// Args container run args
	Args []string `json:"args,omitempty"`
	// Args
	// Interval service monitor interval
	Interval string `json:"interval,omitempty"`
	// Compute Resources required by this container.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty" protobuf:"bytes,8,opt,name=resources"`
	// Periodic probe of container liveness.
	// Container will be restarted if the probe fails.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
	// +optional
	LivenessProbe *corev1.Probe `json:"livenessProbe,omitempty" protobuf:"bytes,10,opt,name=livenessProbe"`
	// Periodic probe of container service readiness.
	// Container will be removed from service endpoints if the probe fails.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
	// +optional
	ReadinessProbe *corev1.Probe `json:"readinessProbe,omitempty" protobuf:"bytes,11,opt,name=readinessProbe"`
}

func (*MysqlMonitor) DeepCopy added in v0.0.2

func (in *MysqlMonitor) DeepCopy() *MysqlMonitor

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

func (*MysqlMonitor) DeepCopyInto added in v0.0.2

func (in *MysqlMonitor) DeepCopyInto(out *MysqlMonitor)

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

type MysqlSemiSyncOptions

type MysqlSemiSyncOptions struct {
	// DoubleMasterHA if true , mysql-0 and mysql-1 will be cluster masters,they copy data from each other
	DoubleMasterHA bool `json:"doubleMasterHA,omitempty"`
}

func (*MysqlSemiSyncOptions) DeepCopy

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

func (*MysqlSemiSyncOptions) DeepCopyInto

func (in *MysqlSemiSyncOptions) DeepCopyInto(out *MysqlSemiSyncOptions)

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

type MysqlSimpleUserInfo added in v0.0.2

type MysqlSimpleUserInfo struct {
	// Username mysql login account name
	Username string `json:"username"`
	// Password mysql login password of this user
	Password string `json:"password"`
}

func (*MysqlSimpleUserInfo) DeepCopy added in v0.0.2

func (in *MysqlSimpleUserInfo) DeepCopy() *MysqlSimpleUserInfo

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

func (*MysqlSimpleUserInfo) DeepCopyInto added in v0.0.2

func (in *MysqlSimpleUserInfo) DeepCopyInto(out *MysqlSimpleUserInfo)

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

type MysqlSpec

type MysqlSpec struct {
	CommonField `json:",inline"`
	// ClusterMode mysql cluster mode,values are [ MGRMP MGRSP SemiSync ]
	ClusterMode ClusterMode `json:"clusterMode"`
	// RootPassword mysql root password, if empty, an will allow empty password login
	RootPassword *string `json:"rootPassword,omitempty"`
	// StorageClassName kuberentes storage class name of this mysql pod
	StorageClassName string `json:"storageClassName"`
	// ConfigImage mysql initContainer for render mysql/proxysql config and boostrap mysql cluster
	ConfigImage string `json:"configImage"`
	// Replicas mysql cluster pod total count,contains master and slave
	Replicas *int32 `json:"replicas,omitempty"`
	// StorageSize pvc disk size
	StorageSize string `json:"storageSize"`
	// Whitelist most of time it's kuberenetes pod CIDR and service CIDR, for example []string{"10.24.0.0/16","10.25.0.0/16"}
	Whitelist []string `json:"whitelist"`
	// MGRSP mysql multi group replication single primary mode options
	MGRSP *MysqlMGRSinglePrimaryOptions `json:"mgrsp,omitempty"`
	// SemiSync mysql semi sync replication options
	SemiSync *MysqlSemiSyncOptions `json:"semiSync,omitempty"`
	// ExtraConfig write your own mysql config to override operator nested mysql config.
	// content will merge into ${extraConfigDir}/my.cnf
	ExtraConfig string `json:"extraConfig,omitempty"`
	// ExtraConfigDir my.cnf include dir
	ExtraConfigDir *string `json:"extraConfigDir,omitempty"`
	// Monitor mysql cluster monitor settings, if this field is not nil, will add mysql-exporter to mysql pod, add add prometheus operator kind:ServiceMonitor resource to mysql pod's namespace
	Monitor *MysqlMonitor `json:"monitor,omitempty"`
	// ClusterUser mysql cluster replication user
	ClusterUser *MysqlUser `json:"clusterUser,omitempty"`
	MaxConn     *int       `json:"maxConn,omitempty"`
}

MysqlSpec defines the desired state of Mysql

func (*MysqlSpec) DeepCopy

func (in *MysqlSpec) DeepCopy() *MysqlSpec

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

func (*MysqlSpec) DeepCopyInto

func (in *MysqlSpec) DeepCopyInto(out *MysqlSpec)

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

type MysqlStatus

type MysqlStatus struct {
	// Masters current mysql cluster masters
	Masters        []string     `json:"masters,omitempty"`
	Members        []string     `json:"members,omitempty"`
	HealthyMembers []string     `json:"healthyMembers,omitempty"`
	Phase          ClusterPhase `json:"phase,omitempty"`
}

MysqlStatus defines the observed state of Mysql

func (*MysqlStatus) DeepCopy

func (in *MysqlStatus) DeepCopy() *MysqlStatus

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

func (*MysqlStatus) DeepCopyInto

func (in *MysqlStatus) DeepCopyInto(out *MysqlStatus)

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

type MysqlUser

type MysqlUser struct {
	MysqlSimpleUserInfo `json:",inline"`
	// Privileges mysql grant sql privileges, for example : []stirng{ "SELECT" ,"REPLICATION CLIENT"} or []string{"ALL PRIVILEGES"}
	Privileges []string `json:"privileges"`
	// Domain user login domain , for example : '%'
	Domain string `json:"domain"`
	// DatabaseTarget which database or tables will granted privileges to this user.
	// for example : grant all privileges on *.* to user xxx@'%' indentified by 'xxxxx', in this case, DatabaseTarget value should be '*.*'
	DatabaseTarget string `json:"databaseTarget"`
}

MysqlUser mysql user settings

func (*MysqlUser) DeepCopy

func (in *MysqlUser) DeepCopy() *MysqlUser

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

func (*MysqlUser) DeepCopyInto

func (in *MysqlUser) DeepCopyInto(out *MysqlUser)

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

type PodSettings

type PodSettings struct {
	Labels      map[string]string `json:"labels,omitempty"`
	Annotations map[string]string `json:"annotations,omitempty"`
}

PodSettings pod settings

func (*PodSettings) DeepCopy

func (in *PodSettings) DeepCopy() *PodSettings

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

func (*PodSettings) DeepCopyInto

func (in *PodSettings) DeepCopyInto(out *PodSettings)

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

type Predixy

type Predixy struct {
	// Image redis cluster proxy image
	Image string `json:"image"`
	// Replicas redis cluster proxy pod relicas
	Replicas *int32 `json:"replicas,omitempty"`
	// Command redis cluster proxy container command
	Command []string `json:"command,omitempty"`
	// Command redis cluster proxy container command args
	Args []string `json:"args,omitempty"`
	// NodePort nodePort of redis cluster proxy service
	// if value is nil, no nodePort will be created
	// if value is 0, nodePort number is allocted by kuberentes with random number
	// if value is not nil and not equal 0, nodePort number is your specific number
	NodePort *int32 `json:"nodePort,omitempty"`
	// Compute Resources required by this container.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty" protobuf:"bytes,8,opt,name=resources"`
	// Periodic probe of container liveness.
	// Container will be restarted if the probe fails.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
	// +optional
	LivenessProbe *corev1.Probe `json:"livenessProbe,omitempty" protobuf:"bytes,10,opt,name=livenessProbe"`
	// Periodic probe of container service readiness.
	// Container will be removed from service endpoints if the probe fails.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
	// +optional
	ReadinessProbe *corev1.Probe `json:"readinessProbe,omitempty" protobuf:"bytes,11,opt,name=readinessProbe"`
}

func (*Predixy) DeepCopy

func (in *Predixy) DeepCopy() *Predixy

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

func (*Predixy) DeepCopyInto

func (in *Predixy) DeepCopyInto(out *Predixy)

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

type ProxySQL

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

	Spec   ProxySQLSpec   `json:"spec,omitempty"`
	Status ProxySQLStatus `json:"status,omitempty"`
}

ProxySQL is the Schema for the ProxySQLs API

func (*ProxySQL) DeepCopy

func (in *ProxySQL) DeepCopy() *ProxySQL

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

func (*ProxySQL) DeepCopyInto

func (in *ProxySQL) DeepCopyInto(out *ProxySQL)

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

func (*ProxySQL) DeepCopyObject

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

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

type ProxySQLBackendMysql added in v0.0.2

type ProxySQLBackendMysql struct {
	// CRD CRDMysql connect mysql.rds.hakurei.cn/v1alpha1 pods
	CRD *CRDMysql `json:"crd,omitempty"`
	// Remote mysql backend servers with host:port list. if field ProxySQLBackendMysql.CRD declered and not nil, this field will not working
	Remote []MysqlHost `json:"remote,omitempty"`
}

func (*ProxySQLBackendMysql) DeepCopy added in v0.0.2

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

func (*ProxySQLBackendMysql) DeepCopyInto added in v0.0.2

func (in *ProxySQLBackendMysql) DeepCopyInto(out *ProxySQLBackendMysql)

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

type ProxySQLClientUser added in v0.0.2

type ProxySQLClientUser struct {
	MysqlSimpleUserInfo `json:",inline"`
	DefaultHostGroup    int `json:"defaultHostGroup"`
}

func (*ProxySQLClientUser) DeepCopy added in v0.0.2

func (in *ProxySQLClientUser) DeepCopy() *ProxySQLClientUser

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

func (*ProxySQLClientUser) DeepCopyInto added in v0.0.2

func (in *ProxySQLClientUser) DeepCopyInto(out *ProxySQLClientUser)

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

type ProxySQLList

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

ProxySQLList contains a list of ProxySQL

func (*ProxySQLList) DeepCopy

func (in *ProxySQLList) DeepCopy() *ProxySQLList

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

func (*ProxySQLList) DeepCopyInto

func (in *ProxySQLList) DeepCopyInto(out *ProxySQLList)

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

func (*ProxySQLList) DeepCopyObject

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

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

type ProxySQLSpec

type ProxySQLSpec struct {
	CommonField `json:",inline"`
	// StorageClassName all pods storage class name
	StorageClassName string `json:"storageClassName"`
	// MysqlVersion specific version text will return to mysql client that connected on proxysql
	MysqlVersion string `json:"mysqlVersion"`
	// NodePort  nodeport of proxysql service
	// if this value is nil, means no nodePort should be open
	// if this value is zero, means open random nodePort
	// if this value is greater than zero, means open a specific nodePort
	NodePort *int32 `json:"nodePort,omitempty"`
	// Replicas proxysql pod total count,contains master and slave
	Replicas *int32 `json:"replicas,omitempty"`
	// StorageSize pvc disk size
	StorageSize string `json:"storageSize"`
	// ConfigImage proxysql initContainer for render proxysql config
	ConfigImage string `json:"configImage"`

	// Mysql mysql backend servers
	Mysqls ProxySQLBackendMysql `json:"mysqls"`
	// FrontendUsers proxysql use theese users to connect mysql server and exec sql query
	BackendUsers []ProxySQLClientUser `json:"backendUsers"`
	// FrontendUsers mysql client use theese users connect proxysql
	FrontendUsers []ProxySQLClientUser `json:"frontedUsers"`
	// AdminUsers proxysql admin users list
	AdminUsers []MysqlSimpleUserInfo `json:"adminUsers"`
	// ClusterUser proxysql cluster peers user, not mysql user
	ClusterUser MysqlSimpleUserInfo `json:"clusterUser"`
	// MonitorUser proxysql use this user to connect and monitor mysql server
	MonitorUser MysqlSimpleUserInfo `json:"monitorUser"`
	// ClusterMode mysql cluster mode
	ClusterMode ClusterMode `json:"clusterMode"`
	// MysqlMaxConn max connections per mysql instance
	MysqlMaxConn int `json:"mysqlMaxConn"`
}

ProxySQLSpec defines the desired state of ProxySQL mysql 8 admin-hash_passwords=false https://www.cnblogs.com/9527l/p/12435675.html https://kitcharoenp.github.io/mysql/2020/07/18/proxysql2_backend_users_config.html https://www.jianshu.com/p/e22b149ba270

func (*ProxySQLSpec) DeepCopy

func (in *ProxySQLSpec) DeepCopy() *ProxySQLSpec

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

func (*ProxySQLSpec) DeepCopyInto

func (in *ProxySQLSpec) DeepCopyInto(out *ProxySQLSpec)

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

type ProxySQLStatus

type ProxySQLStatus struct {
}

ProxySQLStatus defines the observed state of ProxySQL

func (*ProxySQLStatus) DeepCopy

func (in *ProxySQLStatus) DeepCopy() *ProxySQLStatus

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

func (*ProxySQLStatus) DeepCopyInto

func (in *ProxySQLStatus) DeepCopyInto(out *ProxySQLStatus)

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

type Redis

type Redis struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              RedisSpec   `json:"spec,omitempty"`
	Status            RedisStatus `json:"status,omitempty"`
}

Redis redis cluster CRD

func (*Redis) DeepCopy

func (in *Redis) DeepCopy() *Redis

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

func (*Redis) DeepCopyInto

func (in *Redis) DeepCopyInto(out *Redis)

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

func (*Redis) DeepCopyObject

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

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

type RedisClusterProxy

type RedisClusterProxy struct {
	// Image redis cluster proxy image
	Image string `json:"image"`
	// Replicas redis cluster proxy pod relicas
	Replicas *int32 `json:"replicas,omitempty"`
	// Command redis cluster proxy container command
	Command []string `json:"command,omitempty"`
	// Command redis cluster proxy container command args
	Args []string `json:"args,omitempty"`
	// NodePort nodePort of redis cluster proxy service
	// if value is nil, no nodePort will be created
	// if value is 0, nodePort number is allocted by kuberentes with random number
	// if value is not nil and not equal 0, nodePort number is your specific number
	NodePort *int32 `json:"nodePort,omitempty"`
	// Compute Resources required by this container.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty" protobuf:"bytes,8,opt,name=resources"`
	// Periodic probe of container liveness.
	// Container will be restarted if the probe fails.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
	// +optional
	LivenessProbe *corev1.Probe `json:"livenessProbe,omitempty" protobuf:"bytes,10,opt,name=livenessProbe"`
	// Periodic probe of container service readiness.
	// Container will be removed from service endpoints if the probe fails.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
	// +optional
	ReadinessProbe *corev1.Probe `json:"readinessProbe,omitempty" protobuf:"bytes,11,opt,name=readinessProbe"`
}

func (*RedisClusterProxy) DeepCopy

func (in *RedisClusterProxy) DeepCopy() *RedisClusterProxy

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

func (*RedisClusterProxy) DeepCopyInto

func (in *RedisClusterProxy) DeepCopyInto(out *RedisClusterProxy)

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

type RedisList

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

RedisList a list of Redis

func (*RedisList) DeepCopy

func (in *RedisList) DeepCopy() *RedisList

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

func (*RedisList) DeepCopyInto

func (in *RedisList) DeepCopyInto(out *RedisList)

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

func (*RedisList) DeepCopyObject

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

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

type RedisMonitor added in v0.0.2

type RedisMonitor struct {
	// Image oliver006/redis_exporter image
	Image string `json:"image"`
	// Args container run args
	Args []string `json:"args,omitempty"`
	// Args
	// Interval service monitor interval
	Interval string `json:"interval,omitempty"`
	// Compute Resources required by this container.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty" protobuf:"bytes,8,opt,name=resources"`
	// Periodic probe of container liveness.
	// Container will be restarted if the probe fails.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
	// +optional
	LivenessProbe *corev1.Probe `json:"livenessProbe,omitempty" protobuf:"bytes,10,opt,name=livenessProbe"`
	// Periodic probe of container service readiness.
	// Container will be removed from service endpoints if the probe fails.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
	// +optional
	ReadinessProbe *corev1.Probe `json:"readinessProbe,omitempty" protobuf:"bytes,11,opt,name=readinessProbe"`
}

func (*RedisMonitor) DeepCopy added in v0.0.2

func (in *RedisMonitor) DeepCopy() *RedisMonitor

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

func (*RedisMonitor) DeepCopyInto added in v0.0.2

func (in *RedisMonitor) DeepCopyInto(out *RedisMonitor)

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

type RedisServer

type RedisServer struct {
	// Image redis server image
	Image string `json:"image"`
	// StorageSize pvc disk size
	StorageSize string `json:"storageSize"`
	// BackupMethod data backup method, valid value is [ AOF RDB ]
	BackupMethod string `json:"backupMethod,omitempty"`
	// Command redis container command
	Command []string `json:"command,omitempty"`
	// Command redis container command args
	Args []string `json:"args,omitempty"`
	// Periodic probe of container liveness.
	// Container will be restarted if the probe fails.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
	// +optional
	LivenessProbe *corev1.Probe `json:"livenessProbe,omitempty" protobuf:"bytes,10,opt,name=livenessProbe"`
	// Periodic probe of container service readiness.
	// Container will be removed from service endpoints if the probe fails.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
	// +optional
	ReadinessProbe *corev1.Probe `json:"readinessProbe,omitempty" protobuf:"bytes,11,opt,name=readinessProbe"`
}

func (*RedisServer) DeepCopy

func (in *RedisServer) DeepCopy() *RedisServer

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

func (*RedisServer) DeepCopyInto

func (in *RedisServer) DeepCopyInto(out *RedisServer)

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

type RedisSpec

type RedisSpec struct {
	// Password 密码
	Password *string `json:"password,omitempty"`
	// Replicas redis副本数量
	MasterReplicas int `json:"masterReplicas"`
	// DataReplicas 数据副本数
	DataReplicas int `json:"dataReplicas"`
	// StorageClassName all pods storage class name
	StorageClassName string `json:"storageClassName"`
	// ImagePullPolicy all pods image pull policy,value should keep with corev1.PullPolicy
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
	Redis           RedisServer       `json:"redis"`
	// RedisClusterProxy use redislabs redis cluster proxy as cluster proxy
	RedisClusterProxy *RedisClusterProxy `json:"redisClusterProxy,omitempty"`
	// Predixy use predixy as redis cluster proxy
	Predixy *Predixy `json:"predixy,omitempty"`
	// TimeZone TZ envirtoment virable for all pods
	TimeZone string `json:"timeZone"`
	// Tolerations all pods tolerations,should keep with corev1.Toleration
	Tolerations []corev1.Toleration `json:"tolerations,omitempty" protobuf:"bytes,22,opt,name=tolerations"`
	// If specified, the pod's scheduling constraints
	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty" protobuf:"bytes,18,opt,name=affinity"`
	// ServiceAccountName is the name of the ServiceAccount to use to run this pod.
	// More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
	// +optional
	ServiceAccountName string `json:"serviceAccountName,omitempty" protobuf:"bytes,8,opt,name=serviceAccountName"`
	// Compute Resources required by this container.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty" protobuf:"bytes,8,opt,name=resources"`
	// PriorityClassName redis and redis-cluster-proxy pods pod priority class name
	PriorityClassName string        `json:"priorityClassName,omitempty" protobuf:"bytes,24,opt,name=priorityClassName"`
	Monitor           *RedisMonitor `json:"monitor,omitempty"`
}

RedisSpec redis cluster spec

func (*RedisSpec) DeepCopy

func (in *RedisSpec) DeepCopy() *RedisSpec

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

func (*RedisSpec) DeepCopyInto

func (in *RedisSpec) DeepCopyInto(out *RedisSpec)

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

type RedisStatus

type RedisStatus struct {
	// Masters current redis cluster masters
	Masters []string `json:"masters"`
}

RedisStatus bootstrap process status

func (*RedisStatus) DeepCopy

func (in *RedisStatus) DeepCopy() *RedisStatus

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

func (*RedisStatus) DeepCopyInto

func (in *RedisStatus) DeepCopyInto(out *RedisStatus)

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

type S3Config

type S3Config struct {
	AccessKey       string `json:"accessKey"`
	SecretAccessKey string `json:"secretAccessKey"`
	Endpoint        string `json:"endpoint"`
	Bucket          string `json:"bucket"`
	Path            string `json:"path"`
}

S3Config aws s3 object storage server config

func (*S3Config) DeepCopy

func (in *S3Config) DeepCopy() *S3Config

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

func (*S3Config) DeepCopyInto

func (in *S3Config) DeepCopyInto(out *S3Config)

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

type Webhook

type Webhook struct {
	// URL http request url
	URL string `json:"url"`
	// Password http basic auth username
	Username string `json:"username,omitempty"`
	// Password http basic auth password
	Password string `json:"password,omitempty"`
	// Headers http header fields, set cookie or some bearToken in this filed
	Headers map[string]string `json:"headers,omitempty"`
	// DeleteResource if this field value is true, webhook post return http response code 200 and content is "ok", then delete MysqlBackup Custom Resource
	// when backup job type is cronjob , must set this field value to false
	DeleteResource bool `json:"deleteResource,omitempty"`
}

func (*Webhook) DeepCopy

func (in *Webhook) DeepCopy() *Webhook

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

func (*Webhook) DeepCopyInto

func (in *Webhook) DeepCopyInto(out *Webhook)

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

Jump to

Keyboard shortcuts

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