v1alpha1

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Aug 27, 2025 License: Apache-2.0 Imports: 4 Imported by: 2

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the compose-operator v1alpha1 API group +kubebuilder:object:generate=true +groupName=upm.syntropycloud.io

Index

Constants

View Source
const (
	ConditionTypeTopologyReady = "TopologyReady"
	ConditionTypeResourceReady = "ResourceReady"
	ConditionTypeUserReady     = "UserReady"
	ConditionTypeServerReady   = "ServerReady"
)
View Source
const SkipReconcileKey = "compose-operator.skip.reconcile"

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "upm.syntropycloud.io", 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
)

Functions

func DefaultMongoDBReplicasetOwnerReferences added in v1.1.0

func DefaultMongoDBReplicasetOwnerReferences(instance *MongoDBReplicaset) []metav1.OwnerReference

func DefaultMysqlReplicationOwnerReferences

func DefaultMysqlReplicationOwnerReferences(instance *MysqlReplication) []metav1.OwnerReference

func DefaultPostgresReplicationOwnerReferences

func DefaultPostgresReplicationOwnerReferences(instance *PostgresReplication) []metav1.OwnerReference

func DefaultRedisReplicationOwnerReferences

func DefaultRedisReplicationOwnerReferences(instance *RedisReplication) []metav1.OwnerReference

Types

type CommonNode

type CommonNode struct {
	// Name specifies the identifier of node
	Name string `json:"name"`

	// Host specifies the ip or hostname of node
	Host string `json:"host"`

	// Port specifies the port of node
	Port int `json:"port"`
}

CommonNode information for node to connect

func (*CommonNode) DeepCopy

func (in *CommonNode) DeepCopy() *CommonNode

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

func (*CommonNode) DeepCopyInto

func (in *CommonNode) DeepCopyInto(out *CommonNode)

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

type CommonNodes

type CommonNodes []*CommonNode

CommonNodes array Node

func (CommonNodes) DeepCopy

func (in CommonNodes) DeepCopy() CommonNodes

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

func (CommonNodes) DeepCopyInto

func (in CommonNodes) DeepCopyInto(out *CommonNodes)

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

type MongoDBReplicaset added in v1.1.0

type MongoDBReplicaset struct {
	// The metadata for the API version and kind of the MongoDBReplicaset.
	metav1.TypeMeta `json:",inline"`

	// The metadata for the MongoDBReplicaset object, including name, namespace, labels, and annotations.
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Defines the desired state of the MongoDBReplicaset.
	Spec MongoDBReplicasetSpec `json:"spec,omitempty"`

	// Populated by the system, it represents the current information about the MongoDBReplicaset.
	Status MongoDBReplicasetStatus `json:"status,omitempty"`
}

MongoDBReplicaset is the Schema for the MongoDB Replica Set API +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:shortName=mrs +kubebuilder:printcolumn:name="READY",type=boolean,JSONPath=`.status.ready` +kubebuilder:printcolumn:name="REPLICA_SET",type=string,JSONPath=`.spec.replicaSetName` +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"

func (*MongoDBReplicaset) DeepCopy added in v1.1.0

func (in *MongoDBReplicaset) DeepCopy() *MongoDBReplicaset

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

func (*MongoDBReplicaset) DeepCopyInto added in v1.1.0

func (in *MongoDBReplicaset) DeepCopyInto(out *MongoDBReplicaset)

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

func (*MongoDBReplicaset) DeepCopyObject added in v1.1.0

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

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

type MongoDBReplicasetList added in v1.1.0

type MongoDBReplicasetList struct {
	// Contains the metadata for the API objects, including the Kind and Version of the object.
	metav1.TypeMeta `json:",inline"`

	// Contains the metadata for the list objects, including the continue and remainingItemCount for the list.
	metav1.ListMeta `json:"metadata,omitempty"`

	// Contains the list of MongoDBReplicaset.
	Items []MongoDBReplicaset `json:"items"`
}

MongoDBReplicasetList contains a list of MongoDBReplicaset +kubebuilder:object:root=true

func (*MongoDBReplicasetList) DeepCopy added in v1.1.0

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

func (*MongoDBReplicasetList) DeepCopyInto added in v1.1.0

func (in *MongoDBReplicasetList) DeepCopyInto(out *MongoDBReplicasetList)

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

func (*MongoDBReplicasetList) DeepCopyObject added in v1.1.0

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

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

type MongoDBReplicasetNode added in v1.1.0

type MongoDBReplicasetNode struct {
	// Host indicates the host of the MongoDB node.
	Host string `json:"host"`

	// Port indicates the port of the MongoDB node.
	Port int `json:"port"`

	// Role represents the role of the node in the replica set topology (e.g., primary, secondary, arbiter).
	Role MongoDBReplicasetRole `json:"role"`

	// Status indicates whether the node is ready for reads and writes.
	Status NodeStatus `json:"status"`

	// State indicates the replica set member state of the MongoDB node.
	State string `json:"state"`
}

func (*MongoDBReplicasetNode) DeepCopy added in v1.1.0

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

func (*MongoDBReplicasetNode) DeepCopyInto added in v1.1.0

func (in *MongoDBReplicasetNode) DeepCopyInto(out *MongoDBReplicasetNode)

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

type MongoDBReplicasetRole added in v1.1.0

type MongoDBReplicasetRole string

MongoDBReplicasetRole defines the mongodb replica set role

const (
	// MongoDBReplicasetNodeRolePrimary MongoDB Replica Set Primary node role
	MongoDBReplicasetNodeRolePrimary MongoDBReplicasetRole = "Primary"
	// MongoDBReplicasetNodeRoleSecondary MongoDB Replica Set Secondary node role
	MongoDBReplicasetNodeRoleSecondary MongoDBReplicasetRole = "Secondary"
	// MongoDBReplicasetNodeRoleArbiter MongoDB Replica Set Arbiter node role
	MongoDBReplicasetNodeRoleArbiter MongoDBReplicasetRole = "Arbiter"
	// MongoDBReplicasetNodeRoleNone MongoDB Replica Set None node role
	MongoDBReplicasetNodeRoleNone MongoDBReplicasetRole = "None"
)

type MongoDBReplicasetSecret added in v1.1.0

type MongoDBReplicasetSecret struct {
	// Name is the name of the secret resource which store authentication information for MongoDB.
	Name string `json:"name"`
	// Mongod is the key of the secret, which contains the value used to connect to MongoDB.
	// +kubebuilder:default:=mongod
	Mongod string `json:"mongod"`
}

