v1alpha1

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Mar 15, 2023 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the redis v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=redis.kun

Package v1alpha1 contains API Schema definitions for the redis v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=redis.kun

Index

Constants

View Source
const (
	OperatorName      = "redis-cluster-operator"
	LabelManagedByKey = "managed-by"
	LabelNameKey      = "distributed-redis-cluster"
	StatefulSetLabel  = "statefulSet"
	PasswordENV       = "REDIS_PASSWORD"
)
View Source
const (
	DatabaseNamePrefix = "redis"

	GenericKey = "redis.kun"

	LabelClusterName = GenericKey + "/name"

	BackupKey         = ResourceSingularBackup + "." + GenericKey
	LabelBackupStatus = BackupKey + "/status"

	AnnotationJobType = GenericKey + "/job-type"

	JobTypeBackup  = "backup"
	JobTypeRestore = "restore"

	PrometheusExporterPortNumber    = 9100
	PrometheusExporterTelemetryPath = "/metrics"

	BackupDumpDir  = "/data"
	UtilVolumeName = "util-volume"
)
View Source
const (
	DistributedRedisClusterKind = "DistributedRedisCluster"
	RedisClusterBackupKind      = "RedisClusterBackup"
)
View Source
const (
	ResourceSingularBackup = "backup"
)

Variables

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

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

Functions

func DefaultOwnerReferences

func DefaultOwnerReferences(cluster *DistributedRedisCluster) []metav1.OwnerReference

Types

type AgentSpec

type AgentSpec struct {
	Image      string          `json:"image,omitempty"`
	Prometheus *PrometheusSpec `json:"prometheus,omitempty"`
	// Arguments to the entrypoint.
	// The docker image's CMD is used if this is not provided.
	// Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
	// cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
	// can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
	// regardless of whether the variable exists or not.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
	// +optional
	Args []string `json:"args,omitempty"`
	// List of environment variables to set in the container.
	// Cannot be updated.
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	Env []corev1.EnvVar `json:"env,omitempty" patchStrategy:"merge" patchMergeKey:"name"`
	// Compute Resources required by exporter container.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`
	// Security options the pod should run with.
	// More info: https://kubernetes.io/docs/concepts/policy/security-context/
	// More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
	// +optional
	SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"`
}

func (*AgentSpec) DeepCopy

func (in *AgentSpec) DeepCopy() *AgentSpec

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

func (*AgentSpec) DeepCopyInto

func (in *AgentSpec) DeepCopyInto(out *AgentSpec)

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

type BackupPhase

type BackupPhase string
const (
	// used for Backup that are currently running
	BackupPhaseRunning BackupPhase = "Running"
	// used for Backup that are Succeeded
	BackupPhaseSucceeded BackupPhase = "Succeeded"
	// used for Backup that are Failed
	BackupPhaseFailed BackupPhase = "Failed"
	// used for Backup that are Ignored
	BackupPhaseIgnored BackupPhase = "Ignored"
)

type BackupSourceSpec

type BackupSourceSpec struct {
	Namespace string `json:"namespace"`
	Name      string `json:"name"`
	// Arguments to the restore job
	Args []string `json:"args,omitempty"`
}

func (*BackupSourceSpec) DeepCopy

func (in *BackupSourceSpec) DeepCopy() *BackupSourceSpec

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

func (*BackupSourceSpec) DeepCopyInto

func (in *BackupSourceSpec) DeepCopyInto(out *BackupSourceSpec)

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

type ClusterStatus

type ClusterStatus string

ClusterStatus Redis Cluster status

const (
	// ClusterStatusOK ClusterStatus OK
	ClusterStatusOK ClusterStatus = "Healthy"
	// ClusterStatusKO ClusterStatus KO
	ClusterStatusKO ClusterStatus = "Failed"
	// ClusterStatusCreating ClusterStatus Creating
	ClusterStatusCreating = "Creating"
	// ClusterStatusScaling ClusterStatus Scaling
	ClusterStatusScaling ClusterStatus = "Scaling"
	// ClusterStatusCalculatingRebalancing ClusterStatus Rebalancing
	ClusterStatusCalculatingRebalancing ClusterStatus = "Calculating Rebalancing"
	// ClusterStatusRebalancing ClusterStatus Rebalancing
	ClusterStatusRebalancing ClusterStatus = "Rebalancing"
	// ClusterStatusRollingUpdate ClusterStatus RollingUpdate
	ClusterStatusRollingUpdate ClusterStatus = "RollingUpdate"
	// ClusterStatusResetPassword ClusterStatus ResetPassword
	ClusterStatusResetPassword ClusterStatus = "ResetPassword"
)