MongoDBReplicasetSecret defines the secret information of MongoDBReplicaset

func (*MongoDBReplicasetSecret) DeepCopy added in v1.1.0

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

func (*MongoDBReplicasetSecret) DeepCopyInto added in v1.1.0

func (in *MongoDBReplicasetSecret) DeepCopyInto(out *MongoDBReplicasetSecret)

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

type MongoDBReplicasetSpec added in v1.1.0

type MongoDBReplicasetSpec struct {

	// Secret is the reference to the secret resource containing authentication information, it must be in the same namespace as the MongoDBReplicaset object.
	Secret MongoDBReplicasetSecret `json:"secret"`

	// Member is a list of nodes in the MongoDB Replica Set topology.
	Member CommonNodes `json:"member"`

	// ReplicaSetName is the name of the MongoDB replica set.
	ReplicaSetName string `json:"replicaSetName"`
}

MongoDBReplicasetSpec defines the desired state of MongoDBReplicaset

func (*MongoDBReplicasetSpec) DeepCopy added in v1.1.0

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

func (*MongoDBReplicasetSpec) DeepCopyInto added in v1.1.0

func (in *MongoDBReplicasetSpec) DeepCopyInto(out *MongoDBReplicasetSpec)

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

type MongoDBReplicasetStatus added in v1.1.0