type DistributedRedisCluster

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

	Spec   DistributedRedisClusterSpec   `json:"spec,omitempty"`
	Status DistributedRedisClusterStatus `json:"status,omitempty"`
}

DistributedRedisCluster is the Schema for the distributedredisclusters API +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:resource:path=distributedredisclusters,scope=Namespaced

func (*DistributedRedisCluster) DeepCopy

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

func (*DistributedRedisCluster) DeepCopyInto

func (in *DistributedRedisCluster) DeepCopyInto(out *DistributedRedisCluster)

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

func (*DistributedRedisCluster) DeepCopyObject

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

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

func (*DistributedRedisCluster) DefaultSpec

func (in *DistributedRedisCluster) DefaultSpec(log logr.Logger) bool

func (*DistributedRedisCluster) IsRestoreFromBackup

func (in *DistributedRedisCluster) IsRestoreFromBackup() bool

func (*DistributedRedisCluster) IsRestoreRestarting

func (in *DistributedRedisCluster) IsRestoreRestarting() bool

func (*DistributedRedisCluster) IsRestoreRunning

func (in *DistributedRedisCluster) IsRestoreRunning() bool

func (*DistributedRedisCluster) IsRestored

func (in *DistributedRedisCluster) IsRestored() bool

func (*DistributedRedisCluster) SetupWebhookWithManager

func (in *DistributedRedisCluster) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*DistributedRedisCluster) ShouldInitRestorePhase

func (in *DistributedRedisCluster) ShouldInitRestorePhase() bool

func (*DistributedRedisCluster) ValidateCreate

func (in *DistributedRedisCluster) ValidateCreate() error

func (*DistributedRedisCluster) ValidateDelete

func (in *DistributedRedisCluster) ValidateDelete() error

func (*DistributedRedisCluster) ValidateUpdate

func (in *DistributedRedisCluster) ValidateUpdate(old runtime.Object) error

type DistributedRedisClusterList

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

DistributedRedisClusterList contains a list of DistributedRedisCluster

func (*DistributedRedisClusterList) DeepCopy

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

func (*DistributedRedisClusterList) DeepCopyInto

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

func (*DistributedRedisClusterList) DeepCopyObject

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

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

type DistributedRedisClusterSpec