type MongoDBReplicasetStatus struct {
	// Topology indicates the current MongoDB Replica Set topology.
	Topology MongoDBReplicasetTopology `json:"topology"`

	// Ready indicates whether this MongoDBReplicaset object is ready or not.
	Ready bool `json:"ready"`

	// Represents a list of detailed status of the MongoDBReplicaset object.
	// Each condition in the list provides real-time information about certain aspect of the MongoDBReplicaset object.
	//
	// This field is crucial for administrators and developers to monitor and respond to changes within the MongoDBReplicaset.
	// It provides a history of state transitions and a snapshot of the current state that can be used for
	// automated logic or direct inspection.
	//
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

MongoDBReplicasetStatus defines the observed state of MongoDBReplicaset

func (*MongoDBReplicasetStatus) DeepCopy added in v1.1.0

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

func (*MongoDBReplicasetStatus) DeepCopyInto added in v1.1.0

func (in *MongoDBReplicasetStatus) DeepCopyInto(out *MongoDBReplicasetStatus)

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

type MongoDBReplicasetTopology added in v1.1.0

type MongoDBReplicasetTopology map[string]*MongoDBReplicasetNode

func (MongoDBReplicasetTopology) DeepCopy added in v1.1.0

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

func (MongoDBReplicasetTopology) DeepCopyInto added in v1.1.0

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

type MysqlGroupReplication

type MysqlGroupReplication struct {
	// The metadata for the API version and kind of the MysqlReplication.
	metav1.TypeMeta `json:",inline"`

	// The metadata for the MysqlReplication object, including name, namespace, labels, and annotations.
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Defines the desired state of the MysqlGroupReplication.
	Spec MysqlGroupReplicationSpec `json:"spec,omitempty"`

	// Populated by the system, it represents the current information about the MysqlGroupReplication.
	Status MysqlGroupReplicationStatus `json:"status,omitempty"`
}

MysqlGroupReplication is the Schema for the Mysql Group Replication API +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:shortName=mgr +kubebuilder:printcolumn:name="READY",type=boolean,JSONPath=`.status.ready` +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"

func (*MysqlGroupReplication) DeepCopy

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

func (*MysqlGroupReplication) DeepCopyInto

func (in *MysqlGroupReplication) DeepCopyInto(out *MysqlGroupReplication)

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

func (*MysqlGroupReplication) DeepCopyObject

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

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

type MysqlGroupReplicationList

type MysqlGroupReplicationList struct {
	// Contains the metadata for the API objects, including the Kind and Version of the object.
	metav1.TypeMeta `json:",inline"`

	// Contains the metadata for the list objects, including the continue and remainingItemCount for the list.
	metav1.ListMeta `json:"metadata,omitempty"`

	// Contains the list of MysqlGroupReplication.
	Items []MysqlGroupReplication `json:"items"`
}

MysqlGroupReplicationList contains a list of MysqlGroupReplication +kubebuilder:object:root=true

func (*MysqlGroupReplicationList) DeepCopy

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

func (*MysqlGroupReplicationList) DeepCopyInto

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

func (*MysqlGroupReplicationList) DeepCopyObject

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

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

type MysqlGroupReplicationNode

type MysqlGroupReplicationNode struct {
	// Host indicates the host of the MySQL node.
	Host string `json:"host"`

	// Port indicates the port of the MySQL node.
	Port int `json:"port"`

	// Role represents the role of the node in the group replication topology (e.g., primary, secondary).
	Role MysqlGroupReplicationRole `json:"role"`

	// Ready indicates whether the node is ready for reads and writes.
	Status NodeStatus `json:"status"`

	// GtidExecuted indicates the gtid_executed of the MySQL node.
	GtidExecuted string `json:"gtidExecuted"`

	// MemberState indicates the member_state of the MySQL node.
	MemberState string `json:"memberState"`

	// ReadOnly specifies whether the node is read-only.
	ReadOnly bool `json:"readonly"`

	// SuperReadOnly specifies whether the node is super-read-only (i.e., cannot even write to its own database).
	SuperReadOnly bool `json:"superReadonly"`
}

func (*MysqlGroupReplicationNode) DeepCopy

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

func (*MysqlGroupReplicationNode) DeepCopyInto

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

type MysqlGroupReplicationRole

type MysqlGroupReplicationRole string

MysqlGroupReplicationRole defines the mysql group replication role

const (
	// MysqlGroupReplicationNodeRolePrimary MysqlGroupReplication Primary node role
	MysqlGroupReplicationNodeRolePrimary MysqlGroupReplicationRole = "Primary"
	// MysqlGroupReplicationNodeRoleSecondary MysqlGroupReplication Secondary node role
	MysqlGroupReplicationNodeRoleSecondary MysqlGroupReplicationRole = "Secondary"
	// MysqlGroupReplicationNodeRoleNone MysqlGroupReplication None node role
	MysqlGroupReplicationNodeRoleNone MysqlGroupReplicationRole = "None"
)

type MysqlGroupReplicationSecret

type MysqlGroupReplicationSecret struct {
	// Name is the name of the secret resource which store authentication information for MySQL.
	Name string `json:"name"`
	//  Mysql is the key of the secret, which contains the value used to connect to MySQL.
	// +kubebuilder:default:=mysql
	Mysql string `json:"mysql"`
	// Replication is the key of the secret, which contains the value used to set up MySQL Group Replication.
	// +kubebuilder:default:=replication
	Replication string `json:"replication"`
}

MysqlGroupReplicationSecret defines the secret information of MysqlGroupReplication

func (*MysqlGroupReplicationSecret) DeepCopy

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

func (*MysqlGroupReplicationSecret) DeepCopyInto

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

type MysqlGroupReplicationSpec

type MysqlGroupReplicationSpec struct {

	// Secret is the reference to the secret resource containing authentication information, it must be in the same namespace as the MysqlGroupReplication object.
	Secret MysqlGroupReplicationSecret `json:"secret"`

	// Member is a list of nodes in the MySQL Group Replication topology.
	Member CommonNodes `json:"member"`
}

MysqlGroupReplicationSpec defines the desired state of MysqlGroupReplication

func (*MysqlGroupReplicationSpec) DeepCopy

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

func (*MysqlGroupReplicationSpec) DeepCopyInto

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

type MysqlGroupReplicationStatus

type MysqlGroupReplicationStatus struct {
	// Topology indicates the current MySQL Group Replication topology.
	Topology MysqlGroupReplicationTopology `json:"topology"`

	// Ready indicates whether this MysqlGroupReplication object is ready or not.
	Ready bool `json:"ready"`

	// Represents a list of detailed status of the MysqlGroupReplication object.
	// Each condition in the list provides real-time information about certain aspect of the MysqlGroupReplication object.
	//
	// This field is crucial for administrators and developers to monitor and respond to changes within the MysqlGroupReplication.
	// It provides a history of state transitions and a snapshot of the current state that can be used for
	// automated logic or direct inspection.
	//
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

MysqlGroupReplicationStatus defines the observed state of MysqlGroupReplication

func (*MysqlGroupReplicationStatus) DeepCopy

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

func (*MysqlGroupReplicationStatus) DeepCopyInto

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

type MysqlGroupReplicationTopology

type MysqlGroupReplicationTopology map[string]*MysqlGroupReplicationNode

func (MysqlGroupReplicationTopology) DeepCopy

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

func (MysqlGroupReplicationTopology) DeepCopyInto

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

type MysqlReplication

type MysqlReplication struct {
	// The metadata for the API version and kind of the MysqlReplication.
	metav1.TypeMeta `json:",inline"`

	// The metadata for the MysqlReplication object, including name, namespace, labels, and annotations.
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Defines the desired state of the MysqlReplication.
	Spec MysqlReplicationSpec `json:"spec,omitempty"`

	// Populated by the system, it represents the current information about the MysqlReplication.
	Status MysqlReplicationStatus `json:"status,omitempty"`
}

MysqlReplication is the Schema for the Mysql Replication API +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:shortName=mr +kubebuilder:printcolumn:name="READY",type=boolean,JSONPath=`.status.ready` +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"

func (*MysqlReplication) DeepCopy

func (in *MysqlReplication) DeepCopy() *MysqlReplication

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

func (*MysqlReplication) DeepCopyInto

func (in *MysqlReplication) DeepCopyInto(out *MysqlReplication)

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

func (*MysqlReplication) DeepCopyObject

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

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

type MysqlReplicationList

type MysqlReplicationList struct {
	// Contains the metadata for the API objects, including the Kind and Version of the object.
	metav1.TypeMeta `json:",inline"`

	// Contains the metadata for the list objects, including the continue and remainingItemCount for the list.
	metav1.ListMeta `json:"metadata,omitempty"`

	// Contains the list of MysqlReplication.
	Items []MysqlReplication `json:"items"`
}

MysqlReplicationList contains a list of MysqlReplication +kubebuilder:object:root=true

func (*MysqlReplicationList) DeepCopy

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

func (*MysqlReplicationList) DeepCopyInto

func (in *MysqlReplicationList) DeepCopyInto(out *MysqlReplicationList)

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

func (*MysqlReplicationList) DeepCopyObject

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

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

type MysqlReplicationMode

type MysqlReplicationMode string

MysqlReplicationMode describes how the mysql replication will be handled. Only one of the following sync mode must be specified. +kubebuilder:validation:Enum=rpl_async;rpl_semi_sync

const (
	MysqlRplASync    MysqlReplicationMode = "rpl_async"
	MysqlRplSemiSync MysqlReplicationMode = "rpl_semi_sync"
)

type MysqlReplicationNode

type MysqlReplicationNode struct {
	// Host indicates the host of the MySQL node.
	Host string `json:"host"`

	// Port indicates the port of the MySQL node.
	Port int `json:"port"`

	// Role represents the role of the node in the replication topology (e.g., source, replica).
	Role MysqlReplicationRole `json:"role"`

	// Status indicates the current status of the node (e.g., Healthy, Failed).
	Status NodeStatus `json:"status"`

	// Ready indicates whether the node is ready for reads and writes.
	Ready bool `json:"ready"`

	// ReadOnly specifies whether the node is read-only.
	ReadOnly bool `json:"readonly"`

	// SuperReadOnly specifies whether the node is super-read-only (i.e., cannot even write to its own database).
	SuperReadOnly bool `json:"superReadonly"`

	// SourceHost indicates the hostname or IP address of the source node that this replica node is replicating from.
	SourceHost string `json:"sourceHost,omitempty"`

	// SourcePort indicates the port of the source node that this replica node is replicating from.
	SourcePort int `json:"sourcePort,omitempty"`

	// ReplicaIO indicates the status of I/O thread of the replica node.
	ReplicaIO string `json:"replicaIO,omitempty"`

	// ReplicaSQL indicates the status of SQL thread of the replica node.
	ReplicaSQL string `json:"replicaSQL,omitempty"`

	// ReadSourceLogPos the position in the source node's binary log file where the replica node should start reading from.
	ReadSourceLogPos int `json:"readSourceLogPos,omitempty"`

	// SourceLogFile indicates the name of the binary log file on the source node that the replica node should read from.
	SourceLogFile string `json:"sourceLogFile,omitempty"`

	// SecondsBehindSource indicates the metric that shows how far behind the source node the replica node is, measured in seconds.
	SecondsBehindSource *int `json:"secondsBehindSource,omitempty"`

	// ExecSourceLogPos the position in the source node's binary log file where the replica node should execute from.
	ExecSourceLogPos int `json:"execSourceLogPos,omitempty"`
}

MysqlReplicationNode represents a node in the MySQL replication topology.

func (*MysqlReplicationNode) DeepCopy

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

func (*MysqlReplicationNode) DeepCopyInto

func (in *MysqlReplicationNode) DeepCopyInto(out *MysqlReplicationNode)

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

type MysqlReplicationRole

type MysqlReplicationRole string

MysqlReplicationRole defines the mysql replication role

const (
	// MysqlReplicationNodeRoleSource MysqlReplication Source node role
	MysqlReplicationNodeRoleSource MysqlReplicationRole = "Source"
	// MysqlReplicationNodeRoleReplica MysqlReplication Replica node role
	MysqlReplicationNodeRoleReplica MysqlReplicationRole = "Replica"
	// MysqlReplicationNodeRoleNone MysqlReplication None node role
	MysqlReplicationNodeRoleNone MysqlReplicationRole = "None"
)

type MysqlReplicationSecret

type MysqlReplicationSecret struct {
	// Name is the name of the secret resource which store authentication information for MySQL.
	Name string `json:"name"`
	//  Mysql is the key of the secret, which contains the value used to connect to MySQL.
	// +kubebuilder:default:=mysql
	Mysql string `json:"mysql"`
	// Replication is the key of the secret, which contains the value used to set up MySQL replication.
	// +kubebuilder:default:=replication
	Replication string `json:"replication"`
}

MysqlReplicationSecret defines the secret information of MysqlReplication

func (*MysqlReplicationSecret) DeepCopy

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

func (*MysqlReplicationSecret) DeepCopyInto

func (in *MysqlReplicationSecret) DeepCopyInto(out *MysqlReplicationSecret)

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

type MysqlReplicationSpec

type MysqlReplicationSpec struct {
	// Mode specifies the mysql replication sync mode.
	// Valid values are:
	// - "rpl_semi_sync": semi_sync;
	// - "rpl_async": async;
	// +optional
	// +kubebuilder:default:=rpl_async
	Mode MysqlReplicationMode `json:"mode"`

	// Secret is the reference to the secret resource containing authentication information, it must be in the same namespace as the MysqlReplication object.
	Secret MysqlReplicationSecret `json:"secret"`

	// Source references the source MySQL node.
	Source *CommonNode `json:"source"`

	// Service references the service providing the MySQL replication endpoint.
	Service *Service `json:"service"`

	// Replica is a list of replica nodes in the MySQL replication topology.
	Replica ReplicaNodes `json:"replica,omitempty"`
}

MysqlReplicationSpec defines the desired state of MysqlReplication

func (*MysqlReplicationSpec) DeepCopy

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

func (*MysqlReplicationSpec) DeepCopyInto

func (in *MysqlReplicationSpec) DeepCopyInto(out *MysqlReplicationSpec)

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

type MysqlReplicationStatus

type MysqlReplicationStatus struct {
	// Topology indicates the current MySQL replication topology.
	Topology MysqlReplicationTopology `json:"topology"`

	// ReadWriteService specify the service name provides read-write access to database.
	ReadWriteService string `json:"readwriteService"`

	// ReadOnlyService specify the service name provides read-only access to database.
	ReadOnlyService string `json:"readonlyService,omitempty"`

	// Ready indicates whether this MysqlReplication object is ready or not.
	Ready bool `json:"ready"`

	// Represents a list of detailed status of the MysqlReplication object.
	// Each condition in the list provides real-time information about certain aspect of the MysqlReplication object.
	//
	// This field is crucial for administrators and developers to monitor and respond to changes within the MysqlReplication.
	// It provides a history of state transitions and a snapshot of the current state that can be used for
	// automated logic or direct inspection.
	//
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

MysqlReplicationStatus defines the observed state of MysqlReplication

func (*MysqlReplicationStatus) DeepCopy

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

func (*MysqlReplicationStatus) DeepCopyInto

func (in *MysqlReplicationStatus) DeepCopyInto(out *MysqlReplicationStatus)

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

type MysqlReplicationTopology

type MysqlReplicationTopology map[string]*MysqlReplicationNode

MysqlReplicationTopology defines the MysqlReplication topology

func (MysqlReplicationTopology) DeepCopy

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

func (MysqlReplicationTopology) DeepCopyInto

func (in MysqlReplicationTopology) DeepCopyInto(out *MysqlReplicationTopology)

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

type NodeStatus

type NodeStatus string

NodeStatus defines node status

const (
	// NodeStatusOK Status OK
	NodeStatusOK NodeStatus = "Healthy"
	// NodeStatusKO Status KO
	NodeStatusKO NodeStatus = "Failed"
)

type PostgresReplication

type PostgresReplication struct {
	// The metadata for the API version and kind of the PostgresReplication.
	metav1.TypeMeta `json:",inline"`

	// The metadata for the PostgresReplication object, including name, namespace, labels, and annotations.
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Defines the desired state of the PostgresReplication.
	Spec PostgresReplicationSpec `json:"spec,omitempty"`

	// Populated by the system, it represents the current information about the PostgresReplication.
	Status PostgresReplicationStatus `json:"status,omitempty"`
}

PostgresReplication is the Schema for the Postgres Replications API +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:shortName=pr +kubebuilder:printcolumn:name="READY",type=boolean,JSONPath=`.status.ready` +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"

func (*PostgresReplication) DeepCopy

func (in *PostgresReplication) DeepCopy() *PostgresReplication

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

func (*PostgresReplication) DeepCopyInto

func (in *PostgresReplication) DeepCopyInto(out *PostgresReplication)

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

func (*PostgresReplication) DeepCopyObject

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

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

type PostgresReplicationList

type PostgresReplicationList struct {
	// Contains the metadata for the API objects, including the Kind and Version of the object.
	metav1.TypeMeta `json:",inline"`

	// Contains the metadata for the list objects, including the continue and remainingItemCount for the list.
	metav1.ListMeta `json:"metadata,omitempty"`

	// Contains the list of PostgresReplication.
	Items []PostgresReplication `json:"items"`
}

PostgresReplicationList contains a list of PostgresReplication +kubebuilder:object:root=true

func (*PostgresReplicationList) DeepCopy

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

func (*PostgresReplicationList) DeepCopyInto

func (in *PostgresReplicationList) DeepCopyInto(out *PostgresReplicationList)

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

func (*PostgresReplicationList) DeepCopyObject

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

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

type PostgresReplicationMode

type PostgresReplicationMode string

PostgresReplicationMode describes how the postgres stream replication will be handled. Only one of the following sync mode must be specified. +kubebuilder:validation:Enum=rpl_async;rpl_sync

const (
	PostgresRplAsync PostgresReplicationMode = "rpl_async"
	PostgresRplSync  PostgresReplicationMode = "rpl_sync"
)

type PostgresReplicationNode

type PostgresReplicationNode struct {
	// Host indicates the host of the MySQL node.
	Host string `json:"host"`

	// Port indicates the port of the MySQL node.
	Port int `json:"port"`

	// Role represents the role of the node in the replication topology (e.g., primary, standby).
	Role PostgresReplicationRole `json:"role"`

	// Status indicates the current status of the node (e.g., Healthy, Failed).
	Status NodeStatus `json:"status"`

	// Ready indicates whether the node is ready for reads and writes.
	Ready bool `json:"ready"`

	// WalDiff indicates the standby node pg_wal_lsn_diff(pg_last_wal_replay_lsn(), pg_last_wal_receive_lsn()).
	WalDiff *int `json:"walDiff,omitempty"`
}

PostgresReplicationNode represents a node in the Postgres replication topology.

func (*PostgresReplicationNode) DeepCopy

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

func (*PostgresReplicationNode) DeepCopyInto

func (in *PostgresReplicationNode) DeepCopyInto(out *PostgresReplicationNode)

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

type PostgresReplicationRole

type PostgresReplicationRole string

PostgresReplicationRole defines the postgres replication role

const (
	// PostgresReplicationRolePrimary PostgresReplicationRole Primary node role
	PostgresReplicationRolePrimary PostgresReplicationRole = "Primary"
	// PostgresReplicationRoleStandby PostgresReplicationRole Standby node role
	PostgresReplicationRoleStandby PostgresReplicationRole = "Standby"
	// PostgresReplicationRoleNone PostgresReplicationRole None node role
	PostgresReplicationRoleNone PostgresReplicationRole = "None"
)

type PostgresReplicationSecret

type PostgresReplicationSecret struct {
	// Name is the name of the secret resource which store authentication information for Postgres.
	Name string `json:"name"`
	//  Mysql is the key of the secret, which contains the value used to connect to Postgres.
	// +kubebuilder:default:=postgres
	Postgresql string `json:"postgres"`
	// Replication is the key of the secret, which contains the value used to set up Postgres replication.
	// +kubebuilder:default:=replication
	Replication string `json:"replication"`
}

PostgresReplicationSecret defines the secret information of PostgresqlReplication

func (*PostgresReplicationSecret) DeepCopy

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

func (*PostgresReplicationSecret) DeepCopyInto

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

type PostgresReplicationSpec

type PostgresReplicationSpec struct {
	// Mode specifies the postgres replication sync mode.
	// Valid values are:
	// - "rpl_sync": sync;
	// - "rpl_async": async;
	// +optional
	// +kubebuilder:default:=rpl_async
	Mode PostgresReplicationMode `json:"mode"`

	// Secret is the reference to the secret resource containing authentication information, it must be in the same namespace as the PostgresReplication object.
	Secret PostgresReplicationSecret `json:"secret"`

	// Primary references the primary Postgres node.
	Primary *CommonNode `json:"primary"`

	// Service references the service providing the Postgres replication endpoint.
	Service *Service `json:"service"`

	// Standby is a list of standby nodes in the Postgres replication topology.
	Standby CommonNodes `json:"standby,omitempty"`
}

PostgresReplicationSpec defines the desired state of PostgresReplication

func (*PostgresReplicationSpec) DeepCopy

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

func (*PostgresReplicationSpec) DeepCopyInto

func (in *PostgresReplicationSpec) DeepCopyInto(out *PostgresReplicationSpec)

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

type PostgresReplicationStatus

type PostgresReplicationStatus struct {
	// Topology indicates the current Postgres replication topology.
	Topology PostgresReplicationTopology `json:"topology"`

	// ReadWriteService specify the service name provides read-write access to database.
	ReadWriteService string `json:"readwriteService"`

	// ReadOnlyService specify the service name provides read-only access to database.
	ReadOnlyService string `json:"readonlyService,omitempty"`

	// Ready indicates whether this PostgresReplication object is read or not.
	Ready bool `json:"ready"`

	// Represents a list of detailed status of the PostgresReplication object.
	// Each condition in the list provides real-time information about certain aspect of the PostgresReplication object.
	//
	// This field is crucial for administrators and developers to monitor and respond to changes within the PostgresReplication.
	// It provides a history of state transitions and a snapshot of the current state that can be used for
	// automated logic or direct inspection.
	//
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

PostgresReplicationStatus defines the observed state of PostgresReplication

func (*PostgresReplicationStatus) DeepCopy

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

func (*PostgresReplicationStatus) DeepCopyInto

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

type PostgresReplicationTopology

type PostgresReplicationTopology map[string]*PostgresReplicationNode

PostgresReplicationTopology defines the PostgresReplication topology

func (PostgresReplicationTopology) DeepCopy

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

func (PostgresReplicationTopology) DeepCopyInto

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

type ProxysqlSync

type ProxysqlSync struct {
	// The metadata for the API version and kind of the ProxysqlSync.
	metav1.TypeMeta `json:",inline"`

	// The metadata for the ProxysqlSync object, including name, namespace, labels, and annotations.
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Defines the desired state of the ProxysqlSync.
	Spec ProxysqlSyncSpec `json:"spec,omitempty"`

	// Populated by the system, it represents the current information about the ProxysqlSync.
	Status ProxysqlSyncStatus `json:"status,omitempty"`
}

ProxysqlSync is the Schema for the proxysqlsyncs API +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:shortName=ps +kubebuilder:printcolumn:name="READY",type=boolean,JSONPath=`.status.ready` +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"

func (*ProxysqlSync) DeepCopy

func (in *ProxysqlSync) DeepCopy() *ProxysqlSync

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

func (*ProxysqlSync) DeepCopyInto

func (in *ProxysqlSync) DeepCopyInto(out *ProxysqlSync)

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

func (*ProxysqlSync) DeepCopyObject

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

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

type ProxysqlSyncList

type ProxysqlSyncList struct {
	// Contains the metadata for the API objects, including the Kind and Version of the object.
	metav1.TypeMeta `json:",inline"`

	// Contains the metadata for the list objects, including the continue and remainingItemCount for the list.
	metav1.ListMeta `json:"metadata,omitempty"`

	// Contains the list of ProxysqlSync.
	Items []ProxysqlSync `json:"items"`
}

ProxysqlSyncList contains a list of ProxysqlSync +kubebuilder:object:root=true

func (*ProxysqlSyncList) DeepCopy

func (in *ProxysqlSyncList) DeepCopy() *ProxysqlSyncList

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

func (*ProxysqlSyncList) DeepCopyInto

func (in *ProxysqlSyncList) DeepCopyInto(out *ProxysqlSyncList)

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

func (*ProxysqlSyncList) DeepCopyObject

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

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

type ProxysqlSyncNode

type ProxysqlSyncNode struct {
	// Users references the user list synced from MySQL to ProxySQL
	Users []string `json:"users,omitempty"`

	// Ready references whether ProxySQL server synced from MysqlReplication is correct.
	Synced bool `json:"synced"`
}

func (*ProxysqlSyncNode) DeepCopy

func (in *ProxysqlSyncNode) DeepCopy() *ProxysqlSyncNode

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

func (*ProxysqlSyncNode) DeepCopyInto

func (in *ProxysqlSyncNode) DeepCopyInto(out *ProxysqlSyncNode)

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

type ProxysqlSyncSecret

type ProxysqlSyncSecret struct {
	// Name is the name of the secret resource which store authentication information for MySQL and ProxySQL.
	Name string `json:"name"`

	//  Proxysql is the key of the secret, which contains the value used to connect to ProxySQL.
	Proxysql string `json:"proxysql"`

	//  Mysql is the key of the secret, which contains the value used to connect to MySQL.
	Mysql string `json:"mysql"`
}

ProxysqlSyncSecret defines the secret information of ProxysqlSync

func (*ProxysqlSyncSecret) DeepCopy

func (in *ProxysqlSyncSecret) DeepCopy() *ProxysqlSyncSecret

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

func (*ProxysqlSyncSecret) DeepCopyInto

func (in *ProxysqlSyncSecret) DeepCopyInto(out *ProxysqlSyncSecret)

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

type ProxysqlSyncSpec

type ProxysqlSyncSpec struct {

	// Proxysql references the list of proxysql nodes.
	Proxysql CommonNodes `json:"proxysql"`

	// Secret is the reference to the secret resource containing authentication information, it must be in the same namespace as the ProxysqlSync object.
	Secret ProxysqlSyncSecret `json:"secret"`

	// MysqlReplication references the name of MysqlReplication.
	MysqlReplication string `json:"mysqlReplication"`

	// Rule references the rule of sync users from MySQL to ProxySQL.
	Rule *Rule `json:"rule"`
}

ProxysqlSyncSpec defines the desired state of ProxysqlSync

func (*ProxysqlSyncSpec) DeepCopy

func (in *ProxysqlSyncSpec) DeepCopy() *ProxysqlSyncSpec

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

func (*ProxysqlSyncSpec) DeepCopyInto

func (in *ProxysqlSyncSpec) DeepCopyInto(out *ProxysqlSyncSpec)

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

type ProxysqlSyncStatus

type ProxysqlSyncStatus struct {
	// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
	// Important: Run "make" to regenerate code after modifying this file
	Topology ProxysqlSyncTopology `json:"topology"`

	Ready bool `json:"ready"`

	// Represents a list of detailed status of the RedisCluster object.
	// Each condition in the list provides real-time information about certain aspect of the RedisCluster object.
	//
	// This field is crucial for administrators and developers to monitor and respond to changes within the RedisCluster.
	// It provides a history of state transitions and a snapshot of the current state that can be used for
	// automated logic or direct inspection.
	//
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

ProxysqlSyncStatus defines the observed state of ProxysqlSync

func (*ProxysqlSyncStatus) DeepCopy

func (in *ProxysqlSyncStatus) DeepCopy() *ProxysqlSyncStatus

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

func (*ProxysqlSyncStatus) DeepCopyInto

func (in *ProxysqlSyncStatus) DeepCopyInto(out *ProxysqlSyncStatus)

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

type ProxysqlSyncTopology

type ProxysqlSyncTopology map[string]*ProxysqlSyncNode

ProxysqlSyncTopology defines the ProxysqlSync topology

func (ProxysqlSyncTopology) DeepCopy

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

func (ProxysqlSyncTopology) DeepCopyInto

func (in ProxysqlSyncTopology) DeepCopyInto(out *ProxysqlSyncTopology)

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

type RedisCluster

type RedisCluster struct {
	// The metadata for the API version and kind of the RedisCluster.
	metav1.TypeMeta `json:",inline"`

	// The metadata for the RedisCluster object, including name, namespace, labels, and annotations.
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Defines the desired state of the RedisCluster.
	Spec RedisClusterSpec `json:"spec,omitempty"`

	// Populated by the system, it represents the current information about the RedisCluster.
	Status RedisClusterStatus `json:"status,omitempty"`
}

RedisCluster is the Schema for the Redis Cluster API +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:shortName=rcc +kubebuilder:printcolumn:name="SHARD",type=integer,JSONPath=`.status.numberOfShard` +kubebuilder:printcolumn:name="READY",type=boolean,JSONPath=`.status.ready` +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"

func (*RedisCluster) DeepCopy

func (in *RedisCluster) DeepCopy() *RedisCluster

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

func (*RedisCluster) DeepCopyInto

func (in *RedisCluster) DeepCopyInto(out *RedisCluster)

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

func (*RedisCluster) DeepCopyObject

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

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

type RedisClusterList

type RedisClusterList struct {
	// Contains the metadata for the API objects, including the Kind and Version of the object.
	metav1.TypeMeta `json:",inline"`

	// Contains the metadata for the list objects, including the continue and remainingItemCount for the list.
	metav1.ListMeta `json:"metadata,omitempty"`

	// Contains the list of RedisCluster.
	Items []RedisCluster `json:"items"`
}

RedisClusterList contains a list of RedisCluster +kubebuilder:object:root=true

func (*RedisClusterList) DeepCopy

func (in *RedisClusterList) DeepCopy() *RedisClusterList

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

func (*RedisClusterList) DeepCopyInto

func (in *RedisClusterList) DeepCopyInto(out *RedisClusterList)

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

func (*RedisClusterList) DeepCopyObject

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

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

type RedisClusterNode

type RedisClusterNode struct {
	// ID represents the id of the Redis node.
	ID string `json:"id"`

	// Role represents the role of the node in the redis cluster topology (e.g., source, replica).
	Role RedisClusterNodeRole `json:"role"`

	// Status indicates the current status of the node (e.g., Healthy, Failed).
	Status NodeStatus `json:"status"`

	// Host indicates the host of the Redis node.
	Host string `json:"host"`

	// Port indicates the port of the Redis node.
	Port int `json:"port"`

	// Slots indicates the slots assigned to this Redis node.
	Slots []string `json:"slots,omitempty"`

	// MasterRef indicates which source node this replica node reference.
	MasterRef string `json:"masterRef,omitempty"`

	// Shard indicates which shard this node belong with.
	Shard string `json:"shard"`

	// Ready indicates whether the node is ready for reads and writes.
	Ready bool `json:"ready"`
}

RedisClusterNode represent a RedisCluster Node

func (*RedisClusterNode) DeepCopy

func (in *RedisClusterNode) DeepCopy() *RedisClusterNode

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

func (*RedisClusterNode) DeepCopyInto

func (in *RedisClusterNode) DeepCopyInto(out *RedisClusterNode)

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

type RedisClusterNodeRole

type RedisClusterNodeRole string

RedisClusterNodeRole defines the redis cluster role

const (
	// RedisClusterNodeRoleSource RedisCluster Source node role
	RedisClusterNodeRoleSource RedisClusterNodeRole = "Source"
	// RedisClusterNodeRoleReplica RedisCluster Replica node role
	RedisClusterNodeRoleReplica RedisClusterNodeRole = "Replica"
	// RedisClusterNodeRoleNone RedisCluster None node role
	RedisClusterNodeRoleNone RedisClusterNodeRole = "None"
)

type RedisClusterSecret

type RedisClusterSecret struct {
	// Name is the name of the secret resource which store authentication information for Redis.
	Name string `json:"name"`

	//  Redis is the key of the secret, which contains the value used to connect to Redis.
	Redis string `json:"redis"`
}

RedisClusterSecret defines the secret information of RedisCluster

func (*RedisClusterSecret) DeepCopy

func (in *RedisClusterSecret) DeepCopy() *RedisClusterSecret

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

func (*RedisClusterSecret) DeepCopyInto

func (in *RedisClusterSecret) DeepCopyInto(out *RedisClusterSecret)

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

type RedisClusterSpec

type RedisClusterSpec struct {
	// Secret is the reference to the secret resource containing authentication information, it must be in the same namespace as the RedisReplication object.
	Secret RedisClusterSecret `json:"secret"`

	// Members is a list of nodes in the Redis Cluster topology.
	Members map[string]CommonNodes `json:"members"`
}

RedisClusterSpec defines the desired state of RedisCluster

func (*RedisClusterSpec) DeepCopy

func (in *RedisClusterSpec) DeepCopy() *RedisClusterSpec

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

func (*RedisClusterSpec) DeepCopyInto

func (in *RedisClusterSpec) DeepCopyInto(out *RedisClusterSpec)

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

type RedisClusterStatus

type RedisClusterStatus struct {
	// Topology indicates the current Redis replication topology.
	Topology RedisClusterTopology `json:"topology"`

	// NumberOfShard indicates the number of Redis Cluster shard.
	NumberOfShard int `json:"numberOfShard"`

	// ClusterJoined indicates whether all node have joined the cluster.
	ClusterJoined bool `json:"clusterJoined"`

	// ClusterJoined indicates whether all node in this cluster have synced.
	ClusterSynced bool `json:"clusterSynced"`

	// Ready indicates whether this RedisCluster object is read or not.
	Ready bool `json:"ready"`

	// Represents a list of detailed status of the RedisCluster object.
	// Each condition in the list provides real-time information about certain aspect of the RedisCluster object.
	//
	// This field is crucial for administrators and developers to monitor and respond to changes within the RedisCluster.
	// It provides a history of state transitions and a snapshot of the current state that can be used for
	// automated logic or direct inspection.
	//
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

RedisClusterStatus defines the observed state of RedisCluster

func (*RedisClusterStatus) DeepCopy

func (in *RedisClusterStatus) DeepCopy() *RedisClusterStatus

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

func (*RedisClusterStatus) DeepCopyInto

func (in *RedisClusterStatus) DeepCopyInto(out *RedisClusterStatus)

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

type RedisClusterTopology

type RedisClusterTopology map[string]*RedisClusterNode

RedisClusterTopology defines the RedisCluster topology

func (RedisClusterTopology) DeepCopy

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

func (RedisClusterTopology) DeepCopyInto

func (in RedisClusterTopology) DeepCopyInto(out *RedisClusterTopology)

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

type RedisReplication

type RedisReplication struct {
	// The metadata for the API version and kind of the RedisReplication.
	metav1.TypeMeta `json:",inline"`

	// The metadata for the RedisReplication object, including name, namespace, labels, and annotations.
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Defines the desired state of the RedisReplication.
	Spec RedisReplicationSpec `json:"spec,omitempty"`

	// Populated by the system, it represents the current information about the RedisReplication.
	Status RedisReplicationStatus `json:"status,omitempty"`
}

RedisReplication is the Schema for the Redis Replication API +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:shortName=rr +kubebuilder:printcolumn:name="READY",type=boolean,JSONPath=`.status.ready` +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"

func (*RedisReplication) DeepCopy

func (in *RedisReplication) DeepCopy() *RedisReplication

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

func (*RedisReplication) DeepCopyInto

func (in *RedisReplication) DeepCopyInto(out *RedisReplication)

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

func (*RedisReplication) DeepCopyObject

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

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

type RedisReplicationList

type RedisReplicationList struct {
	// Contains the metadata for the API objects, including the Kind and Version of the object.
	metav1.TypeMeta `json:",inline"`

	// Contains the metadata for the list objects, including the continue and remainingItemCount for the list.
	metav1.ListMeta `json:"metadata,omitempty"`

	// Contains the list of RedisReplication.
	Items []RedisReplication `json:"items"`
}

RedisReplicationList contains a list of RedisReplication +kubebuilder:object:root=true

func (*RedisReplicationList) DeepCopy

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

func (*RedisReplicationList) DeepCopyInto

func (in *RedisReplicationList) DeepCopyInto(out *RedisReplicationList)

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

func (*RedisReplicationList) DeepCopyObject

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

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

type RedisReplicationNode

type RedisReplicationNode struct {
	// Host indicates the host of the Redis node.
	Host string `json:"host"`

	// Port indicates the port of the Redis node.
	Port int `json:"port"`

	// Role represents the role of the node in the replication topology (e.g., source, replica).
	Role RedisReplicationRole `json:"role"`

	// Status indicates the current status of the node (e.g., Healthy, Failed).
	Status NodeStatus `json:"status"`

	// Ready indicates whether the node is ready for reads and writes.
	Ready bool `json:"ready"`

	// SourceHost indicates the hostname or IP address of the source node that this replica node is replicating from.
	SourceHost string `json:"sourceHost,omitempty"`

	// SourcePort indicates the port of the source node that this replica node is replicating from.
	SourcePort int `json:"sourcePort,omitempty"`
}

RedisReplicationNode represents a node in the Redis replication topology.

func (*RedisReplicationNode) DeepCopy

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

func (*RedisReplicationNode) DeepCopyInto

func (in *RedisReplicationNode) DeepCopyInto(out *RedisReplicationNode)

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

type RedisReplicationRole

type RedisReplicationRole string

RedisReplicationRole defines the redis replication role

const (
	// RedisReplicationNodeRoleSource RedisReplication Source node role
	RedisReplicationNodeRoleSource RedisReplicationRole = "Source"
	// RedisReplicationNodeRoleReplica RedisReplication Replica node role
	RedisReplicationNodeRoleReplica RedisReplicationRole = "Replica"
	// RedisReplicationNodeRoleNone RedisReplication None node role
	RedisReplicationNodeRoleNone RedisReplicationRole = "None"
)

type RedisReplicationSecret

type RedisReplicationSecret struct {
	// Name is the name of the secret resource which store authentication information for Redis.
	Name string `json:"name"`

	//  Redis is the key of the secret, which contains the value used to connect to Redis.
	Redis string `json:"redis"`
}

RedisReplicationSecret defines the secret information of RedisReplication

func (*RedisReplicationSecret) DeepCopy

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

func (*RedisReplicationSecret) DeepCopyInto

func (in *RedisReplicationSecret) DeepCopyInto(out *RedisReplicationSecret)

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

type RedisReplicationSpec

type RedisReplicationSpec struct {
	// Secret is the reference to the secret resource containing authentication information, it must be in the same namespace as the RedisReplication object.
	Secret RedisReplicationSecret `json:"secret"`

	// Source references the source Redis node.
	Source *CommonNode `json:"source"`

	// Replica is a list of replica nodes in the Redis replication topology.
	Replica CommonNodes `json:"replica,omitempty"`

	// Service references the service providing the Redis replication endpoint.
	Service *Service `json:"service"`

	// Sentinel is a list of Redis Sentinel node addresses for high availability monitoring.
	Sentinel []string `json:"sentinel,omitempty"`
}

RedisReplicationSpec defines the desired state of RedisReplication

func (*RedisReplicationSpec) DeepCopy

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

func (*RedisReplicationSpec) DeepCopyInto

func (in *RedisReplicationSpec) DeepCopyInto(out *RedisReplicationSpec)

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

type RedisReplicationStatus

type RedisReplicationStatus struct {
	// Topology indicates the current Redis replication topology.
	Topology RedisReplicationTopology `json:"topology"`

	// ReadWriteService specify the service name provides read-write access to database.
	ReadWriteService string `json:"readwriteService"`

	// ReadOnlyService specify the service name provides read-only access to database.
	ReadOnlyService string `json:"readonlyService,omitempty"`

	// Ready indicates whether this RedisReplication object is read or not.
	Ready bool `json:"ready"`

	// Represents a list of detailed status of the RedisReplication object.
	// Each condition in the list provides real-time information about certain aspect of the RedisReplication object.
	//
	// This field is crucial for administrators and developers to monitor and respond to changes within the RedisReplication.
	// It provides a history of state transitions and a snapshot of the current state that can be used for
	// automated logic or direct inspection.
	//
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

RedisReplicationStatus defines the observed state of RedisReplication

func (*RedisReplicationStatus) DeepCopy

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

func (*RedisReplicationStatus) DeepCopyInto

func (in *RedisReplicationStatus) DeepCopyInto(out *RedisReplicationStatus)

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

type RedisReplicationTopology

type RedisReplicationTopology map[string]*RedisReplicationNode

RedisReplicationTopology defines the RedisReplication topology

func (RedisReplicationTopology) DeepCopy

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

func (RedisReplicationTopology) DeepCopyInto

func (in RedisReplicationTopology) DeepCopyInto(out *RedisReplicationTopology)

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

type ReplicaNode

type ReplicaNode struct {
	CommonNode `json:",inline"` // Embed base fields from CommonNode

	// Isolated indicates whether this node will be isolated.
	// If not specified, it defaults to false.
	// +kubebuilder:default=false
	// +optional
	Isolated bool `json:"isolated,omitempty"`
}

ReplicaNode is a CommonNode with additional replication-specific info

func (*ReplicaNode) DeepCopy

func (in *ReplicaNode) DeepCopy() *ReplicaNode

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

func (*ReplicaNode) DeepCopyInto

func (in *ReplicaNode) DeepCopyInto(out *ReplicaNode)

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

type ReplicaNodes

type ReplicaNodes []*ReplicaNode

func (ReplicaNodes) DeepCopy

func (in ReplicaNodes) DeepCopy() ReplicaNodes

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

func (ReplicaNodes) DeepCopyInto

func (in ReplicaNodes) DeepCopyInto(out *ReplicaNodes)

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

type Rule

type Rule struct {
	Filter  []string `json:"filter"`
	Pattern string   `json:"pattern"`
}

Rule defines the proxysqlsync rule

func (*Rule) DeepCopy

func (in *Rule) DeepCopy() *Rule

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

func (*Rule) DeepCopyInto

func (in *Rule) DeepCopyInto(out *Rule)

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

type Service

type Service struct {
	//Type string describes ingress methods for a service
	// +kubebuilder:default:=ClusterIP
	Type ServiceType `json:"type"`
}

Service reflection of kubernetes service

func (*Service) DeepCopy

func (in *Service) DeepCopy() *Service

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

func (*Service) DeepCopyInto

func (in *Service) DeepCopyInto(out *Service)

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

type ServiceType

type ServiceType string

ServiceType reflection of kubernetes service type +kubebuilder:validation:Enum=ClusterIP;NodePort;LoadBalancer;ExternalName

const (
	// ServiceTypeClusterIP means a service will only be accessible inside the
	// cluster, via the cluster IP.
	ServiceTypeClusterIP ServiceType = "ClusterIP"

	// ServiceTypeNodePort means a service will be exposed on one port of
	// every node, in addition to 'ClusterIP' type.
	ServiceTypeNodePort ServiceType = "NodePort"

	// ServiceTypeLoadBalancer means a service will be exposed via an
	// external load balancer (if the cloud provider supports it), in addition
	// to 'NodePort' type.
	ServiceTypeLoadBalancer ServiceType = "LoadBalancer"

	// ServiceTypeExternalName means a service consists of only a reference to
	// an external name that kubedns or equivalent will return as a CNAME
	// record, with no exposing or proxying of any pods involved.
	ServiceTypeExternalName ServiceType = "ExternalName"
)

Jump to

Keyboard shortcuts

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