type DistributedRedisClusterSpec struct {
	// INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
	// Important: Run "operator-sdk generate k8s" to regenerate code after modifying this file
	// Add custom validation using kubebuilder tags: https://book-v1.book.kubebuilder.io/beyond_basics/generating_crd.html
	Image            string                        `json:"image,omitempty"`
	ImagePullPolicy  corev1.PullPolicy             `json:"imagePullPolicy,omitempty"`
	ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`
	Command          []string                      `json:"command,omitempty"`
	Env              []corev1.EnvVar               `json:"env,omitempty"`
	MasterSize       int32                         `json:"masterSize,omitempty"`
	ClusterReplicas  int32                         `json:"clusterReplicas,omitempty"`
	ServiceName      string                        `json:"serviceName,omitempty"`
	Config           map[string]string             `json:"config,omitempty"`
	// Set RequiredAntiAffinity to force the master-slave node anti-affinity.
	RequiredAntiAffinity     bool                         `json:"requiredAntiAffinity,omitempty"`
	Affinity                 *corev1.Affinity             `json:"affinity,omitempty"`
	NodeSelector             map[string]string            `json:"nodeSelector,omitempty"`
	ToleRations              []corev1.Toleration          `json:"toleRations,omitempty"`
	SecurityContext          *corev1.PodSecurityContext   `json:"securityContext,omitempty"`
	ContainerSecurityContext *corev1.SecurityContext      `json:"containerSecurityContext,omitempty"`
	Annotations              map[string]string            `json:"annotations,omitempty"`
	Storage                  *RedisStorage                `json:"storage,omitempty"`
	Resources                *corev1.ResourceRequirements `json:"resources,omitempty"`
	PasswordSecret           *corev1.LocalObjectReference `json:"passwordSecret,omitempty"`
	Monitor                  *AgentSpec                   `json:"monitor,omitempty"`
	Init                     *InitSpec                    `json:"init,omitempty"`
}

DistributedRedisClusterSpec defines the desired state of DistributedRedisCluster +k8s:openapi-gen=true

func (*DistributedRedisClusterSpec) DeepCopy

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

func (*DistributedRedisClusterSpec) DeepCopyInto

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

type DistributedRedisClusterStatus

type DistributedRedisClusterStatus struct {
	// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
	// Important: Run "operator-sdk generate k8s" to regenerate code after modifying this file
	// Add custom validation using kubebuilder tags: https://book-v1.book.kubebuilder.io/beyond_basics/generating_crd.html
	Status               ClusterStatus      `json:"status"`
	Reason               string             `json:"reason,omitempty"`
	NumberOfMaster       int32              `json:"numberOfMaster,omitempty"`
	MinReplicationFactor int32              `json:"minReplicationFactor,omitempty"`
	MaxReplicationFactor int32              `json:"maxReplicationFactor,omitempty"`
	NodesPlacement       NodesPlacementInfo `json:"nodesPlacementInfo,omitempty"`
	Nodes                []RedisClusterNode `json:"nodes"`
	// +optional
	Restore Restore `json:"restore"`
}

DistributedRedisClusterStatus defines the observed state of DistributedRedisCluster +k8s:openapi-gen=true

func (*DistributedRedisClusterStatus) DeepCopy

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

func (*DistributedRedisClusterStatus) DeepCopyInto

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

type InitSpec

type InitSpec struct {
	BackupSource *BackupSourceSpec `json:"backupSource,omitempty"`
}

func (*InitSpec) DeepCopy

func (in *InitSpec) DeepCopy() *InitSpec

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

func (*InitSpec) DeepCopyInto

func (in *InitSpec) DeepCopyInto(out *InitSpec)

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

type NodesPlacementInfo

type NodesPlacementInfo string

NodesPlacementInfo Redis Nodes placement mode information

const (
	// NodesPlacementInfoBestEffort the cluster nodes placement is in best effort,
	// it means you can have 2 masters (or more) on the same VM.
	NodesPlacementInfoBestEffort NodesPlacementInfo = "BestEffort"
	// NodesPlacementInfoOptimal the cluster nodes placement is optimal,
	// it means on master by VM
	NodesPlacementInfoOptimal NodesPlacementInfo = "Optimal"
)

type PodSpec

type PodSpec struct {
	// 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"`

	// Arguments to the entrypoint.
	// The docker image's CMD is used if this is not provided.
	// Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
	// cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
	// can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
	// regardless of whether the variable exists or not.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
	// +optional
	Args []string `json:"args,omitempty"`

	// NodeSelector is a selector which must be true for the pod to fit on a node.
	// Selector which must match a node's labels for the pod to be scheduled on that node.
	// More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// Compute Resources required by the sidecar container.
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`

	// If specified, the pod's scheduling constraints
	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty"`

	// If specified, the pod will be dispatched by specified scheduler.
	// If not specified, the pod will be dispatched by default scheduler.
	// +optional
	SchedulerName string `json:"schedulerName,omitempty"`

	// If specified, the pod's tolerations.
	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
	// If specified, these secrets will be passed to individual puller implementations for them to use.
	// +optional
	ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`

	// List of environment variables to set in the container.
	// Cannot be updated.
	// +optional
	Env []corev1.EnvVar `json:"env,omitempty"`

	// List of initialization containers belonging to the pod.
	// Init containers are executed in order prior to containers being started. If any
	// init container fails, the pod is considered to have failed and is handled according
	// to its restartPolicy. The name for an init container or normal container must be
	// unique among all containers.
	// Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
	// The resourceRequirements of an init container are taken into account during scheduling
	// by finding the highest request/limit for each resource type, and then using the max of
	// of that value or the sum of the normal containers. Limits are applied to init containers
	// in a similar fashion.
	// Init containers cannot currently be added or removed.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
	// +patchMergeKey=name
	// +patchStrategy=merge
	InitContainers []corev1.Container `json:"initContainers,omitempty" patchStrategy:"merge" patchMergeKey:"name"`

	// If specified, indicates the pod's priority. "system-node-critical" and
	// "system-cluster-critical" are two special keywords which indicate the
	// highest priorities with the former being the highest priority. Any other
	// name must be defined by creating a PriorityClass object with that name.
	// If not specified, the pod priority will be default or zero if there is no
	// default.
	// +optional
	PriorityClassName string `json:"priorityClassName,omitempty"`
	// The priority value. Various system components use this field to find the
	// priority of the pod. When Priority Admission Controller is enabled, it
	// prevents users from setting this field. The admission controller populates
	// this field from PriorityClassName.
	// The higher the value, the higher the priority.
	// +optional
	Priority *int32 `json:"priority,omitempty"`

	// SecurityContext holds pod-level security attributes and common container settings.
	// Optional: Defaults to empty.  See type description for default values of each field.
	// +optional
	SecurityContext *corev1.PodSecurityContext `json:"securityContext,omitempty"`

	// Periodic probe of container liveness.
	// Container will be restarted if the probe fails.
	// Controllers may set default LivenessProbe if no liveness probe is provided.
	// To ignore defaulting, set the value to empty LivenessProbe "{}".
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
	// +optional
	LivenessProbe *corev1.Probe `json:"livenessProbe,omitempty"`

	// Periodic probe of container service readiness.
	// Container will be removed from service endpoints if the probe fails.
	// Cannot be updated.
	// Controllers may set default ReadinessProbe if no readyness probe is provided.
	// To ignore defaulting, set the value to empty ReadynessProbe "{}".
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
	// +optional
	ReadinessProbe *corev1.Probe `json:"readinessProbe,omitempty"`

	// Actions that the management system should take in response to container lifecycle events.
	// Cannot be updated.
	// +optional
	Lifecycle *corev1.Lifecycle `json:"lifecycle,omitempty"`
}

func (*PodSpec) DeepCopy

func (in *PodSpec) DeepCopy() *PodSpec

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

func (*PodSpec) DeepCopyInto

func (in *PodSpec) DeepCopyInto(out *PodSpec)

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

type PrometheusSpec

type PrometheusSpec struct {
	// Port number for the exporter side car.
	Port int32 `json:"port,omitempty"`

	// Namespace of Prometheus. Service monitors will be created in this namespace.
	Namespace string `json:"namespace,omitempty"`
	// Labels are key value pairs that is used to select Prometheus instance via ServiceMonitor labels.
	// +optional
	Labels map[string]string `json:"labels,omitempty"`

	// Interval at which metrics should be scraped
	Interval string `json:"interval,omitempty"`
}

func (*PrometheusSpec) DeepCopy

func (in *PrometheusSpec) DeepCopy() *PrometheusSpec

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

func (*PrometheusSpec) DeepCopyInto

func (in *PrometheusSpec) DeepCopyInto(out *PrometheusSpec)

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

type RedisClusterBackup

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

	Spec   RedisClusterBackupSpec   `json:"spec,omitempty"`
	Status RedisClusterBackupStatus `json:"status,omitempty"`
}

RedisClusterBackup is the Schema for the redisclusterbackups API +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:resource:path=redisclusterbackups,scope=Namespaced

func (*RedisClusterBackup) DeepCopy

func (in *RedisClusterBackup) DeepCopy() *RedisClusterBackup

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

func (*RedisClusterBackup) DeepCopyInto

func (in *RedisClusterBackup) DeepCopyInto(out *RedisClusterBackup)

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

func (*RedisClusterBackup) DeepCopyObject

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

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

func (*RedisClusterBackup) IsRefLocalPVC

func (in *RedisClusterBackup) IsRefLocalPVC() bool

func (*RedisClusterBackup) JobName

func (in *RedisClusterBackup) JobName() string

func (*RedisClusterBackup) RCloneSecretName

func (in *RedisClusterBackup) RCloneSecretName() string

func (*RedisClusterBackup) RemotePath

func (in *RedisClusterBackup) RemotePath() (string, error)

func (*RedisClusterBackup) Validate

func (in *RedisClusterBackup) Validate() error

type RedisClusterBackupList

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

RedisClusterBackupList contains a list of RedisClusterBackup

func (*RedisClusterBackupList) DeepCopy

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

func (*RedisClusterBackupList) DeepCopyInto

func (in *RedisClusterBackupList) DeepCopyInto(out *RedisClusterBackupList)

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

func (*RedisClusterBackupList) DeepCopyObject

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

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

type RedisClusterBackupSpec

type RedisClusterBackupSpec struct {
	Image                 string        `json:"image,omitempty"`
	RedisClusterName      string        `json:"redisClusterName"`
	Storage               *RedisStorage `json:"storage,omitempty"`
	store.Backend         `json:",inline"`
	PodSpec               *PodSpec `json:"podSpec,omitempty"`
	ActiveDeadlineSeconds *int64   `json:"activeDeadlineSeconds,omitempty"`
}

RedisClusterBackupSpec defines the desired state of RedisClusterBackup +k8s:openapi-gen=true

func (*RedisClusterBackupSpec) DeepCopy

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

func (*RedisClusterBackupSpec) DeepCopyInto

func (in *RedisClusterBackupSpec) DeepCopyInto(out *RedisClusterBackupSpec)

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

type RedisClusterBackupStatus

type RedisClusterBackupStatus struct {
	// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
	StartTime       *metav1.Time `json:"startTime,omitempty"`
	CompletionTime  *metav1.Time `json:"completionTime,omitempty"`
	Phase           BackupPhase  `json:"phase,omitempty"`
	Reason          string       `json:"reason,omitempty"`
	MasterSize      int32        `json:"masterSize,omitempty"`
	ClusterReplicas int32        `json:"clusterReplicas,omitempty"`
	ClusterImage    string       `json:"clusterImage,omitempty"`
}

RedisClusterBackupStatus defines the observed state of RedisClusterBackup +k8s:openapi-gen=true

func (*RedisClusterBackupStatus) DeepCopy

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

func (*RedisClusterBackupStatus) DeepCopyInto

func (in *RedisClusterBackupStatus) DeepCopyInto(out *RedisClusterBackupStatus)

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

type RedisClusterNode

type RedisClusterNode struct {
	ID          string    `json:"id"`
	Role        RedisRole `json:"role"`
	IP          string    `json:"ip"`
	Port        string    `json:"port"`
	Slots       []string  `json:"slots,omitempty"`
	MasterRef   string    `json:"masterRef,omitempty"`
	PodName     string    `json:"podName"`
	NodeName    string    `json:"nodeName"`
	StatefulSet string    `json:"statefulSet"`
}

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 RedisRole

type RedisRole string

RedisRole RedisCluster Node Role type

const (
	// RedisClusterNodeRoleMaster RedisCluster Master node role
	RedisClusterNodeRoleMaster RedisRole = "Master"
	// RedisClusterNodeRoleSlave RedisCluster Master node role
	RedisClusterNodeRoleSlave RedisRole = "Slave"
	// RedisClusterNodeRoleNone None node role
	RedisClusterNodeRoleNone RedisRole = "None"
)

type RedisStorage

type RedisStorage struct {
	Size        resource.Quantity `json:"size"`
	Type        StorageType       `json:"type"`
	Class       string            `json:"class"`
	DeleteClaim bool              `json:"deleteClaim,omitempty"`
}

RedisStorage defines the structure used to store the Redis Data

func (*RedisStorage) DeepCopy

func (in *RedisStorage) DeepCopy() *RedisStorage

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

func (*RedisStorage) DeepCopyInto

func (in *RedisStorage) DeepCopyInto(out *RedisStorage)

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

type Restore

type Restore struct {
	Phase  RestorePhase        `json:"phase,omitempty"`
	Backup *RedisClusterBackup `json:"backup, omitempty"`
}

func (*Restore) DeepCopy

func (in *Restore) DeepCopy() *Restore

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

func (*Restore) DeepCopyInto

func (in *Restore) DeepCopyInto(out *Restore)

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

type RestorePhase

type RestorePhase string
const (
	// RestorePhaseRunning used for Restore that are currently running.
	RestorePhaseRunning RestorePhase = "Running"
	// RestorePhaseRestart used for Restore that are restart master nodes.
	RestorePhaseRestart RestorePhase = "Restart"
	// RestorePhaseSucceeded used for Restore that are Succeeded.
	RestorePhaseSucceeded RestorePhase = "Succeeded"
)

type StorageType

type StorageType string
const (
	PersistentClaim StorageType = "persistent-claim"
	Ephemeral       StorageType = "ephemeral"
)

Jump to

Keyboard shortcuts

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