v1alpha1

package
v0.38.1 Latest Latest
Warning

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

Go to latest
Published: Apr 15, 2025 License: MIT Imports: 36 Imported by: 3

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the v1alpha1 API group +kubebuilder:object:generate=true +groupName=k8s.mariadb.com

nolint:lll

nolint:lll

Index

Constants

View Source
const (
	ConditionTypeReady           string = "Ready"
	ConditionTypeBackupRestored  string = "BackupRestored"
	ConditionTypePrimarySwitched string = "PrimarySwitched"
	// ConditionTypeGaleraReady indicates that the cluster is healthy.
	ConditionTypeGaleraReady string = "GaleraReady"
	// ConditionTypeGaleraConfigured indicates that the cluster has been successfully configured.
	ConditionTypeGaleraConfigured string = "GaleraConfigured"
	// ConditionTypeGaleraInitialized indicates that the cluster has been successfully initialized.
	ConditionTypeGaleraInitialized string = "GaleraInitialized"
	ConditionTypeComplete          string = "Complete"
	// ConditionTypeStorageResized indicates that the storage has been successfully resized.
	ConditionTypeStorageResized string = "StorageResized"
	// ConditionTypeUpdated indicates that an update has been successfully completed.
	ConditionTypeUpdated string = "Updated"

	ConditionReasonStatefulSetNotReady string = "StatefulSetNotReady"
	ConditionReasonStatefulSetReady    string = "StatefulSetReady"
	ConditionReasonRestoreBackup       string = "RestoreBackup"
	ConditionReasonSwitchPrimary       string = "SwitchPrimary"
	ConditionReasonGaleraReady         string = "GaleraReady"
	ConditionReasonGaleraNotReady      string = "GaleraNotReady"
	ConditionReasonGaleraConfigured    string = "GaleraConfigured"
	ConditionReasonGaleraInitialized   string = "GaleraInitialized"
	ConditionReasonGaleraInitializing  string = "GaleraInitializing"
	ConditionReasonResizingStorage     string = "ResizingStorage"
	ConditionReasonWaitStorageResize   string = "WaitStorageResize"
	ConditionReasonStorageResized      string = "StorageResized"
	ConditionReasonInitializing        string = "Initializing"
	ConditionReasonInitialized         string = "Initialized"
	ConditionReasonPendingUpdate       string = "PendingUpdate"
	ConditionReasonUpdating            string = "Updating"
	ConditionReasonUpdated             string = "Updated"
	ConditionReasonSuspended           string = "Suspended"

	ConditionReasonMaxScaleNotReady string = "MaxScaleNotReady"
	ConditionReasonMaxScaleReady    string = "MaxScaleReady"

	ConditionReasonRestoreNotComplete string = "RestoreNotComplete"
	ConditionReasonRestoreComplete    string = "RestoreComplete"

	ConditionReasonJobComplete  string = "JobComplete"
	ConditionReasonJobSuspended string = "JobSuspended"
	ConditionReasonJobFailed    string = "JobFailed"
	ConditionReasonJobRunning   string = "JobRunning"

	ConditionReasonCronJobScheduled string = "CronJobScheduled"
	ConditionReasonCronJobFailed    string = "CronJobScheduled"
	ConditionReasonCronJobRunning   string = "CronJobRunning"
	ConditionReasonCronJobSuccess   string = "CronJobSucess"

	ConditionReasonConnectionFailed string = "ConnectionFailed"

	ConditionReasonCreated string = "Created"
	ConditionReasonHealthy string = "Healthy"
	ConditionReasonFailed  string = "Failed"
)
View Source
const (
	// ReasonReplicationConfiguring indicates that replication is being configured.
	ReasonReplicationConfiguring = "ReplicationConfiguring"
	// ReasonReplicationConfigured indicates that replication has been configured.
	ReasonReplicationConfigured = "ReplicationConfigured"
	// ReasonReplicationPrimaryLock indicates that primary tables have a read lock.
	ReasonReplicationPrimaryLock = "PrimaryLock"
	// ReasonReplicationPrimaryReadonly indicates that primary is being changed to readonly mode.
	ReasonReplicationPrimaryReadonly = "PrimaryReadonly"
	// ReasonReplicationReplicaSync indicates that replicas are being synced with primary.
	ReasonReplicationReplicaSync = "ReplicaSync"
	// ReasonReplicationReplicaSyncErr indicates that an error has happened while replicas were being synced with primary.
	ReasonReplicationReplicaSyncErr = "ReplicaSyncErr"
	// ReasonReplicationPrimaryNew indicates that a new primary is being configured.
	ReasonReplicationPrimaryNew = "PrimaryNew"
	// ReasonReplicationReplicaConn indicates that replicas are connecting to the new primary.
	ReasonReplicationReplicaConn = "ReplicaConn"
	// ReasonReplicationPrimaryToReplica indicates that current primary is being unlocked to become a replica.
	ReasonReplicationPrimaryToReplica = "PrimaryToReplica"

	// ReasonGaleraClusterHealthy indicates that the cluster is healthy,
	ReasonGaleraClusterHealthy = "GaleraClusterHealthy"
	// ReasonGaleraClusterNotHealthy indicates that the cluster is not healthy.
	ReasonGaleraClusterNotHealthy = "GaleraClusterNotHealthy"
	// ReasonGaleraClusterBootstrap indicates that the cluster is being bootstrapped.
	ReasonGaleraClusterBootstrap = "GaleraClusterBootstrap"
	// ReasonGaleraClusterBootstrapTimeout indicates that the cluster bootstrap has timed out.
	ReasonGaleraClusterBootstrapTimeout = "GaleraClusterBootstrapTimeout"
	// ReasonGaleraPodStateFetched indicates that the Pod state has been fetched successfully.
	ReasonGaleraPodStateFetched = "GaleraPodStateFetched"
	// ReasonGaleraPodRecovered indicates that the Pod has successfully recovered the sequence.
	ReasonGaleraPodRecovered = "GaleraPodRecovered"
	// ReasonGaleraPodSyncTimeout indicates that the Pod has timed out reaching the Sync state.
	ReasonGaleraPodSyncTimeout = "GaleraPodSyncTimeout"
	// ReasonGaleraPVCNotBound indicates that a Galera PVC is not in Bound phase, therefore the init process cannot be started.
	ReasonGaleraPVCNotBound = "GaleraPVCNotBound"

	// ReasonPrimarySwitching indicates that primary is being switched.
	ReasonPrimarySwitching = "PrimarySwitching"
	// ReasonPrimarySwitched indicates that primary has been switched.
	ReasonPrimarySwitched = "PrimarySwitched"

	// ReasonMaxScalePrimaryServerChanged indicates that the primary server managed by MaxScale has changed.
	ReasonMaxScalePrimaryServerChanged = "MaxScalePrimaryServerChanged"

	// ReasonWebhookUpdateFailed indicates that the webhook configuration update failed.
	ReasonWebhookUpdateFailed = "WebhookUpdateFailed"

	// ReasonCRDNotFound indicates that a third party CRD is not present in the cluster.
	ReasonCRDNotFound = "CRDNotFound"

	// SecretKeyNotFound indicates that a required Secret key could not be found.
	SecretKeyNotFound = "SecretKeyNotFound"
)

Variables

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

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

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

	// DefaultReplicationSpec provides sensible defaults for the ReplicationSpec.
	DefaultReplicationSpec = ReplicationSpec{
		Primary: &PrimaryReplication{
			PodIndex:          ptr.To(0),
			AutomaticFailover: ptr.To(true),
		},
		Replica: &ReplicaReplication{
			WaitPoint:         ptr.To(WaitPointAfterSync),
			Gtid:              ptr.To(GtidCurrentPos),
			ConnectionTimeout: ptr.To(tenSeconds),
			ConnectionRetries: ptr.To(10),
			SyncTimeout:       ptr.To(tenSeconds),
		},
		SyncBinlog:    ptr.To(true),
		ProbesEnabled: ptr.To(false),
	}
)

Functions

func IndexConnection added in v0.37.0

func IndexConnection(ctx context.Context, mgr manager.Manager, builder *ctrlbuilder.Builder, client client.Client) error

IndexConnection watches and indexes external resources referred by Connection resources.

func IndexGrant added in v0.37.0

func IndexGrant(ctx context.Context, mgr manager.Manager, builder *ctrlbuilder.Builder, client client.Client) error

IndexGrant watches and indexes external resources referred by Grant resources.

func IndexMariaDB added in v0.37.0

func IndexMariaDB(ctx context.Context, mgr manager.Manager, builder *ctrlbuilder.Builder, client client.Client) error

IndexMariaDB watches and indexes external resources referred by MariaDB resources.

func IndexMaxScale added in v0.37.0

func IndexMaxScale(ctx context.Context, mgr manager.Manager, builder *ctrlbuilder.Builder, client client.Client) error

IndexMaxScale watches and indexes external resources referred by MaxScale resources.

func IndexUser added in v0.37.0

func IndexUser(ctx context.Context, mgr manager.Manager, builder *ctrlbuilder.Builder, client client.Client) error

IndexUser watches and indexes external resources referred by User resources.

func InternalServiceName added in v0.0.26

func InternalServiceName(mariadbName string) string

InternalServiceName defines the name for the internal headless Service

Types

type Affinity added in v0.0.32

type Affinity struct {
	// +optional
	PodAntiAffinity *PodAntiAffinity `json:"podAntiAffinity,omitempty"`
	// +optional
	NodeAffinity *NodeAffinity `json:"nodeAffinity,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#affinity-v1-core.

func (*Affinity) DeepCopy added in v0.0.32

func (in *Affinity) DeepCopy() *Affinity

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

func (*Affinity) DeepCopyInto added in v0.0.32

func (in *Affinity) DeepCopyInto(out *Affinity)

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

func (Affinity) ToKubernetesType added in v0.0.32

func (a Affinity) ToKubernetesType() corev1.Affinity

type AffinityConfig added in v0.0.26

type AffinityConfig struct {
	// Affinity to be used in the Pod.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Affinity `json:",inline"`
	// AntiAffinityEnabled configures PodAntiAffinity so each Pod is scheduled in a different Node, enabling HA.
	// Make sure you have at least as many Nodes available as the replicas to not end up with unscheduled Pods.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	AntiAffinityEnabled *bool `json:"antiAffinityEnabled,omitempty" webhook:"inmutable"`
}

AffinityConfig defines policies to schedule Pods in Nodes.

func (*AffinityConfig) DeepCopy added in v0.0.26

func (in *AffinityConfig) DeepCopy() *AffinityConfig

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

func (*AffinityConfig) DeepCopyInto added in v0.0.26

func (in *AffinityConfig) DeepCopyInto(out *AffinityConfig)

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

func (*AffinityConfig) SetDefaults added in v0.0.26

func (a *AffinityConfig) SetDefaults(antiAffinityInstances ...string)

SetDefaults sets reasonable defaults.

type Backup

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

	Spec   BackupSpec   `json:"spec,omitempty"`
	Status BackupStatus `json:"status,omitempty"`
}

Backup is the Schema for the backups API. It is used to define backup jobs and its storage.

func (*Backup) DeepCopy

func (in *Backup) DeepCopy() *Backup

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

func (*Backup) DeepCopyInto

func (in *Backup) DeepCopyInto(out *Backup)

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

func (*Backup) DeepCopyObject

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

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

func (*Backup) IsComplete

func (b *Backup) IsComplete() bool

func (*Backup) SetDefaults added in v0.0.24

func (b *Backup) SetDefaults(mariadb *MariaDB)

func (*Backup) StagingPVCKey added in v0.35.0

func (b *Backup) StagingPVCKey() types.NamespacedName

func (*Backup) StoragePVCKey added in v0.35.0

func (b *Backup) StoragePVCKey() types.NamespacedName

func (*Backup) Validate added in v0.0.24

func (b *Backup) Validate() error

func (*Backup) Volume

func (b *Backup) Volume() (StorageVolumeSource, error)

type BackupList

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

BackupList contains a list of Backup

func (*BackupList) DeepCopy

func (in *BackupList) DeepCopy() *BackupList

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

func (*BackupList) DeepCopyInto

func (in *BackupList) DeepCopyInto(out *BackupList)

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

func (*BackupList) DeepCopyObject

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

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

type BackupSpec

type BackupSpec struct {
	// JobContainerTemplate defines templates to configure Container objects.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	JobContainerTemplate `json:",inline"`
	// JobPodTemplate defines templates to configure Pod objects.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	JobPodTemplate `json:",inline"`
	// CronJobTemplate defines parameters for configuring CronJob objects.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	CronJobTemplate `json:",inline"`
	// MariaDBRef is a reference to a MariaDB object.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	MariaDBRef MariaDBRef `json:"mariaDbRef" webhook:"inmutable"`
	// Compression algorithm to be used in the Backup.
	// +optional
	// +kubebuilder:validation:Enum=none;bzip2;gzip
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Compression CompressAlgorithm `json:"compression,omitempty"`
	// StagingStorage defines the temporary storage used to keep external backups (i.e. S3) while they are being processed.
	// It defaults to an emptyDir volume, meaning that the backups will be temporarily stored in the node where the Backup Job is scheduled.
	// The staging area gets cleaned up after each backup is completed, consider this for sizing it appropriately.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch","urn:alm:descriptor:com.tectonic.ui:advanced"}
	StagingStorage *BackupStagingStorage `json:"stagingStorage,omitempty" webhook:"inmutable"`
	// Storage defines the final storage for backups.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Storage BackupStorage `json:"storage" webhook:"inmutable"`
	// Schedule defines when the Backup will be taken.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Schedule *Schedule `json:"schedule,omitempty"`
	// MaxRetention defines the retention policy for backups. Old backups will be cleaned up by the Backup Job.
	// It defaults to 30 days.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	MaxRetention metav1.Duration `json:"maxRetention,omitempty" webhook:"inmutableinit"`
	// Databases defines the logical databases to be backed up. If not provided, all databases are backed up.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Databases []string `json:"databases,omitempty"`
	// IgnoreGlobalPriv indicates to ignore the mysql.global_priv in backups.
	// If not provided, it will default to true when the referred MariaDB instance has Galera enabled and otherwise to false.
	// See: https://github.com/mariadb-operator/mariadb-operator/issues/556
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch","urn:alm:descriptor:com.tectonic.ui:advanced"}
	IgnoreGlobalPriv *bool `json:"ignoreGlobalPriv,omitempty"`
	// LogLevel to be used n the Backup Job. It defaults to 'info'.
	// +optional
	// +kubebuilder:default=info
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	LogLevel string `json:"logLevel,omitempty"`
	// BackoffLimit defines the maximum number of attempts to successfully take a Backup.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number","urn:alm:descriptor:com.tectonic.ui:advanced"}
	BackoffLimit int32 `json:"backoffLimit,omitempty"`
	// RestartPolicy to be added to the Backup Pod.
	// +optional
	// +kubebuilder:default=OnFailure
	// +kubebuilder:validation:Enum=Always;OnFailure;Never
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	RestartPolicy corev1.RestartPolicy `json:"restartPolicy,omitempty" webhook:"inmutable"`
	// InheritMetadata defines the metadata to be inherited by children resources.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	InheritMetadata *Metadata `json:"inheritMetadata,omitempty"`
}

BackupSpec defines the desired state of Backup

func (*BackupSpec) DeepCopy

func (in *BackupSpec) DeepCopy() *BackupSpec

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

func (*BackupSpec) DeepCopyInto

func (in *BackupSpec) DeepCopyInto(out *BackupSpec)

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

type BackupStagingStorage added in v0.35.0

type BackupStagingStorage struct {
	// PersistentVolumeClaim is a Kubernetes PVC specification.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	PersistentVolumeClaim *PersistentVolumeClaimSpec `json:"persistentVolumeClaim,omitempty"`
	// Volume is a Kubernetes volume specification.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Volume *StorageVolumeSource `json:"volume,omitempty"`
}

BackupStagingStorage defines the temporary storage used to keep external backups (i.e. S3) while they are being processed.

func (*BackupStagingStorage) DeepCopy added in v0.35.0

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

func (*BackupStagingStorage) DeepCopyInto added in v0.35.0

func (in *BackupStagingStorage) DeepCopyInto(out *BackupStagingStorage)

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

func (*BackupStagingStorage) VolumeOrEmptyDir added in v0.35.0

func (s *BackupStagingStorage) VolumeOrEmptyDir(pvcKey types.NamespacedName) StorageVolumeSource

type BackupStatus

type BackupStatus struct {
	// Conditions for the Backup object.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors={"urn:alm:descriptor:io.kubernetes.conditions"}
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

BackupStatus defines the observed state of Backup

func (*BackupStatus) DeepCopy

func (in *BackupStatus) DeepCopy() *BackupStatus

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

func (*BackupStatus) DeepCopyInto

func (in *BackupStatus) DeepCopyInto(out *BackupStatus)

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

func (*BackupStatus) SetCondition

func (b *BackupStatus) SetCondition(condition metav1.Condition)

type BackupStorage

type BackupStorage struct {
	// S3 defines the configuration to store backups in a S3 compatible storage.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	S3 *S3 `json:"s3,omitempty"`
	// PersistentVolumeClaim is a Kubernetes PVC specification.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	PersistentVolumeClaim *PersistentVolumeClaimSpec `json:"persistentVolumeClaim,omitempty"`
	// Volume is a Kubernetes volume specification.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Volume *StorageVolumeSource `json:"volume,omitempty"`
}

BackupStorage defines the final storage for backups.

func (*BackupStorage) DeepCopy

func (in *BackupStorage) DeepCopy() *BackupStorage

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

func (*BackupStorage) DeepCopyInto

func (in *BackupStorage) DeepCopyInto(out *BackupStorage)

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

func (*BackupStorage) Validate

func (b *BackupStorage) Validate() error

type BasicAuth added in v0.0.32

type BasicAuth struct {
	// Enabled is a flag to enable BasicAuth
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	Enabled bool `json:"enabled,omitempty"`
	// Username to be used for basic authentication
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Username string `json:"username,omitempty"`
	// PasswordSecretKeyRef to be used for basic authentication
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	PasswordSecretKeyRef GeneratedSecretKeyRef `json:"passwordSecretKeyRef,omitempty"`
}

KubernetesAuth refers to the basic authentication mechanism utilized for establishing a connection from the operator to the agent.

func (*BasicAuth) DeepCopy added in v0.0.32

func (in *BasicAuth) DeepCopy() *BasicAuth

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

func (*BasicAuth) DeepCopyInto added in v0.0.32

func (in *BasicAuth) DeepCopyInto(out *BasicAuth)

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

func (*BasicAuth) SetDefaults added in v0.0.32

func (b *BasicAuth) SetDefaults(mariadb *MariaDB)

SetDefaults set reasonable defaults

type BootstrapFrom added in v0.0.28

type BootstrapFrom struct {
	// RestoreSource indicates where the initial data to bootstrap MariaDB with is located.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	RestoreSource `json:",inline"`
	// RestoreJob defines additional properties for the Job used to perform the Restore.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	RestoreJob *Job `json:"restoreJob,omitempty"`
}

BootstrapFrom defines a source to bootstrap MariaDB from.

func (*BootstrapFrom) DeepCopy added in v0.0.28

func (in *BootstrapFrom) DeepCopy() *BootstrapFrom

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

func (*BootstrapFrom) DeepCopyInto added in v0.0.28

func (in *BootstrapFrom) DeepCopyInto(out *BootstrapFrom)

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

type CSIVolumeSource added in v0.35.0

type CSIVolumeSource struct {
	Driver string `json:"driver"`
	// +optional
	ReadOnly *bool `json:"readOnly,omitempty"`
	// +optional
	FSType *string `json:"fsType,omitempty"`
	// +optional
	VolumeAttributes map[string]string `json:"volumeAttributes,omitempty"`
	// +optional
	NodePublishSecretRef *LocalObjectReference `json:"nodePublishSecretRef,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#csivolumesource-v1-core.

func (*CSIVolumeSource) DeepCopy added in v0.35.0

func (in *CSIVolumeSource) DeepCopy() *CSIVolumeSource

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

func (*CSIVolumeSource) DeepCopyInto added in v0.35.0

func (in *CSIVolumeSource) DeepCopyInto(out *CSIVolumeSource)

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

func (CSIVolumeSource) ToKubernetesType added in v0.35.0

func (v CSIVolumeSource) ToKubernetesType() corev1.CSIVolumeSource

type CertificateStatus added in v0.37.0

type CertificateStatus struct {
	// NotAfter indicates that the certificate is not valid after the given date.
	// +operator-sdk:csv:customresourcedefinitions:type=status
	NotAfter metav1.Time `json:"notAfter,omitempty"`
	// NotBefore indicates that the certificate is not valid before the given date.
	// +operator-sdk:csv:customresourcedefinitions:type=status
	NotBefore metav1.Time `json:"notBefore,omitempty"`
	// Subject is the subject of the current certificate.
	// +operator-sdk:csv:customresourcedefinitions:type=status
	Subject string `json:"subject"`
	// Issuer is the issuer of the current certificate.
	// +operator-sdk:csv:customresourcedefinitions:type=status
	Issuer string `json:"issuer"`
}

CertificateStatus represents the current status of a TLS certificate.

func (*CertificateStatus) DeepCopy added in v0.37.0

func (in *CertificateStatus) DeepCopy() *CertificateStatus

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

func (*CertificateStatus) DeepCopyInto added in v0.37.0

func (in *CertificateStatus) DeepCopyInto(out *CertificateStatus)

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

type CleanupPolicy added in v0.0.30

type CleanupPolicy string

CleanupPolicy defines the behavior for cleaning up a resource.

const (
	// CleanupPolicySkip indicates that the resource will NOT be deleted from the database after the CR is deleted.
	CleanupPolicySkip CleanupPolicy = "Skip"
	// CleanupPolicyDelete indicates that the resource will be deleted from the database after the CR is deleted.
	CleanupPolicyDelete CleanupPolicy = "Delete"
)

func (CleanupPolicy) Validate added in v0.0.30

func (c CleanupPolicy) Validate() error

Validate returns an error if the CleanupPolicy is not valid.

type CompressAlgorithm added in v0.34.0

type CompressAlgorithm string

CompressAlgorithm defines the compression algorithm for a Backup resource.

const (
	// No compression
	CompressNone CompressAlgorithm = "none"
	// Bzip2 compression. Good compression ratio, but slower compression/decompression speed compared to gzip.
	CompressBzip2 CompressAlgorithm = "bzip2"
	// Gzip compression. Good compression/decompression speed, but worse compression ratio compared to bzip2.
	CompressGzip CompressAlgorithm = "gzip"
)

func (CompressAlgorithm) Validate added in v0.34.0

func (c CompressAlgorithm) Validate() error

type ConfigMapKeySelector added in v0.0.32

type ConfigMapKeySelector struct {
	LocalObjectReference `json:",inline"`
	Key                  string `json:"key"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#configmapkeyselector-v1-core. +structType=atomic

func (*ConfigMapKeySelector) DeepCopy added in v0.0.32

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

func (*ConfigMapKeySelector) DeepCopyInto added in v0.0.32

func (in *ConfigMapKeySelector) DeepCopyInto(out *ConfigMapKeySelector)

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

func (ConfigMapKeySelector) ToKubernetesType added in v0.0.32

func (s ConfigMapKeySelector) ToKubernetesType() corev1.ConfigMapKeySelector

type ConfigMapVolumeSource added in v0.35.0

type ConfigMapVolumeSource struct {
	LocalObjectReference `json:",inline"`
	// +optional
	DefaultMode *int32 `json:"defaultMode,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#configmapvolumesource-v1-core.

func (*ConfigMapVolumeSource) DeepCopy added in v0.35.0

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

func (*ConfigMapVolumeSource) DeepCopyInto added in v0.35.0

func (in *ConfigMapVolumeSource) DeepCopyInto(out *ConfigMapVolumeSource)

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

func (ConfigMapVolumeSource) ToKubernetesType added in v0.35.0

func (v ConfigMapVolumeSource) ToKubernetesType() corev1.ConfigMapVolumeSource

type Connection

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

	Spec   ConnectionSpec   `json:"spec,omitempty"`
	Status ConnectionStatus `json:"status,omitempty"`
}

Connection is the Schema for the connections API. It is used to configure connection strings for the applications connecting to MariaDB.

func (*Connection) DeepCopy

func (in *Connection) DeepCopy() *Connection

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

func (*Connection) DeepCopyInto

func (in *Connection) DeepCopyInto(out *Connection)

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

func (*Connection) DeepCopyObject

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

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

func (*Connection) IndexerFuncForFieldPath added in v0.0.29

func (c *Connection) IndexerFuncForFieldPath(fieldPath string) (client.IndexerFunc, error)

IndexerFuncForFieldPath returns an indexer function for a given field path.

func (*Connection) IsReady

func (c *Connection) IsReady() bool

func (*Connection) SecretKey

func (c *Connection) SecretKey() string

func (*Connection) SecretName

func (c *Connection) SecretName() string

func (*Connection) SetDefaults added in v0.0.25

func (c *Connection) SetDefaults(refs *ConnectionRefs) error

type ConnectionList

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

ConnectionList contains a list of Connection

func (*ConnectionList) DeepCopy

func (in *ConnectionList) DeepCopy() *ConnectionList

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

func (*ConnectionList) DeepCopyInto

func (in *ConnectionList) DeepCopyInto(out *ConnectionList)

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

func (*ConnectionList) DeepCopyObject

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

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

func (*ConnectionList) ListItems added in v0.0.29

func (m *ConnectionList) ListItems() []client.Object

ListItems gets a copy of the Items slice.

type ConnectionRefs added in v0.0.25

type ConnectionRefs struct {
	MariaDB  *MariaDB
	MaxScale *MaxScale
}

ConnectionRefs contains the resolved references of a Connection.

func (*ConnectionRefs) DeepCopy added in v0.0.25

func (in *ConnectionRefs) DeepCopy() *ConnectionRefs

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

func (*ConnectionRefs) DeepCopyInto added in v0.0.25

func (in *ConnectionRefs) DeepCopyInto(out *ConnectionRefs)

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

func (*ConnectionRefs) Host added in v0.0.25

func (r *ConnectionRefs) Host(c *Connection) (*string, error)

Host returns the host address to connect to.

func (*ConnectionRefs) Port added in v0.0.25

func (r *ConnectionRefs) Port() (*int32, error)

Port returns the port to connect to.

type ConnectionSpec

type ConnectionSpec struct {
	// ContainerTemplate defines templates to configure Container objects.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	ConnectionTemplate `json:",inline"`
	// MariaDBRef is a reference to the MariaDB to connect to. Either MariaDBRef or MaxScaleRef must be provided.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	MariaDBRef *MariaDBRef `json:"mariaDbRef,omitempty"`
	// MaxScaleRef is a reference to the MaxScale to connect to. Either MariaDBRef or MaxScaleRef must be provided.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	MaxScaleRef *ObjectReference `json:"maxScaleRef,omitempty"`
	// Username to use for configuring the Connection.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Username string `json:"username"`
	// PasswordSecretKeyRef is a reference to the password to use for configuring the Connection.
	// Either passwordSecretKeyRef or tlsClientCertSecretRef must be provided as client credentials.
	// If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the password.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	PasswordSecretKeyRef *SecretKeySelector `json:"passwordSecretKeyRef,omitempty"`
	// TLSClientCertSecretRef is a reference to a Kubernetes TLS Secret used as authentication when checking the connection health.
	// Either passwordSecretKeyRef or tlsClientCertSecretRef must be provided as client credentials.
	// If not provided, the client certificate provided by the referred MariaDB is used if TLS is enabled.
	// If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the client certificate.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	TLSClientCertSecretRef *LocalObjectReference `json:"tlsClientCertSecretRef,omitempty"`
	// Host to connect to. If not provided, it defaults to the MariaDB host or to the MaxScale host.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number","urn:alm:descriptor:com.tectonic.ui:advanced"}
	Host string `json:"host,omitempty"`
	// Database to use when configuring the Connection.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Database *string `json:"database,omitempty"`
}

ConnectionSpec defines the desired state of Connection

func (*ConnectionSpec) DeepCopy

func (in *ConnectionSpec) DeepCopy() *ConnectionSpec

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

func (*ConnectionSpec) DeepCopyInto

func (in *ConnectionSpec) DeepCopyInto(out *ConnectionSpec)

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

type ConnectionStatus

type ConnectionStatus struct {
	// Conditions for the Connection object.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors={"urn:alm:descriptor:io.kubernetes.conditions"}
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

ConnectionStatus defines the observed state of Connection

func (*ConnectionStatus) DeepCopy

func (in *ConnectionStatus) DeepCopy() *ConnectionStatus

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

func (*ConnectionStatus) DeepCopyInto

func (in *ConnectionStatus) DeepCopyInto(out *ConnectionStatus)

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

func (*ConnectionStatus) SetCondition

func (c *ConnectionStatus) SetCondition(condition metav1.Condition)

type ConnectionTemplate

type ConnectionTemplate struct {
	// SecretName to be used in the Connection.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	SecretName *string `json:"secretName,omitempty" webhook:"inmutableinit"`
	// SecretTemplate to be used in the Connection.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	SecretTemplate *SecretTemplate `json:"secretTemplate,omitempty"`
	// HealthCheck to be used in the Connection.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	HealthCheck *HealthCheck `json:"healthCheck,omitempty"`
	// Params to be used in the Connection.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Params map[string]string `json:"params,omitempty"`
	// ServiceName to be used in the Connection.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	ServiceName *string `json:"serviceName,omitempty"`
	// Port to connect to. If not provided, it defaults to the MariaDB port or to the first MaxScale listener.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number","urn:alm:descriptor:com.tectonic.ui:advanced"}
	Port int32 `json:"port,omitempty"`
}

ConnectionTemplate defines a template to customize Connection objects.

func (*ConnectionTemplate) DeepCopy

func (in *ConnectionTemplate) DeepCopy() *ConnectionTemplate

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

func (*ConnectionTemplate) DeepCopyInto

func (in *ConnectionTemplate) DeepCopyInto(out *ConnectionTemplate)

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

type Container added in v0.0.24

type Container struct {
	// Name to be given to the container.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Name string `json:"name,omitempty"`
	// Image name to be used by the container. The supported format is `<image>:<tag>`.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Image string `json:"image"`
	// ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`.
	// +optional
	// +kubebuilder:validation:Enum=Always;Never;IfNotPresent
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:imagePullPolicy","urn:alm:descriptor:com.tectonic.ui:advanced"}
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
	// Command to be used in the Container.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Command []string `json:"command,omitempty"`
	// Args to be used in the Container.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Args []string `json:"args,omitempty"`
	// Env represents the environment variables to be injected in a container.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Env []EnvVar `json:"env,omitempty"`
	// VolumeMounts to be used in the Container.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	VolumeMounts []VolumeMount `json:"volumeMounts,omitempty" webhook:"inmutable"`
	// Resouces describes the compute resource requirements.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:resourceRequirements"}
	Resources *ResourceRequirements `json:"resources,omitempty"`
}

Container object definition.

func (*Container) DeepCopy added in v0.0.24

func (in *Container) DeepCopy() *Container

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

func (*Container) DeepCopyInto added in v0.0.24

func (in *Container) DeepCopyInto(out *Container)

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

type ContainerTemplate added in v0.0.16

type ContainerTemplate struct {
	// Command to be used in the Container.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Command []string `json:"command,omitempty"`
	// Args to be used in the Container.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Args []string `json:"args,omitempty"`
	// Env represents the environment variables to be injected in a container.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Env []EnvVar `json:"env,omitempty"`
	// EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	EnvFrom []EnvFromSource `json:"envFrom,omitempty"`
	// VolumeMounts to be used in the Container.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	VolumeMounts []VolumeMount `json:"volumeMounts,omitempty" webhook:"inmutable"`
	// LivenessProbe to be used in the Container.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	LivenessProbe *Probe `json:"livenessProbe,omitempty"`
	// ReadinessProbe to be used in the Container.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	ReadinessProbe *Probe `json:"readinessProbe,omitempty"`
	// StartupProbe to be used in the Container.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:resourceRequirements"}
	StartupProbe *Probe `json:"startupProbe,omitempty"`
	// Resouces describes the compute resource requirements.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:resourceRequirements"}
	Resources *ResourceRequirements `json:"resources,omitempty"`
	// SecurityContext holds security configuration that will be applied to a container.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	SecurityContext *SecurityContext `json:"securityContext,omitempty"`
}

ContainerTemplate defines a template to configure Container objects.

func (*ContainerTemplate) DeepCopy added in v0.0.16

func (in *ContainerTemplate) DeepCopy() *ContainerTemplate

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

func (*ContainerTemplate) DeepCopyInto added in v0.0.16

func (in *ContainerTemplate) DeepCopyInto(out *ContainerTemplate)

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

type CooperativeMonitoring added in v0.0.25

type CooperativeMonitoring string

CooperativeMonitoring enables coordination between multiple MaxScale instances running monitors. See: https://mariadb.com/docs/server/architecture/components/maxscale/monitors/mariadbmon/use-cooperative-locking-ha-maxscale-mariadb-monitor/

const (
	// CooperativeMonitoringMajorityOfAll requires a lock from the majority of the MariaDB servers, even the ones that are down.
	CooperativeMonitoringMajorityOfAll CooperativeMonitoring = "majority_of_all"
	// CooperativeMonitoringMajorityOfRunning requires a lock from the majority of the MariaDB servers.
	CooperativeMonitoringMajorityOfRunning CooperativeMonitoring = "majority_of_running"
)

type CronJobTemplate added in v0.0.30

type CronJobTemplate struct {
	// SuccessfulJobsHistoryLimit defines the maximum number of successful Jobs to be displayed.
	// +optional
	// +kubebuilder:validation:Minimum=0
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	SuccessfulJobsHistoryLimit *int32 `json:"successfulJobsHistoryLimit,omitempty"`
	// FailedJobsHistoryLimit defines the maximum number of failed Jobs to be displayed.
	// +optional
	// +kubebuilder:validation:Minimum=0
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	FailedJobsHistoryLimit *int32 `json:"failedJobsHistoryLimit,omitempty"`
	// TimeZone defines the timezone associated with the cron expression.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	TimeZone *string `json:"timeZone,omitempty"`
}

CronJobTemplate defines parameters for configuring CronJob objects.

func (*CronJobTemplate) DeepCopy added in v0.0.30

func (in *CronJobTemplate) DeepCopy() *CronJobTemplate

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

func (*CronJobTemplate) DeepCopyInto added in v0.0.30

func (in *CronJobTemplate) DeepCopyInto(out *CronJobTemplate)

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

type Database

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

	Spec   DatabaseSpec   `json:"spec,omitempty"`
	Status DatabaseStatus `json:"status,omitempty"`
}

Database is the Schema for the databases API. It is used to define a logical database as if you were running a 'CREATE DATABASE' statement.

func (*Database) CleanupPolicy added in v0.0.30

func (d *Database) CleanupPolicy() *CleanupPolicy

func (*Database) DatabaseNameOrDefault added in v0.0.20

func (d *Database) DatabaseNameOrDefault() string

func (*Database) DeepCopy

func (in *Database) DeepCopy() *Database

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

func (*Database) DeepCopyInto

func (in *Database) DeepCopyInto(out *Database)

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

func (*Database) DeepCopyObject

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

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

func (*Database) IsBeingDeleted

func (d *Database) IsBeingDeleted() bool

func (*Database) IsReady

func (d *Database) IsReady() bool

func (*Database) MariaDBRef

func (d *Database) MariaDBRef() *MariaDBRef

func (*Database) RequeueInterval added in v0.0.24

func (d *Database) RequeueInterval() *metav1.Duration

func (*Database) RetryInterval added in v0.0.21

func (d *Database) RetryInterval() *metav1.Duration

type DatabaseList

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

DatabaseList contains a list of Database

func (*DatabaseList) DeepCopy

func (in *DatabaseList) DeepCopy() *DatabaseList

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

func (*DatabaseList) DeepCopyInto

func (in *DatabaseList) DeepCopyInto(out *DatabaseList)

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

func (*DatabaseList) DeepCopyObject

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

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

type DatabaseSpec

type DatabaseSpec struct {
	// SQLTemplate defines templates to configure SQL objects.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	SQLTemplate `json:",inline"`
	// MariaDBRef is a reference to a MariaDB object.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	MariaDBRef MariaDBRef `json:"mariaDbRef" webhook:"inmutable"`
	// CharacterSet to use in the Database.
	// +optional
	// +kubebuilder:default=utf8
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	CharacterSet string `json:"characterSet,omitempty" webhook:"inmutable"`
	// Collate to use in the Database.
	// +optional
	// +kubebuilder:default=utf8_general_ci
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Collate string `json:"collate,omitempty" webhook:"inmutable"`
	// Name overrides the default Database name provided by metadata.name.
	// +optional
	// +kubebuilder:validation:MaxLength=80
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Name string `json:"name,omitempty" webhook:"inmutable"`
}

DatabaseSpec defines the desired state of Database

func (*DatabaseSpec) DeepCopy

func (in *DatabaseSpec) DeepCopy() *DatabaseSpec

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

func (*DatabaseSpec) DeepCopyInto

func (in *DatabaseSpec) DeepCopyInto(out *DatabaseSpec)

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

type DatabaseStatus

type DatabaseStatus struct {
	// Conditions for the Database object.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors={"urn:alm:descriptor:io.kubernetes.conditions"}
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

DatabaseStatus defines the observed state of Database

func (*DatabaseStatus) DeepCopy

func (in *DatabaseStatus) DeepCopy() *DatabaseStatus

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

func (*DatabaseStatus) DeepCopyInto

func (in *DatabaseStatus) DeepCopyInto(out *DatabaseStatus)

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

func (*DatabaseStatus) SetCondition

func (d *DatabaseStatus) SetCondition(condition metav1.Condition)

type EmptyDirVolumeSource added in v0.35.0

type EmptyDirVolumeSource struct {
	// +optional
	Medium corev1.StorageMedium `json:"medium,omitempty"`
	// +optional
	SizeLimit *resource.Quantity `json:"sizeLimit,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#emptydirvolumesource-v1-core.

func (*EmptyDirVolumeSource) DeepCopy added in v0.35.0

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

func (*EmptyDirVolumeSource) DeepCopyInto added in v0.35.0

func (in *EmptyDirVolumeSource) DeepCopyInto(out *EmptyDirVolumeSource)

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

func (EmptyDirVolumeSource) ToKubernetesType added in v0.35.0

func (v EmptyDirVolumeSource) ToKubernetesType() corev1.EmptyDirVolumeSource

type EnvFromSource added in v0.0.32

type EnvFromSource struct {
	// +optional
	Prefix string `json:"prefix,omitempty"`
	// +optional
	ConfigMapRef *LocalObjectReference `json:"configMapRef,omitempty"`
	// +optional
	SecretRef *LocalObjectReference `json:"secretRef,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#envfromsource-v1-core.

func (*EnvFromSource) DeepCopy added in v0.0.32

func (in *EnvFromSource) DeepCopy() *EnvFromSource

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

func (*EnvFromSource) DeepCopyInto added in v0.0.32

func (in *EnvFromSource) DeepCopyInto(out *EnvFromSource)

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

func (EnvFromSource) ToKubernetesType added in v0.0.32

func (e EnvFromSource) ToKubernetesType() corev1.EnvFromSource

type EnvVar added in v0.0.32

type EnvVar struct {
	// Name of the environment variable. Must be a C_IDENTIFIER.
	Name string `json:"name"`
	// +optional
	Value string `json:"value,omitempty"`
	// +optional
	ValueFrom *EnvVarSource `json:"valueFrom,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#envvarsource-v1-core.

func (*EnvVar) DeepCopy added in v0.0.32

func (in *EnvVar) DeepCopy() *EnvVar

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

func (*EnvVar) DeepCopyInto added in v0.0.32

func (in *EnvVar) DeepCopyInto(out *EnvVar)

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

func (EnvVar) ToKubernetesType added in v0.0.32

func (e EnvVar) ToKubernetesType() corev1.EnvVar

type EnvVarSource added in v0.0.32

type EnvVarSource struct {
	// +optional
	FieldRef *ObjectFieldSelector `json:"fieldRef,omitempty"`
	// +optional
	ConfigMapKeyRef *ConfigMapKeySelector `json:"configMapKeyRef,omitempty"`
	// +optional
	SecretKeyRef *SecretKeySelector `json:"secretKeyRef,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#envvarsource-v1-core.

func (*EnvVarSource) DeepCopy added in v0.0.32

func (in *EnvVarSource) DeepCopy() *EnvVarSource

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

func (*EnvVarSource) DeepCopyInto added in v0.0.32

func (in *EnvVarSource) DeepCopyInto(out *EnvVarSource)

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

func (EnvVarSource) ToKubernetesType added in v0.0.32

func (e EnvVarSource) ToKubernetesType() corev1.EnvVarSource

type ExecAction added in v0.0.32

type ExecAction struct {
	// +optional
	// +listType=atomic
	Command []string `json:"command,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#execaction-v1-core.

func (*ExecAction) DeepCopy added in v0.0.32

func (in *ExecAction) DeepCopy() *ExecAction

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

func (*ExecAction) DeepCopyInto added in v0.0.32

func (in *ExecAction) DeepCopyInto(out *ExecAction)

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

func (ExecAction) ToKubernetesType added in v0.0.32

func (e ExecAction) ToKubernetesType() corev1.ExecAction

type Exporter

type Exporter struct {
	// Image name to be used as metrics exporter. The supported format is `<image>:<tag>`.
	// Only mysqld-exporter >= v0.15.0 is supported: https://github.com/prometheus/mysqld_exporter
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Image string `json:"image,omitempty"`
	// ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`.
	// +optional
	// +kubebuilder:validation:Enum=Always;Never;IfNotPresent
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:imagePullPolicy"}
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
	// ImagePullSecrets is the list of pull Secrets to be used to pull the image.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	ImagePullSecrets []LocalObjectReference `json:"imagePullSecrets,omitempty" webhook:"inmutable"`
	// Args to be used in the Container.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Args []string `json:"args,omitempty"`
	// Port where the exporter will be listening for connections.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"}
	Port int32 `json:"port,omitempty"`
	// Resouces describes the compute resource requirements.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:resourceRequirements"}
	Resources *ResourceRequirements `json:"resources,omitempty"`
	// PodMetadata defines extra metadata for the Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	PodMetadata *Metadata `json:"podMetadata,omitempty"`
	// SecurityContext holds container-level security attributes.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	SecurityContext *SecurityContext `json:"securityContext,omitempty"`
	// SecurityContext holds pod-level security attributes and common container settings.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	PodSecurityContext *PodSecurityContext `json:"podSecurityContext,omitempty"`
	// Affinity to be used in the Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Affinity *AffinityConfig `json:"affinity,omitempty"`
	// NodeSelector to be used in the Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`
	// Tolerations to be used in the Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
	// PriorityClassName to be used in the Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	PriorityClassName *string `json:"priorityClassName,omitempty" webhook:"inmutable"`
}

Exporter defines a metrics exporter container.

func (*Exporter) DeepCopy

func (in *Exporter) DeepCopy() *Exporter

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

func (*Exporter) DeepCopyInto

func (in *Exporter) DeepCopyInto(out *Exporter)

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

type Galera added in v0.0.16

type Galera struct {
	// GaleraSpec is the Galera desired state specification.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	GaleraSpec `json:",inline"`
	// Enabled is a flag to enable Galera.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	Enabled bool `json:"enabled,omitempty"`
}

Galera allows you to enable multi-master HA via Galera in your MariaDB cluster.

func (*Galera) DeepCopy added in v0.0.16

func (in *Galera) DeepCopy() *Galera

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

func (*Galera) DeepCopyInto added in v0.0.16

func (in *Galera) DeepCopyInto(out *Galera)

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

func (*Galera) SetDefaults added in v0.0.26

func (g *Galera) SetDefaults(mdb *MariaDB, env *environment.OperatorEnv) error

SetDefaults sets reasonable defaults.

type GaleraAgent added in v0.0.16

type GaleraAgent struct {
	// ContainerTemplate defines a template to configure Container objects.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	ContainerTemplate `json:",inline"`
	// Image name to be used by the MariaDB instances. The supported format is `<image>:<tag>`.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Image string `json:"image,omitempty"`
	// ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`.
	// +optional
	// +kubebuilder:validation:Enum=Always;Never;IfNotPresent
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:imagePullPolicy"}
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
	// Port where the agent will be listening for API connections.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Port int32 `json:"port,omitempty"`
	// Port where the agent will be listening for probe connections.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	ProbePort int32 `json:"probePort,omitempty"`
	// KubernetesAuth to be used by the agent container
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	KubernetesAuth *KubernetesAuth `json:"kubernetesAuth,omitempty"`
	// BasicAuth to be used by the agent container
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	BasicAuth *BasicAuth `json:"basicAuth,omitempty"`
	// GracefulShutdownTimeout is the time we give to the agent container in order to gracefully terminate in-flight requests.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	GracefulShutdownTimeout *metav1.Duration `json:"gracefulShutdownTimeout,omitempty"`
}

GaleraAgent is a sidecar agent that co-operates with mariadb-operator.

func (*GaleraAgent) DeepCopy added in v0.0.16

func (in *GaleraAgent) DeepCopy() *GaleraAgent

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

func (*GaleraAgent) DeepCopyInto added in v0.0.16

func (in *GaleraAgent) DeepCopyInto(out *GaleraAgent)

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

func (*GaleraAgent) SetDefaults added in v0.0.26

func (r *GaleraAgent) SetDefaults(mariadb *MariaDB, env *environment.OperatorEnv) error

SetDefaults sets reasonable defaults.

func (*GaleraAgent) Validate added in v0.0.32

func (r *GaleraAgent) Validate() error

Validate determines if a Galera Agent object is valid.

type GaleraBootstrapStatus added in v0.0.28

type GaleraBootstrapStatus struct {
	Time *metav1.Time `json:"time,omitempty"`
	Pod  *string      `json:"pod,omitempty"`
}

GaleraBootstrapStatus indicates when and in which Pod the cluster bootstrap process has been performed.

func (*GaleraBootstrapStatus) DeepCopy added in v0.0.28

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

func (*GaleraBootstrapStatus) DeepCopyInto added in v0.0.28

func (in *GaleraBootstrapStatus) DeepCopyInto(out *GaleraBootstrapStatus)

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

type GaleraConfig added in v0.0.26

type GaleraConfig struct {
	// ReuseStorageVolume indicates that storage volume used by MariaDB should be reused to store the Galera configuration files.
	// It defaults to false, which implies that a dedicated volume for the Galera configuration files is provisioned.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	ReuseStorageVolume *bool `json:"reuseStorageVolume,omitempty" webhook:"inmutableinit"`
	// VolumeClaimTemplate is a template for the PVC that will contain the Galera configuration files shared between the InitContainer, Agent and MariaDB.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	VolumeClaimTemplate *VolumeClaimTemplate `json:"volumeClaimTemplate,omitempty" webhook:"inmutableinit"`
}

GaleraConfig defines storage options for the Galera configuration files.

func (*GaleraConfig) DeepCopy added in v0.0.26

func (in *GaleraConfig) DeepCopy() *GaleraConfig

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

func (*GaleraConfig) DeepCopyInto added in v0.0.26

func (in *GaleraConfig) DeepCopyInto(out *GaleraConfig)

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

func (*GaleraConfig) SetDefaults added in v0.0.26

func (g *GaleraConfig) SetDefaults()

SetDefaults sets reasonable defaults.

type GaleraInit added in v0.0.32

type GaleraInit struct {
	// ContainerTemplate defines a template to configure Container objects.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	ContainerTemplate `json:",inline"`
	// Image name to be used by the MariaDB instances. The supported format is `<image>:<tag>`.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Image string `json:"image"`
	// ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`.
	// +optional
	// +kubebuilder:validation:Enum=Always;Never;IfNotPresent
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:imagePullPolicy","urn:alm:descriptor:com.tectonic.ui:advanced"}
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
}

GaleraInit is an init container that runs in the MariaDB Pod and co-operates with mariadb-operator.

func (*GaleraInit) DeepCopy added in v0.0.32

func (in *GaleraInit) DeepCopy() *GaleraInit

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

func (*GaleraInit) DeepCopyInto added in v0.0.32

func (in *GaleraInit) DeepCopyInto(out *GaleraInit)

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

type GaleraInitJob added in v0.0.32

type GaleraInitJob struct {
	// Metadata defines additional metadata for the Galera init Job.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Metadata *Metadata `json:"metadata,omitempty"`
	// Resouces describes the compute resource requirements.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:resourceRequirements"}
	Resources *ResourceRequirements `json:"resources,omitempty"`
}

GaleraInitJob defines a Job used to be used to initialize the Galera cluster.

func (*GaleraInitJob) DeepCopy added in v0.0.32

func (in *GaleraInitJob) DeepCopy() *GaleraInitJob

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

func (*GaleraInitJob) DeepCopyInto added in v0.0.32

func (in *GaleraInitJob) DeepCopyInto(out *GaleraInitJob)

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

type GaleraRecovery added in v0.0.16

type GaleraRecovery struct {
	// Enabled is a flag to enable GaleraRecovery.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	Enabled bool `json:"enabled"`
	// MinClusterSize is the minimum number of replicas to consider the cluster healthy. It can be either a number of replicas (1) or a percentage (50%).
	// If Galera consistently reports less replicas than this value for the given 'ClusterHealthyTimeout' interval, a cluster recovery is iniated.
	// It defaults to '1' replica, and it is highly recommendeded to keep this value at '1' in most cases.
	// If set to more than one replica, the cluster recovery process may restart the healthy replicas as well.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	MinClusterSize *intstr.IntOrString `json:"minClusterSize,omitempty"`
	// ClusterMonitorInterval represents the interval used to monitor the Galera cluster health.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	ClusterMonitorInterval *metav1.Duration `json:"clusterMonitorInterval,omitempty"`
	// ClusterHealthyTimeout represents the duration at which a Galera cluster, that consistently failed health checks,
	// is considered unhealthy, and consequently the Galera recovery process will be initiated by the operator.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	ClusterHealthyTimeout *metav1.Duration `json:"clusterHealthyTimeout,omitempty"`
	// ClusterBootstrapTimeout is the time limit for bootstrapping a cluster.
	// Once this timeout is reached, the Galera recovery state is reset and a new cluster bootstrap will be attempted.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	ClusterBootstrapTimeout *metav1.Duration `json:"clusterBootstrapTimeout,omitempty"`
	// ClusterUpscaleTimeout represents the maximum duration for upscaling the cluster's StatefulSet during the recovery process.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	ClusterUpscaleTimeout *metav1.Duration `json:"clusterUpscaleTimeout,omitempty"`
	// ClusterDownscaleTimeout represents the maximum duration for downscaling the cluster's StatefulSet during the recovery process.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	ClusterDownscaleTimeout *metav1.Duration `json:"clusterDownscaleTimeout,omitempty"`
	// PodRecoveryTimeout is the time limit for recevorying the sequence of a Pod during the cluster recovery.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	PodRecoveryTimeout *metav1.Duration `json:"podRecoveryTimeout,omitempty"`
	// PodSyncTimeout is the time limit for a Pod to join the cluster after having performed a cluster bootstrap during the cluster recovery.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	PodSyncTimeout *metav1.Duration `json:"podSyncTimeout,omitempty"`
	// ForceClusterBootstrapInPod allows you to manually initiate the bootstrap process in a specific Pod.
	// IMPORTANT: Use this option only in exceptional circumstances. Not selecting the Pod with the highest sequence number may result in data loss.
	// IMPORTANT: Ensure you unset this field after completing the bootstrap to allow the operator to choose the appropriate Pod to bootstrap from in an event of cluster recovery.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	ForceClusterBootstrapInPod *string `json:"forceClusterBootstrapInPod,omitempty"`
	// Job defines a Job that co-operates with mariadb-operator by performing the Galera cluster recovery .
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Job *GaleraRecoveryJob `json:"job,omitempty"`
}

GaleraRecovery is the recovery process performed by the operator whenever the Galera cluster is not healthy. More info: https://galeracluster.com/library/documentation/crash-recovery.html.

func (*GaleraRecovery) DeepCopy added in v0.0.16

func (in *GaleraRecovery) DeepCopy() *GaleraRecovery

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

func (*GaleraRecovery) DeepCopyInto added in v0.0.16

func (in *GaleraRecovery) DeepCopyInto(out *GaleraRecovery)

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

func (*GaleraRecovery) HasMinClusterSize added in v0.0.26

func (g *GaleraRecovery) HasMinClusterSize(currentSize int, mdb *MariaDB) (bool, error)

HasMinClusterSize returns whether the current cluster has the minimum number of replicas. If not, a cluster recovery will be performed.

func (*GaleraRecovery) SetDefaults added in v0.0.26

func (g *GaleraRecovery) SetDefaults(mdb *MariaDB)

SetDefaults sets reasonable defaults.

func (*GaleraRecovery) Validate added in v0.0.26

func (g *GaleraRecovery) Validate(mdb *MariaDB) error

Validate determines whether a GaleraRecovery is valid.

type GaleraRecoveryJob added in v0.0.30

type GaleraRecoveryJob struct {
	// Metadata defines additional metadata for the Galera recovery Jobs.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Metadata *Metadata `json:"metadata,omitempty"`
	// Resouces describes the compute resource requirements.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:resourceRequirements"}
	Resources *ResourceRequirements `json:"resources,omitempty"`
	// PodAffinity indicates whether the recovery Jobs should run in the same Node as the MariaDB Pods. It defaults to true.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:resourceRequirements"}
	PodAffinity *bool `json:"podAffinity,omitempty"`
}

GaleraRecoveryJob defines a Job used to be used to recover the Galera cluster.

func (*GaleraRecoveryJob) DeepCopy added in v0.0.30

func (in *GaleraRecoveryJob) DeepCopy() *GaleraRecoveryJob

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

func (*GaleraRecoveryJob) DeepCopyInto added in v0.0.30

func (in *GaleraRecoveryJob) DeepCopyInto(out *GaleraRecoveryJob)

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

type GaleraRecoveryStatus added in v0.0.16

type GaleraRecoveryStatus struct {
	// State is a per Pod representation of the Galera state file (grastate.dat).
	State map[string]*recovery.GaleraState `json:"state,omitempty"`
	// State is a per Pod representation of the sequence recovery process.
	Recovered map[string]*recovery.Bootstrap `json:"recovered,omitempty"`
	// Bootstrap indicates when and in which Pod the cluster bootstrap process has been performed.
	Bootstrap *GaleraBootstrapStatus `json:"bootstrap,omitempty"`
	// PodsRestarted that the Pods have been restarted after the cluster bootstrap.
	PodsRestarted *bool `json:"podsRestarted,omitempty"`
}

GaleraRecoveryStatus is the current state of the Galera recovery process.

func (*GaleraRecoveryStatus) DeepCopy added in v0.0.16

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

func (*GaleraRecoveryStatus) DeepCopyInto added in v0.0.16

func (in *GaleraRecoveryStatus) DeepCopyInto(out *GaleraRecoveryStatus)

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

type GaleraSpec added in v0.0.16

type GaleraSpec struct {
	// Primary is the Galera configuration for the primary node.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Primary PrimaryGalera `json:"primary,omitempty"`
	// SST is the Snapshot State Transfer used when new Pods join the cluster.
	// More info: https://galeracluster.com/library/documentation/sst.html.
	// +optional
	// +kubebuilder:validation:Enum=rsync;mariabackup;mysqldump
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	SST SST `json:"sst,omitempty"`
	// AvailableWhenDonor indicates whether a donor node should be responding to queries. It defaults to false.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch","urn:alm:descriptor:com.tectonic.ui:advanced"}
	AvailableWhenDonor *bool `json:"availableWhenDonor,omitempty"`
	// GaleraLibPath is a path inside the MariaDB image to the wsrep provider plugin. It is defaulted if not provided.
	// More info: https://galeracluster.com/library/documentation/mysql-wsrep-options.html#wsrep-provider.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	GaleraLibPath string `json:"galeraLibPath,omitempty"`
	// ReplicaThreads is the number of replica threads used to apply Galera write sets in parallel.
	// More info: https://mariadb.com/kb/en/galera-cluster-system-variables/#wsrep_slave_threads.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	ReplicaThreads int `json:"replicaThreads,omitempty"`
	// ProviderOptions is map of Galera configuration parameters.
	// More info: https://mariadb.com/kb/en/galera-cluster-system-variables/#wsrep_provider_options.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	ProviderOptions map[string]string `json:"providerOptions,omitempty"`
	// GaleraAgent is a sidecar agent that co-operates with mariadb-operator.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Agent GaleraAgent `json:"agent,omitempty"`
	// GaleraRecovery is the recovery process performed by the operator whenever the Galera cluster is not healthy.
	// More info: https://galeracluster.com/library/documentation/crash-recovery.html.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Recovery *GaleraRecovery `json:"recovery,omitempty"`
	// InitContainer is an init container that runs in the MariaDB Pod and co-operates with mariadb-operator.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	InitContainer GaleraInit `json:"initContainer,omitempty"`
	// InitJob defines a Job that co-operates with mariadb-operator by performing initialization tasks.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	InitJob *GaleraInitJob `json:"initJob,omitempty"`
	// GaleraConfig defines storage options for the Galera configuration files.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Config GaleraConfig `json:"config,omitempty"`
}

GaleraSpec is the Galera desired state specification.

func (*GaleraSpec) DeepCopy added in v0.0.16

func (in *GaleraSpec) DeepCopy() *GaleraSpec

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

func (*GaleraSpec) DeepCopyInto added in v0.0.16

func (in *GaleraSpec) DeepCopyInto(out *GaleraSpec)

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

type GeneratedSecretKeyRef added in v0.0.28

type GeneratedSecretKeyRef struct {
	// SecretKeySelector is a reference to a Secret key.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	SecretKeySelector `json:",inline"`
	// Generate indicates whether the Secret should be generated if the Secret referenced is not present.
	// +optional
	// +kubebuilder:default=false
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	Generate bool `json:"generate,omitempty"`
}

GeneratedSecretKeyRef defines a reference to a Secret that can be automatically generated by mariadb-operator if needed.

func (*GeneratedSecretKeyRef) DeepCopy added in v0.0.28

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

func (*GeneratedSecretKeyRef) DeepCopyInto added in v0.0.28

func (in *GeneratedSecretKeyRef) DeepCopyInto(out *GeneratedSecretKeyRef)

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

type Grant

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

	Spec   GrantSpec   `json:"spec,omitempty"`
	Status GrantStatus `json:"status,omitempty"`
}

Grant is the Schema for the grants API. It is used to define grants as if you were running a 'GRANT' statement.

func (*Grant) AccountName added in v0.0.20

func (g *Grant) AccountName() string

func (*Grant) CleanupPolicy added in v0.0.30

func (g *Grant) CleanupPolicy() *CleanupPolicy

func (*Grant) DeepCopy

func (in *Grant) DeepCopy() *Grant

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

func (*Grant) DeepCopyInto

func (in *Grant) DeepCopyInto(out *Grant)

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

func (*Grant) DeepCopyObject

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

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

func (*Grant) HostnameOrDefault added in v0.0.20

func (g *Grant) HostnameOrDefault() string

func (*Grant) IndexerFuncForFieldPath added in v0.0.29

func (g *Grant) IndexerFuncForFieldPath(fieldPath string) (client.IndexerFunc, error)

IndexerFuncForFieldPath returns an indexer function for a given field path.

func (*Grant) IsBeingDeleted

func (g *Grant) IsBeingDeleted() bool

func (*Grant) IsReady

func (m *Grant) IsReady() bool

func (*Grant) MariaDBRef

func (g *Grant) MariaDBRef() *MariaDBRef

func (*Grant) RequeueInterval added in v0.0.24

func (d *Grant) RequeueInterval() *metav1.Duration

func (*Grant) RetryInterval added in v0.0.21

func (g *Grant) RetryInterval() *metav1.Duration

type GrantList

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

GrantList contains a list of Grant

func (*GrantList) DeepCopy

func (in *GrantList) DeepCopy() *GrantList

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

func (*GrantList) DeepCopyInto

func (in *GrantList) DeepCopyInto(out *GrantList)

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

func (*GrantList) DeepCopyObject

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

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

func (*GrantList) ListItems added in v0.0.29

func (m *GrantList) ListItems() []ctrlclient.Object

ListItems gets a copy of the Items slice.

type GrantSpec

type GrantSpec struct {
	// SQLTemplate defines templates to configure SQL objects.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	SQLTemplate `json:",inline"`
	// MariaDBRef is a reference to a MariaDB object.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	MariaDBRef MariaDBRef `json:"mariaDbRef" webhook:"inmutable"`
	// Privileges to use in the Grant.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=1
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Privileges []string `json:"privileges" webhook:"inmutable"`
	// Database to use in the Grant.
	// +optional
	// +kubebuilder:default=*
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Database string `json:"database,omitempty" webhook:"inmutable"`
	// Table to use in the Grant.
	// +optional
	// +kubebuilder:default=*
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Table string `json:"table,omitempty" webhook:"inmutable"`
	// Username to use in the Grant.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Username string `json:"username" webhook:"inmutable"`
	// Host to use in the Grant. It can be localhost, an IP or '%'.
	// +optional
	// +kubebuilder:MaxLength=255
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Host *string `json:"host,omitempty" webhook:"inmutable"`
	// GrantOption to use in the Grant.
	// +optional
	// +kubebuilder:default=false
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	GrantOption bool `json:"grantOption,omitempty" webhook:"inmutable"`
}

GrantSpec defines the desired state of Grant

func (*GrantSpec) DeepCopy

func (in *GrantSpec) DeepCopy() *GrantSpec

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

func (*GrantSpec) DeepCopyInto

func (in *GrantSpec) DeepCopyInto(out *GrantSpec)

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

type GrantStatus

type GrantStatus struct {
	// Conditions for the Grant object.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors={"urn:alm:descriptor:io.kubernetes.conditions"}
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

GrantStatus defines the observed state of Grant

func (*GrantStatus) DeepCopy

func (in *GrantStatus) DeepCopy() *GrantStatus

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

func (*GrantStatus) DeepCopyInto

func (in *GrantStatus) DeepCopyInto(out *GrantStatus)

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

func (*GrantStatus) SetCondition

func (g *GrantStatus) SetCondition(condition metav1.Condition)

type Gtid added in v0.0.15

type Gtid string

Gtid indicates which Global Transaction ID should be used when connecting a replica to the master. See: https://mariadb.com/kb/en/gtid/#using-current_pos-vs-slave_pos.

const (
	// GtidCurrentPos indicates the union of gtid_binlog_pos and gtid_slave_pos will be used when replicating from master.
	// This is the default Gtid mode.
	GtidCurrentPos Gtid = "CurrentPos"
	// GtidSlavePos indicates that gtid_slave_pos will be used when replicating from master.
	GtidSlavePos Gtid = "SlavePos"
)

func (Gtid) MariaDBFormat added in v0.0.15

func (g Gtid) MariaDBFormat() (string, error)

MariaDBFormat formats the Gtid so it can be used in MariaDB config files.

func (Gtid) Validate added in v0.0.15

func (g Gtid) Validate() error

Validate returns an error if the Gtid is not valid.

type HTTPGetAction added in v0.0.32

type HTTPGetAction struct {
	// +optional
	Path string             `json:"path,omitempty"`
	Port intstr.IntOrString `json:"port"`
	// +optional
	Host string `json:"host,omitempty"`
	// +optional
	Scheme corev1.URIScheme `json:"scheme,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#httpgetaction-v1-core.

func (*HTTPGetAction) DeepCopy added in v0.0.32

func (in *HTTPGetAction) DeepCopy() *HTTPGetAction

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

func (*HTTPGetAction) DeepCopyInto added in v0.0.32

func (in *HTTPGetAction) DeepCopyInto(out *HTTPGetAction)

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

func (HTTPGetAction) ToKubernetesType added in v0.0.32

func (e HTTPGetAction) ToKubernetesType() corev1.HTTPGetAction

type HealthCheck

type HealthCheck struct {
	// Interval used to perform health checks.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Interval *metav1.Duration `json:"interval,omitempty"`
	// RetryInterval is the interval used to perform health check retries.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	RetryInterval *metav1.Duration `json:"retryInterval,omitempty"`
}

HealthCheck defines intervals for performing health checks.

func (*HealthCheck) DeepCopy

func (in *HealthCheck) DeepCopy() *HealthCheck

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

func (*HealthCheck) DeepCopyInto

func (in *HealthCheck) DeepCopyInto(out *HealthCheck)

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

type HostPathVolumeSource added in v0.38.0

type HostPathVolumeSource struct {
	Path string `json:"path"`
	// +optional
	Type *string `json:"type,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#hostpathvolumesource-v1-core

func (*HostPathVolumeSource) DeepCopy added in v0.38.0

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

func (*HostPathVolumeSource) DeepCopyInto added in v0.38.0

func (in *HostPathVolumeSource) DeepCopyInto(out *HostPathVolumeSource)

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

func (HostPathVolumeSource) ToKubernetesType added in v0.38.0

func (v HostPathVolumeSource) ToKubernetesType() corev1.HostPathVolumeSource

type Job added in v0.0.28

type Job struct {
	// Metadata defines additional metadata for the bootstrap Jobs.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Metadata *Metadata `json:"metadata,omitempty"`
	// Affinity to be used in the Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Affinity *AffinityConfig `json:"affinity,omitempty"`
	// Resouces describes the compute resource requirements.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:resourceRequirements"}
	Resources *ResourceRequirements `json:"resources,omitempty"`
	// Args to be used in the Container.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Args []string `json:"args,omitempty"`
}

Job defines a Job used to be used with MariaDB.

func (*Job) DeepCopy added in v0.0.28

func (in *Job) DeepCopy() *Job

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

func (*Job) DeepCopyInto added in v0.0.28

func (in *Job) DeepCopyInto(out *Job)

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

func (*Job) SetDefaults added in v0.0.28

func (j *Job) SetDefaults(mariadbObjMeta metav1.ObjectMeta)

SetDefaults sets reasonable defaults.

type JobContainerTemplate added in v0.0.28

type JobContainerTemplate struct {
	// Args to be used in the Container.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Args []string `json:"args,omitempty"`
	// Resouces describes the compute resource requirements.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:resourceRequirements"}
	Resources *ResourceRequirements `json:"resources,omitempty"`
	// SecurityContext holds security configuration that will be applied to a container.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	SecurityContext *SecurityContext `json:"securityContext,omitempty"`
}

JobContainerTemplate defines a template to configure Container objects that run in a Job.

func (*JobContainerTemplate) DeepCopy added in v0.0.28

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

func (*JobContainerTemplate) DeepCopyInto added in v0.0.28

func (in *JobContainerTemplate) DeepCopyInto(out *JobContainerTemplate)

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

func (*JobContainerTemplate) FromContainerTemplate added in v0.0.28

func (j *JobContainerTemplate) FromContainerTemplate(ctpl *ContainerTemplate)

FromContainerTemplate sets the ContainerTemplate fields in the current JobContainerTemplate.

type JobPodTemplate added in v0.0.28

type JobPodTemplate struct {
	// PodMetadata defines extra metadata for the Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	PodMetadata *Metadata `json:"podMetadata,omitempty"`
	// ImagePullSecrets is the list of pull Secrets to be used to pull the image.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	ImagePullSecrets []LocalObjectReference `json:"imagePullSecrets,omitempty" webhook:"inmutable"`
	// SecurityContext holds pod-level security attributes and common container settings.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	PodSecurityContext *PodSecurityContext `json:"podSecurityContext,omitempty"`
	// ServiceAccountName is the name of the ServiceAccount to be used by the Pods.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	ServiceAccountName *string `json:"serviceAccountName,omitempty" webhook:"inmutableinit"`
	// Affinity to be used in the Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Affinity *AffinityConfig `json:"affinity,omitempty"`
	// NodeSelector to be used in the Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`
	// Tolerations to be used in the Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
	// PriorityClassName to be used in the Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	PriorityClassName *string `json:"priorityClassName,omitempty" webhook:"inmutable"`
}

JobPodTemplate defines a template to configure Container objects that run in a Job.

func (*JobPodTemplate) DeepCopy added in v0.0.28

func (in *JobPodTemplate) DeepCopy() *JobPodTemplate

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

func (*JobPodTemplate) DeepCopyInto added in v0.0.28

func (in *JobPodTemplate) DeepCopyInto(out *JobPodTemplate)

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

func (*JobPodTemplate) FromPodTemplate added in v0.0.28

func (j *JobPodTemplate) FromPodTemplate(ptpl *PodTemplate)

FromPodTemplate sets the PodTemplate fields in the current JobPodTemplate.

func (*JobPodTemplate) ServiceAccountKey added in v0.0.28

func (p *JobPodTemplate) ServiceAccountKey(objMeta metav1.ObjectMeta) types.NamespacedName

ServiceAccountKey defines the key for the ServiceAccount object.

func (*JobPodTemplate) SetDefaults added in v0.0.28

func (p *JobPodTemplate) SetDefaults(objMeta, mariadbObjMeta metav1.ObjectMeta)

SetDefaults sets reasonable defaults.

type KubernetesAuth added in v0.0.16

type KubernetesAuth struct {
	// Enabled is a flag to enable KubernetesAuth
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	Enabled bool `json:"enabled,omitempty"`
	// AuthDelegatorRoleName is the name of the ClusterRoleBinding that is associated with the "system:auth-delegator" ClusterRole.
	// It is necessary for creating TokenReview objects in order for the agent to validate the service account token.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	AuthDelegatorRoleName string `json:"authDelegatorRoleName,omitempty"`
}

KubernetesAuth refers to the Kubernetes authentication mechanism utilized for establishing a connection from the operator to the agent. The agent validates the legitimacy of the service account token provided as an Authorization header by creating a TokenReview resource.

func (*KubernetesAuth) AuthDelegatorRoleNameOrDefault added in v0.0.16

func (k *KubernetesAuth) AuthDelegatorRoleNameOrDefault(mariadb *MariaDB) string

AuthDelegatorRoleNameOrDefault defines the ClusterRoleBinding name bound to system:auth-delegator. It falls back to the MariaDB name if AuthDelegatorRoleName is not set.

func (*KubernetesAuth) DeepCopy added in v0.0.16

func (in *KubernetesAuth) DeepCopy() *KubernetesAuth

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

func (*KubernetesAuth) DeepCopyInto added in v0.0.16

func (in *KubernetesAuth) DeepCopyInto(out *KubernetesAuth)

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

type LabelSelector added in v0.35.0

type LabelSelector struct {
	// +optional
	MatchLabels map[string]string `json:"matchLabels,omitempty"`
	// +optional
	// +listType=atomic
	MatchExpressions []LabelSelectorRequirement `json:"matchExpressions,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#labelselector-v1-meta

func (*LabelSelector) DeepCopy added in v0.35.0

func (in *LabelSelector) DeepCopy() *LabelSelector

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

func (*LabelSelector) DeepCopyInto added in v0.35.0

func (in *LabelSelector) DeepCopyInto(out *LabelSelector)

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

func (LabelSelector) ToKubernetesType added in v0.35.0

func (s LabelSelector) ToKubernetesType() metav1.LabelSelector

type LabelSelectorRequirement added in v0.35.0

type LabelSelectorRequirement struct {
	Key      string                       `json:"key"`
	Operator metav1.LabelSelectorOperator `json:"operator"`
	// +optional
	// +listType=atomic
	Values []string `json:"values,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#labelselectorrequirement-v1-meta

func (*LabelSelectorRequirement) DeepCopy added in v0.35.0

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

func (*LabelSelectorRequirement) DeepCopyInto added in v0.35.0

func (in *LabelSelectorRequirement) DeepCopyInto(out *LabelSelectorRequirement)

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

func (LabelSelectorRequirement) ToKubernetesType added in v0.35.0

type LocalObjectReference added in v0.0.32

type LocalObjectReference struct {
	// +optional
	// +default=""
	// +kubebuilder:default=""
	Name string `json:"name,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#localobjectreference-v1-core.

func (*LocalObjectReference) DeepCopy added in v0.0.32

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

func (*LocalObjectReference) DeepCopyInto added in v0.0.32

func (in *LocalObjectReference) DeepCopyInto(out *LocalObjectReference)

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

func (LocalObjectReference) ToKubernetesType added in v0.0.32

func (r LocalObjectReference) ToKubernetesType() corev1.LocalObjectReference

type MariaDB

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

	// +kubebuilder:validation:XValidation:rule="self.replicas %2 == 1 || self.replicasAllowEvenNumber", message="An odd number of MariaDB instances (mariadb.spec.replicas) is required to avoid split brain situations. Use 'mariadb.spec.replicasAllowEvenNumber: true' to disable this validation."
	Spec   MariaDBSpec   `json:"spec"`
	Status MariaDBStatus `json:"status,omitempty"`
}

MariaDB is the Schema for the mariadbs API. It is used to define MariaDB clusters.

func (*MariaDB) AgentAuthSecretKeyRef added in v0.0.32

func (m *MariaDB) AgentAuthSecretKeyRef() GeneratedSecretKeyRef

AgentAuthSecretKeyRef defines the Secret key selector for the agent password

func (*MariaDB) AreMetricsEnabled added in v0.0.24

func (m *MariaDB) AreMetricsEnabled() bool

AreMetricsEnabled indicates whether the MariaDB instance has metrics enabled

func (*MariaDB) DeepCopy

func (in *MariaDB) DeepCopy() *MariaDB

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

func (*MariaDB) DeepCopyInto

func (in *MariaDB) DeepCopyInto(out *MariaDB)

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

func (*MariaDB) DeepCopyObject

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

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

func (*MariaDB) DefaultConfigMapKeyRef added in v0.0.28

func (m *MariaDB) DefaultConfigMapKeyRef() ConfigMapKeySelector

DefaultConfigMapKeyRef defines the key selector for the default my.cnf ConfigMap.

func (*MariaDB) HasGaleraConfiguredCondition added in v0.0.16

func (m *MariaDB) HasGaleraConfiguredCondition() bool

HasGaleraConfiguredCondition indicates whether the MariaDB object has a GaleraConfigured status condition. This means that the cluster has been successfully configured the first time.

func (*MariaDB) HasGaleraNotReadyCondition added in v0.0.16

func (m *MariaDB) HasGaleraNotReadyCondition() bool

HasGaleraNotReadyCondition indicates whether the MariaDB object has a non GaleraReady status condition. This means that the Galera cluster is not healthy.

func (*MariaDB) HasGaleraReadyCondition added in v0.0.16

func (m *MariaDB) HasGaleraReadyCondition() bool

HasGaleraReadyCondition indicates whether the MariaDB object has a GaleraReady status condition. This means that the Galera cluster is healthy.

func (*MariaDB) HasPendingUpdate added in v0.0.29

func (m *MariaDB) HasPendingUpdate() bool

HasPendingUpdate indicates that MariaDB has a pending update.

func (*MariaDB) HasRestoredBackup added in v0.0.14

func (m *MariaDB) HasRestoredBackup() bool

HasRestoredBackup indicates whether the MariaDB instance has restored a Backup

func (*MariaDB) IndexerFuncForFieldPath added in v0.0.29

func (m *MariaDB) IndexerFuncForFieldPath(fieldPath string) (client.IndexerFunc, error)

nolint:gocyclo IndexerFuncForFieldPath returns an indexer function for a given field path.

func (*MariaDB) InitKey added in v0.0.26

func (m *MariaDB) InitKey() types.NamespacedName

InitKey defines the keys for the init objects.

func (*MariaDB) InternalServiceKey added in v0.0.24

func (m *MariaDB) InternalServiceKey() types.NamespacedName

InternalServiceKey defines the key for the internal headless Service

func (*MariaDB) IsEphemeralStorageEnabled added in v0.0.25

func (m *MariaDB) IsEphemeralStorageEnabled() bool

IsEphemeralStorageEnabled indicates whether the MariaDB instance has ephemeral storage enabled

func (*MariaDB) IsGaleraEnabled added in v0.0.26

func (m *MariaDB) IsGaleraEnabled() bool

IsHAEnabled indicates whether the MariaDB instance has Galera enabled

func (*MariaDB) IsGaleraInitialized added in v0.0.30

func (m *MariaDB) IsGaleraInitialized() bool

IsGaleraInitialized indicates that the Galera init Job has successfully completed.

func (*MariaDB) IsGaleraInitializing added in v0.0.30

func (m *MariaDB) IsGaleraInitializing() bool

IsGaleraInitializing indicates that the Galera init Job is running.

func (*MariaDB) IsHAEnabled added in v0.0.16

func (m *MariaDB) IsHAEnabled() bool

IsHAEnabled indicates whether the MariaDB instance has HA enabled

func (*MariaDB) IsInitialUserEnabled added in v0.0.30

func (m *MariaDB) IsInitialUserEnabled() bool

IsInitialUserEnabled indicates whether the initial User is enabled

func (*MariaDB) IsMaxScaleEnabled added in v0.0.25

func (m *MariaDB) IsMaxScaleEnabled() bool

IsMaxScaleEnabled indicates that a MaxScale instance is forwarding traffic to this MariaDB instance

func (*MariaDB) IsReady

func (m *MariaDB) IsReady() bool

IsReady indicates whether the MariaDB instance is ready

func (*MariaDB) IsReplicationConfigured added in v0.0.25

func (m *MariaDB) IsReplicationConfigured() bool

IsReplicationConfigured indicates whether replication has been configured.

func (*MariaDB) IsResizingStorage added in v0.0.26

func (m *MariaDB) IsResizingStorage() bool

IsResizingStorage indicates whether the MariaDB instance is resizing storage

func (*MariaDB) IsRestoringBackup added in v0.0.12

func (m *MariaDB) IsRestoringBackup() bool

IsRestoringBackup indicates whether the MariaDB instance is restoring backup

func (*MariaDB) IsRootPasswordDefined added in v0.0.25

func (m *MariaDB) IsRootPasswordDefined() bool

IsRootPasswordDefined indicates whether the MariaDB instance has a root password defined

func (*MariaDB) IsRootPasswordEmpty added in v0.0.25

func (m *MariaDB) IsRootPasswordEmpty() bool

IsRootPasswordEmpty indicates whether the MariaDB instance has an empty root password

func (*MariaDB) IsSuspended added in v0.0.30

func (m *MariaDB) IsSuspended() bool

IsSuspended whether a MariaDB is suspended.

func (*MariaDB) IsSwitchingPrimary added in v0.0.12

func (m *MariaDB) IsSwitchingPrimary() bool

IsSwitchingPrimary indicates whether the primary is being switched.

func (*MariaDB) IsTLSEnabled added in v0.37.0

func (m *MariaDB) IsTLSEnabled() bool

IsTLSEnabled indicates whether TLS is enabled

func (*MariaDB) IsTLSForGaleraSSTEnabled added in v0.37.0

func (m *MariaDB) IsTLSForGaleraSSTEnabled() bool

IsTLSForGaleraSSTEnabled indicates whether TLS for Galera SSTs is enabled.

func (*MariaDB) IsTLSRequired added in v0.37.0

func (m *MariaDB) IsTLSRequired() bool

IsTLSRequired indicates whether TLS is enabled and must be enforced for all connections.

func (*MariaDB) IsUpdating added in v0.0.29

func (m *MariaDB) IsUpdating() bool

IsUpdating indicates that a MariaDB update is in progress.

func (*MariaDB) IsWaitingForStorageResize added in v0.0.26

func (m *MariaDB) IsWaitingForStorageResize() bool

IsResizingStorage indicates whether the MariaDB instance is waiting for storage resize

func (*MariaDB) MariadbDatabaseKey added in v0.0.29

func (m *MariaDB) MariadbDatabaseKey() types.NamespacedName

MariadbDatabaseKey defines the key for the initial database

func (*MariaDB) MariadbGrantKey added in v0.0.29

func (m *MariaDB) MariadbGrantKey() types.NamespacedName

MariadbGrantKey defines the key for the initial grant

func (*MariaDB) MariadbSysGrantKey added in v0.0.28

func (m *MariaDB) MariadbSysGrantKey() types.NamespacedName

MariadbSysGrantKey defines the key for the 'mariadb.sys' Grant resource.

func (*MariaDB) MariadbSysUserKey added in v0.0.28

func (m *MariaDB) MariadbSysUserKey() types.NamespacedName

MariadbSysUserKey defines the key for the 'mariadb.sys' User resource.

func (*MariaDB) MariadbUserKey added in v0.0.29

func (m *MariaDB) MariadbUserKey() types.NamespacedName

MariadbUserKey defines the key for the initial user

func (*MariaDB) MaxScaleKey added in v0.0.25

func (m *MariaDB) MaxScaleKey() types.NamespacedName

MaxScaleKey defines the key for the MaxScale resource.

func (*MariaDB) MetricsConfigSecretKeyRef added in v0.0.24

func (m *MariaDB) MetricsConfigSecretKeyRef() GeneratedSecretKeyRef

MetricsConfigSecretKeyRef defines the key selector for the metrics Secret configuration

func (*MariaDB) MetricsKey added in v0.0.24

func (m *MariaDB) MetricsKey() types.NamespacedName

MetricsKey defines the key for the metrics related resources

func (*MariaDB) MetricsPasswordSecretKeyRef added in v0.0.24

func (m *MariaDB) MetricsPasswordSecretKeyRef() GeneratedSecretKeyRef

MetricsPasswordSecretKeyRef defines the key selector for for the password to be used by the metrics user

func (*MariaDB) MyCnfConfigMapKeyRef added in v0.0.24

func (m *MariaDB) MyCnfConfigMapKeyRef() ConfigMapKeySelector

MyCnfConfigMapKeyRef defines the key selector for the my.cnf ConfigMap.

func (*MariaDB) PVCKey added in v0.0.26

func (m *MariaDB) PVCKey(name string, index int) types.NamespacedName

PVCKey defines the PVC keys.

func (*MariaDB) PasswordSecretKeyRef added in v0.0.24

func (m *MariaDB) PasswordSecretKeyRef() GeneratedSecretKeyRef

PasswordSecretKeyRef defines the key selector for the initial user password Secret.

func (*MariaDB) PrimaryConnectioneKey added in v0.0.24

func (m *MariaDB) PrimaryConnectioneKey() types.NamespacedName

PrimaryConnectioneKey defines the key for the primary Connection

func (*MariaDB) PrimaryServiceKey added in v0.0.24

func (m *MariaDB) PrimaryServiceKey() types.NamespacedName

PrimaryServiceKey defines the key for the primary Service

func (*MariaDB) RecoveryJobKey added in v0.0.30

func (m *MariaDB) RecoveryJobKey(podName string) types.NamespacedName

RecoveryJobKey defines the key for a Galera recovery Job

func (*MariaDB) ReplConfigMapKeyRef added in v0.0.25

func (m *MariaDB) ReplConfigMapKeyRef() ConfigMapKeySelector

ConfigMapKeySelector defines the key selector for the ConfigMap used for replication healthchecks.

func (*MariaDB) Replication added in v0.0.20

func (m *MariaDB) Replication() Replication

Replication with defaulting accessor

func (*MariaDB) RestoreKey added in v0.0.24

func (m *MariaDB) RestoreKey() types.NamespacedName

RestoreKey defines the key for the Restore resource used to bootstrap.

func (*MariaDB) RootPasswordSecretKeyRef added in v0.0.24

func (m *MariaDB) RootPasswordSecretKeyRef() GeneratedSecretKeyRef

RootPasswordSecretKeyRef defines the key selector for the root password Secret.

func (*MariaDB) SecondaryConnectioneKey added in v0.0.24

func (m *MariaDB) SecondaryConnectioneKey() types.NamespacedName

SecondaryConnectioneKey defines the key for the secondary Connection

func (*MariaDB) SecondaryServiceKey added in v0.0.24

func (m *MariaDB) SecondaryServiceKey() types.NamespacedName

SecondaryServiceKey defines the key for the secondary Service

func (*MariaDB) SetDefaults added in v0.0.24

func (m *MariaDB) SetDefaults(env *environment.OperatorEnv) error

nolint:gocyclo SetDefaults sets reasonable defaults.

func (*MariaDB) TLSCABundleSecretKeyRef added in v0.37.0

func (m *MariaDB) TLSCABundleSecretKeyRef() SecretKeySelector

TLSCABundleSecretKeyRef defines the key selector for the TLS Secret trust bundle

func (*MariaDB) TLSClientCASecretKey added in v0.37.0

func (m *MariaDB) TLSClientCASecretKey() types.NamespacedName

TLSClientCASecretKey defines the key for the TLS client CA.

func (*MariaDB) TLSClientCertSecretKey added in v0.37.0

func (m *MariaDB) TLSClientCertSecretKey() types.NamespacedName

TLSClientCertSecretKey defines the key for the TLS client cert.

func (*MariaDB) TLSClientNames added in v0.37.0

func (m *MariaDB) TLSClientNames() []string

TLSClientNames are the names used by client TLS certificates.

func (*MariaDB) TLSConfigMapKeyRef added in v0.37.0

func (m *MariaDB) TLSConfigMapKeyRef() ConfigMapKeySelector

TLSConfigMapKeyRef defines the key selector for the TLS ConfigMap

func (*MariaDB) TLSServerCASecretKey added in v0.37.0

func (m *MariaDB) TLSServerCASecretKey() types.NamespacedName

TLSServerCASecretKey defines the key for the TLS server CA.

func (*MariaDB) TLSServerCertSecretKey added in v0.37.0

func (m *MariaDB) TLSServerCertSecretKey() types.NamespacedName

TLSServerCertSecretKey defines the key for the TLS server cert.

func (*MariaDB) TLSServerDNSNames added in v0.37.0

func (m *MariaDB) TLSServerDNSNames() []string

ServerDNSNames are the Service DNS names used by server TLS certificates.

type MariaDBList

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

MariaDBList contains a list of MariaDB

func (*MariaDBList) DeepCopy

func (in *MariaDBList) DeepCopy() *MariaDBList

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

func (*MariaDBList) DeepCopyInto

func (in *MariaDBList) DeepCopyInto(out *MariaDBList)

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

func (*MariaDBList) DeepCopyObject

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

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

func (*MariaDBList) ListItems added in v0.0.29

func (m *MariaDBList) ListItems() []client.Object

ListItems gets a copy of the Items slice.

type MariaDBMaxScaleSpec added in v0.0.25

type MariaDBMaxScaleSpec struct {
	// Enabled is a flag to enable a MaxScale instance to be used with the current MariaDB.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	Enabled bool `json:"enabled,omitempty"`
	// Image name to be used by the MaxScale instances. The supported format is `<image>:<tag>`.
	// Only MariaDB official images are supported.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Image string `json:"image,omitempty"`
	// ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`.
	// +optional
	// +kubebuilder:validation:Enum=Always;Never;IfNotPresent
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:imagePullPolicy","urn:alm:descriptor:com.tectonic.ui:advanced"}
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
	// Services define how the traffic is forwarded to the MariaDB servers.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Services []MaxScaleService `json:"services,omitempty"`
	// Monitor monitors MariaDB server instances.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Monitor *MaxScaleMonitor `json:"monitor,omitempty"`
	// Admin configures the admin REST API and GUI.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Admin *MaxScaleAdmin `json:"admin,omitempty"`
	// Config defines the MaxScale configuration.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Config *MaxScaleConfig `json:"config,omitempty"`
	// Auth defines the credentials required for MaxScale to connect to MariaDB.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Auth *MaxScaleAuth `json:"auth,omitempty"`
	// Metrics configures metrics and how to scrape them.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Metrics *MaxScaleMetrics `json:"metrics,omitempty"`
	// TLS defines the PKI to be used with MaxScale.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	TLS *MaxScaleTLS `json:"tls,omitempty"`
	// Connection provides a template to define the Connection for MaxScale.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Connection *ConnectionTemplate `json:"connection,omitempty"`
	// Replicas indicates the number of desired instances.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:podCount"}
	Replicas *int32 `json:"replicas,omitempty"`
	// PodDisruptionBudget defines the budget for replica availability.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	PodDisruptionBudget *PodDisruptionBudget `json:"podDisruptionBudget,omitempty"`
	// UpdateStrategy defines the update strategy for the StatefulSet object.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:updateStrategy","urn:alm:descriptor:com.tectonic.ui:advanced"}
	UpdateStrategy *appsv1.StatefulSetUpdateStrategy `json:"updateStrategy,omitempty"`
	// KubernetesService defines a template for a Kubernetes Service object to connect to MaxScale.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	KubernetesService *ServiceTemplate `json:"kubernetesService,omitempty"`
	// GuiKubernetesService define a template for a Kubernetes Service object to connect to MaxScale's GUI.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	GuiKubernetesService *ServiceTemplate `json:"guiKubernetesService,omitempty"`
	// RequeueInterval is used to perform requeue reconciliations.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	RequeueInterval *metav1.Duration `json:"requeueInterval,omitempty"`
}

MariaDBMaxScaleSpec defines a reduced version of MaxScale to be used with the current MariaDB.

func (*MariaDBMaxScaleSpec) DeepCopy added in v0.0.25

func (in *MariaDBMaxScaleSpec) DeepCopy() *MariaDBMaxScaleSpec

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

func (*MariaDBMaxScaleSpec) DeepCopyInto added in v0.0.25

func (in *MariaDBMaxScaleSpec) DeepCopyInto(out *MariaDBMaxScaleSpec)

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

type MariaDBRef

type MariaDBRef struct {
	// ObjectReference is a reference to a object.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	ObjectReference `json:",inline"`
	// WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready.
	// +optional
	// +kubebuilder:default=true
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch","urn:alm:descriptor:com.tectonic.ui:advanced"}
	WaitForIt bool `json:"waitForIt"`
}

MariaDBRef is a reference to a MariaDB object.

func (*MariaDBRef) DeepCopy

func (in *MariaDBRef) DeepCopy() *MariaDBRef

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

func (*MariaDBRef) DeepCopyInto

func (in *MariaDBRef) DeepCopyInto(out *MariaDBRef)

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

type MariaDBSpec

type MariaDBSpec struct {
	// ContainerTemplate defines templates to configure Container objects.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	ContainerTemplate `json:",inline"`
	// PodTemplate defines templates to configure Pod objects.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	PodTemplate `json:",inline"`
	// SuspendTemplate defines whether the MariaDB reconciliation loop is enabled. This can be useful for maintenance, as disabling the reconciliation loop prevents the operator from interfering with user operations during maintenance activities.
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	SuspendTemplate `json:",inline"`
	// Image name to be used by the MariaDB instances. The supported format is `<image>:<tag>`.
	// Only MariaDB official images are supported.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Image string `json:"image,omitempty"`
	// ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`.
	// +optional
	// +kubebuilder:validation:Enum=Always;Never;IfNotPresent
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:imagePullPolicy","urn:alm:descriptor:com.tectonic.ui:advanced"}
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
	// InheritMetadata defines the metadata to be inherited by children resources.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	InheritMetadata *Metadata `json:"inheritMetadata,omitempty"`
	// RootPasswordSecretKeyRef is a reference to a Secret key containing the root password.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	RootPasswordSecretKeyRef GeneratedSecretKeyRef `json:"rootPasswordSecretKeyRef,omitempty" webhook:"inmutableinit"`
	// RootEmptyPassword indicates if the root password should be empty. Don't use this feature in production, it is only intended for development and test environments.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch", "urn:alm:descriptor:com.tectonic.ui:advanced"}
	RootEmptyPassword *bool `json:"rootEmptyPassword,omitempty" webhook:"inmutableinit"`
	// Database is the name of the initial Database.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Database *string `json:"database,omitempty" webhook:"inmutable"`
	// Username is the initial username to be created by the operator once MariaDB is ready.
	// The initial User will have ALL PRIVILEGES in the initial Database.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Username *string `json:"username,omitempty" webhook:"inmutable"`
	// PasswordSecretKeyRef is a reference to a Secret that contains the password to be used by the initial User.
	// If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the password.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	PasswordSecretKeyRef *GeneratedSecretKeyRef `json:"passwordSecretKeyRef,omitempty"`
	// PasswordHashSecretKeyRef is a reference to the password hash to be used by the initial User.
	// If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the password hash.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	PasswordHashSecretKeyRef *SecretKeySelector `json:"passwordHashSecretKeyRef,omitempty"`
	// PasswordPlugin is a reference to the password plugin and arguments to be used by the initial User.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	PasswordPlugin *PasswordPlugin `json:"passwordPlugin,omitempty"`
	// MyCnf allows to specify the my.cnf file mounted by Mariadb.
	// Updating this field will trigger an update to the Mariadb resource.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	MyCnf *string `json:"myCnf,omitempty"`
	// MyCnfConfigMapKeyRef is a reference to the my.cnf config file provided via a ConfigMap.
	// If not provided, it will be defaulted with a reference to a ConfigMap containing the MyCnf field.
	// If the referred ConfigMap is labeled with "k8s.mariadb.com/watch", an update to the Mariadb resource will be triggered when the ConfigMap is updated.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	MyCnfConfigMapKeyRef *ConfigMapKeySelector `json:"myCnfConfigMapKeyRef,omitempty"`
	// TimeZone sets the default timezone. If not provided, it defaults to SYSTEM and the timezone data is not loaded.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	TimeZone *string `json:"timeZone,omitempty" webhook:"inmutable"`
	// BootstrapFrom defines a source to bootstrap from.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	BootstrapFrom *BootstrapFrom `json:"bootstrapFrom,omitempty"`
	// Storage defines the storage options to be used for provisioning the PVCs mounted by MariaDB.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Storage Storage `json:"storage"`
	// Metrics configures metrics and how to scrape them.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Metrics *MariadbMetrics `json:"metrics,omitempty"`
	// TLS defines the PKI to be used with MariaDB.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	TLS *TLS `json:"tls,omitempty"`
	// Replication configures high availability via replication. This feature is still in alpha, use Galera if you are looking for a more production-ready HA.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Replication *Replication `json:"replication,omitempty"`
	// Replication configures high availability via Galera.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Galera *Galera `json:"galera,omitempty"`
	// MaxScaleRef is a reference to a MaxScale resource to be used with the current MariaDB.
	// Providing this field implies delegating high availability tasks such as primary failover to MaxScale.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	MaxScaleRef *ObjectReference `json:"maxScaleRef,omitempty"`
	// MaxScale is the MaxScale specification that defines the MaxScale resource to be used with the current MariaDB.
	// When enabling this field, MaxScaleRef is automatically set.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	MaxScale *MariaDBMaxScaleSpec `json:"maxScale,omitempty"`
	// Replicas indicates the number of desired instances.
	// +kubebuilder:default=1
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:podCount"}
	Replicas int32 `json:"replicas,omitempty"`
	// disables the validation check for an odd number of replicas.
	// +kubebuilder:default=false
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	ReplicasAllowEvenNumber bool `json:"replicasAllowEvenNumber,omitempty"`
	// Port where the instances will be listening for connections.
	// +optional
	// +kubebuilder:default=3306
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number","urn:alm:descriptor:com.tectonic.ui:advanced"}
	Port int32 `json:"port,omitempty"`
	// ServicePorts is the list of additional named ports to be added to the Services created by the operator.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	ServicePorts []ServicePort `json:"servicePorts,omitempty"`
	// PodDisruptionBudget defines the budget for replica availability.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	PodDisruptionBudget *PodDisruptionBudget `json:"podDisruptionBudget,omitempty"`
	// UpdateStrategy defines how a MariaDB resource is updated.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	UpdateStrategy UpdateStrategy `json:"updateStrategy,omitempty"`
	// Service defines a template to configure the general Service object.
	// The network traffic of this Service will be routed to all Pods.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Service *ServiceTemplate `json:"service,omitempty"`
	// Connection defines a template to configure the general Connection object.
	// This Connection provides the initial User access to the initial Database.
	// It will make use of the Service to route network traffic to all Pods.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Connection *ConnectionTemplate `json:"connection,omitempty" webhook:"inmutable"`
	// PrimaryService defines a template to configure the primary Service object.
	// The network traffic of this Service will be routed to the primary Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	PrimaryService *ServiceTemplate `json:"primaryService,omitempty"`
	// PrimaryConnection defines a template to configure the primary Connection object.
	// This Connection provides the initial User access to the initial Database.
	// It will make use of the PrimaryService to route network traffic to the primary Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	PrimaryConnection *ConnectionTemplate `json:"primaryConnection,omitempty" webhook:"inmutable"`
	// SecondaryService defines a template to configure the secondary Service object.
	// The network traffic of this Service will be routed to the secondary Pods.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	SecondaryService *ServiceTemplate `json:"secondaryService,omitempty"`
	// SecondaryConnection defines a template to configure the secondary Connection object.
	// This Connection provides the initial User access to the initial Database.
	// It will make use of the SecondaryService to route network traffic to the secondary Pods.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	SecondaryConnection *ConnectionTemplate `json:"secondaryConnection,omitempty" webhook:"inmutable"`
}

MariaDBSpec defines the desired state of MariaDB

func (*MariaDBSpec) DeepCopy

func (in *MariaDBSpec) DeepCopy() *MariaDBSpec

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

func (*MariaDBSpec) DeepCopyInto

func (in *MariaDBSpec) DeepCopyInto(out *MariaDBSpec)

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

type MariaDBStatus

type MariaDBStatus struct {
	// Conditions for the Mariadb object.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors={"urn:alm:descriptor:io.kubernetes.conditions"}
	Conditions []metav1.Condition `json:"conditions,omitempty"`
	// Replicas indicates the number of current instances.
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:podCount"}
	Replicas int32 `json:"replicas,omitempty"`
	// CurrentPrimaryPodIndex is the primary Pod index.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	CurrentPrimaryPodIndex *int `json:"currentPrimaryPodIndex,omitempty"`
	// CurrentPrimary is the primary Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors={"urn:alm:descriptor:io.kubernetes:Pod"}
	CurrentPrimary *string `json:"currentPrimary,omitempty"`
	// GaleraRecovery is the Galera recovery current state.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	GaleraRecovery *GaleraRecoveryStatus `json:"galeraRecovery,omitempty"`
	// ReplicationStatus is the replication current state for each Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	ReplicationStatus ReplicationStatus `json:"replicationStatus,omitempty"`
	// DefaultVersion is the MariaDB version used by the operator when it cannot infer the version
	// from spec.image. This can happen if the image uses a digest (e.g. sha256) instead
	// of a version tag.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	DefaultVersion string `json:"defaultVersion,omitempty"`
	// TLS aggregates the status of the certificates used by the MariaDB instance.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	TLS *MariaDBTLSStatus `json:"tls,omitempty"`
}

MariaDBStatus defines the observed state of MariaDB

func (*MariaDBStatus) DeepCopy

func (in *MariaDBStatus) DeepCopy() *MariaDBStatus

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

func (*MariaDBStatus) DeepCopyInto

func (in *MariaDBStatus) DeepCopyInto(out *MariaDBStatus)

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

func (*MariaDBStatus) SetCondition

func (s *MariaDBStatus) SetCondition(condition metav1.Condition)

SetCondition sets a status condition to MariaDB

func (*MariaDBStatus) UpdateCurrentPrimary added in v0.0.12

func (s *MariaDBStatus) UpdateCurrentPrimary(mariadb *MariaDB, index int)

UpdateCurrentPrimary updates the current primary status.

type MariaDBTLSStatus added in v0.37.0

type MariaDBTLSStatus struct {
	// CABundle is the status of the Certificate Authority bundle.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	CABundle []CertificateStatus `json:"caBundle,omitempty"`
	// ServerCert is the status of the server certificate.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	ServerCert *CertificateStatus `json:"serverCert,omitempty"`
	// ClientCert is the status of the client certificate.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	ClientCert *CertificateStatus `json:"clientCert,omitempty"`
}

MariaDBTLSStatus aggregates the status of the certificates used by the MariaDB instance.

func (*MariaDBTLSStatus) DeepCopy added in v0.37.0

func (in *MariaDBTLSStatus) DeepCopy() *MariaDBTLSStatus

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

func (*MariaDBTLSStatus) DeepCopyInto added in v0.37.0

func (in *MariaDBTLSStatus) DeepCopyInto(out *MariaDBTLSStatus)

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

type MariadbMetrics added in v0.0.28

type MariadbMetrics struct {
	// Enabled is a flag to enable Metrics
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	Enabled bool `json:"enabled,omitempty"`
	// Exporter defines the metrics exporter container.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Exporter Exporter `json:"exporter"`
	// ServiceMonitor defines the ServiceMonior object.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	ServiceMonitor ServiceMonitor `json:"serviceMonitor"`
	// Username is the username of the monitoring user used by the exporter.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Username string `json:"username,omitempty" webhook:"inmutableinit"`
	// PasswordSecretKeyRef is a reference to the password of the monitoring user used by the exporter.
	// If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the password.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	PasswordSecretKeyRef GeneratedSecretKeyRef `json:"passwordSecretKeyRef,omitempty"`
}

MariadbMetrics defines the metrics for a MariaDB.

func (*MariadbMetrics) DeepCopy added in v0.0.28

func (in *MariadbMetrics) DeepCopy() *MariadbMetrics

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

func (*MariadbMetrics) DeepCopyInto added in v0.0.28

func (in *MariadbMetrics) DeepCopyInto(out *MariadbMetrics)

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

type MaxScale added in v0.0.25

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

	Spec   MaxScaleSpec   `json:"spec,omitempty"`
	Status MaxScaleStatus `json:"status,omitempty"`
}

MaxScale is the Schema for the maxscales API. It is used to define MaxScale clusters.

func (*MaxScale) APIUrl added in v0.0.25

func (m *MaxScale) APIUrl() string

APIUrl returns the URL of the admin API pointing to the Kubernetes Service.

func (*MaxScale) AdminPasswordSecretKeyRef added in v0.0.25

func (m *MaxScale) AdminPasswordSecretKeyRef() GeneratedSecretKeyRef

AdminPasswordSecretKeyRef defines the Secret key selector for the admin password

func (*MaxScale) AreMetricsEnabled added in v0.0.28

func (m *MaxScale) AreMetricsEnabled() bool

AreMetricsEnabled indicates whether the MariaDB instance has metrics enabled

func (*MaxScale) AuthClientPasswordSecretKeyRef added in v0.0.25

func (m *MaxScale) AuthClientPasswordSecretKeyRef() GeneratedSecretKeyRef

AuthClientPasswordSecretKeyRef defines the Secret key selector for the client password

func (*MaxScale) AuthClientUserKey added in v0.0.25

func (m *MaxScale) AuthClientUserKey() LocalObjectReference

AuthClientUserKey defines the key for the client User

func (*MaxScale) AuthMonitorPasswordSecretKeyRef added in v0.0.25

func (m *MaxScale) AuthMonitorPasswordSecretKeyRef() GeneratedSecretKeyRef

AuthClientPasswordSecretKeyRef defines the Secret key selector for the monitor password

func (*MaxScale) AuthMonitorUserKey added in v0.0.25

func (m *MaxScale) AuthMonitorUserKey() LocalObjectReference

AuthClientUserKey defines the key for the monitor User

func (*MaxScale) AuthServerPasswordSecretKeyRef added in v0.0.25

func (m *MaxScale) AuthServerPasswordSecretKeyRef() GeneratedSecretKeyRef

AuthClientPasswordSecretKeyRef defines the Secret key selector for the server password

func (*MaxScale) AuthServerUserKey added in v0.0.25

func (m *MaxScale) AuthServerUserKey() LocalObjectReference

AuthClientUserKey defines the key for the monitor User

func (*MaxScale) AuthSyncPasswordSecretKeyRef added in v0.0.25

func (m *MaxScale) AuthSyncPasswordSecretKeyRef() GeneratedSecretKeyRef

AuthSyncPasswordSecretKeyRef defines the Secret key selector for the config sync password

func (*MaxScale) AuthSyncUserKey added in v0.0.25

func (m *MaxScale) AuthSyncUserKey() LocalObjectReference

AuthSyncUserKey defines the key for the config sync User

func (*MaxScale) ConfigSecretKeyRef added in v0.0.25

func (m *MaxScale) ConfigSecretKeyRef() GeneratedSecretKeyRef

ConfigSecretKeyRef defines the Secret key selector for the configuration

func (*MaxScale) ConnectionKey added in v0.0.25

func (m *MaxScale) ConnectionKey() types.NamespacedName

ConnectionKey defines the key for the Connection

func (*MaxScale) DeepCopy added in v0.0.25

func (in *MaxScale) DeepCopy() *MaxScale

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

func (*MaxScale) DeepCopyInto added in v0.0.25

func (in *MaxScale) DeepCopyInto(out *MaxScale)

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

func (*MaxScale) DeepCopyObject added in v0.0.25

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

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

func (*MaxScale) DefaultPort added in v0.0.25

func (m *MaxScale) DefaultPort() (*int32, error)

DefaultPort returns the default port.

func (*MaxScale) GuiServiceKey added in v0.0.28

func (m *MaxScale) GuiServiceKey() types.NamespacedName

GuiServiceKey defines the key for the GUI Service

func (*MaxScale) IndexerFuncForFieldPath added in v0.0.29

func (m *MaxScale) IndexerFuncForFieldPath(fieldPath string) (client.IndexerFunc, error)

nolint:gocyclo IndexerFuncForFieldPath returns an indexer function for a given field path.

func (*MaxScale) InternalServiceKey added in v0.0.25

func (m *MaxScale) InternalServiceKey() types.NamespacedName

InternalServiceKey defines the key for the internal headless Service

func (*MaxScale) IsBeingDeleted added in v0.0.28

func (m *MaxScale) IsBeingDeleted() bool

IsBeingDeleted indicates that MaxScale has been marked for deletion

func (*MaxScale) IsHAEnabled added in v0.0.25

func (m *MaxScale) IsHAEnabled() bool

IsHAEnabled indicated whether high availability is enabled.

func (*MaxScale) IsReady added in v0.0.25

func (m *MaxScale) IsReady() bool

IsReady indicates whether the Maxscale instance is ready.

func (*MaxScale) IsReplicationSSLEnabled added in v0.37.0

func (m *MaxScale) IsReplicationSSLEnabled() bool

IsReplicationSSLEnabled indicates whether TLS for replication should be enabled

func (*MaxScale) IsSuspended added in v0.0.30

func (m *MaxScale) IsSuspended() bool

IsSuspended whether a MaxScale is suspended.

func (*MaxScale) IsTLSEnabled added in v0.37.0

func (m *MaxScale) IsTLSEnabled() bool

IsTLSEnabled indicates whether TLS is enabled

func (*MaxScale) ListenerIDs added in v0.0.25

func (m *MaxScale) ListenerIDs() []string

ListenerIDs returns the IDs of the listeners.

func (*MaxScale) ListenerIndex added in v0.0.25

func (m *MaxScale) ListenerIndex() ds.Index[MaxScaleListener]

ListenerIndex returns the listeners indexed by ID.

func (*MaxScale) Listeners added in v0.0.25

func (m *MaxScale) Listeners() []MaxScaleListener

Listeners returns the listeners

func (*MaxScale) MetricsConfigSecretKeyRef added in v0.0.28

func (m *MaxScale) MetricsConfigSecretKeyRef() GeneratedSecretKeyRef

MetricsConfigSecretKeyRef defines the key selector for the metrics Secret configuration

func (*MaxScale) MetricsKey added in v0.0.28

func (m *MaxScale) MetricsKey() types.NamespacedName

MetricsKey defines the key for the metrics related resources

func (*MaxScale) MetricsPasswordSecretKeyRef added in v0.0.28

func (m *MaxScale) MetricsPasswordSecretKeyRef() GeneratedSecretKeyRef

MetricsPasswordSecretKeyRef defines the Secret key selector for the metrics password

func (*MaxScale) PodAPIUrl added in v0.0.25

func (m *MaxScale) PodAPIUrl(podIndex int) string

PodAPIUrl returns the URL of the admin API pointing to a Pod.

func (*MaxScale) ServerIDs added in v0.0.25

func (m *MaxScale) ServerIDs() []string

ServerIDs returns the IDs of the servers.

func (*MaxScale) ServerIndex added in v0.0.25

func (m *MaxScale) ServerIndex() ds.Index[MaxScaleServer]

ServerIDs returns the servers indexed by ID.

func (*MaxScale) ServiceForListener added in v0.0.25

func (m *MaxScale) ServiceForListener(listener string) (string, error)

ServiceForListener finds the service for a given listener

func (*MaxScale) ServiceIDs added in v0.0.25

func (m *MaxScale) ServiceIDs() []string

ServiceIDs returns the IDs of the services.

func (*MaxScale) ServiceIndex added in v0.0.25

func (m *MaxScale) ServiceIndex() ds.Index[MaxScaleService]

ServiceIndex returns the services indexed by ID.

func (*MaxScale) SetDefaults added in v0.0.25

func (m *MaxScale) SetDefaults(env *environment.OperatorEnv, mariadb *MariaDB)

SetDefaults sets default values.

func (*MaxScale) ShouldVerifyPeerCertificate added in v0.37.0

func (m *MaxScale) ShouldVerifyPeerCertificate() bool

ShouldVerifyPeerCertificate indicates whether peer certificate should be verified

func (*MaxScale) ShouldVerifyPeerHost added in v0.37.0

func (m *MaxScale) ShouldVerifyPeerHost() bool

ShouldVerifyPeerHost indicates whether peer host should be verified

func (*MaxScale) TLSAdminCASecretKey added in v0.37.0

func (m *MaxScale) TLSAdminCASecretKey() types.NamespacedName

TLSServerCASecretKey defines the key for the TLS admin CA.

func (*MaxScale) TLSAdminCertSecretKey added in v0.37.0

func (m *MaxScale) TLSAdminCertSecretKey() types.NamespacedName

TLSAdminCertSecretKey defines the key for the TLS admin cert.

func (*MaxScale) TLSAdminDNSNames added in v0.37.0

func (m *MaxScale) TLSAdminDNSNames() []string

TLSAdminDNSNames are the Service DNS names used by admin TLS certificates.

func (*MaxScale) TLSCABundleSecretKeyRef added in v0.37.0

func (m *MaxScale) TLSCABundleSecretKeyRef() SecretKeySelector

TLSCABundleSecretKeyRef defines the key selector for the TLS Secret trust bundle

func (*MaxScale) TLSListenerCASecretKey added in v0.37.0

func (m *MaxScale) TLSListenerCASecretKey() types.NamespacedName

TLSListenerCASecretKey defines the key for the TLS listener CA.

func (*MaxScale) TLSListenerCertSecretKey added in v0.37.0

func (m *MaxScale) TLSListenerCertSecretKey() types.NamespacedName

TLSListenerCertSecretKey defines the key for the TLS listener cert.

func (*MaxScale) TLSListenerDNSNames added in v0.37.0

func (m *MaxScale) TLSListenerDNSNames() []string

TLSListenerDNSNames are the Service DNS names used by listener TLS certificates.

func (*MaxScale) TLSServerCASecretKey added in v0.37.0

func (m *MaxScale) TLSServerCASecretKey() types.NamespacedName

TLSServerCASecretKey defines the key for the TLS MariaDB server CA.

func (*MaxScale) TLSServerCertSecretKey added in v0.37.0

func (m *MaxScale) TLSServerCertSecretKey() types.NamespacedName

TLSServerCertSecretKey defines the key for the TLS MariaDB server cert.

type MaxScaleAdmin added in v0.0.25

type MaxScaleAdmin struct {
	// Port where the admin REST API and GUI will be exposed.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"}
	Port int32 `json:"port"`
	// GuiEnabled indicates whether the admin GUI should be enabled.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	GuiEnabled *bool `json:"guiEnabled,omitempty"`
}

MaxScaleAdmin configures the admin REST API and GUI.

func (*MaxScaleAdmin) DeepCopy added in v0.0.25

func (in *MaxScaleAdmin) DeepCopy() *MaxScaleAdmin

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

func (*MaxScaleAdmin) DeepCopyInto added in v0.0.25

func (in *MaxScaleAdmin) DeepCopyInto(out *MaxScaleAdmin)

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

func (*MaxScaleAdmin) SetDefaults added in v0.0.25

func (m *MaxScaleAdmin) SetDefaults(mxs *MaxScale)

SetDefaults sets default values.

type MaxScaleAuth added in v0.0.25

type MaxScaleAuth struct {
	// Generate  defies whether the operator should generate users and grants for MaxScale to work.
	// It only supports MariaDBs specified via spec.mariaDbRef.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	Generate *bool `json:"generate,omitempty" webhook:"inmutableinit"`
	// AdminUsername is an admin username to call the admin REST API. It is defaulted if not provided.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	AdminUsername string `json:"adminUsername,omitempty" webhook:"inmutableinit"`
	// AdminPasswordSecretKeyRef is Secret key reference to the admin password to call the admin REST API. It is defaulted if not provided.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	AdminPasswordSecretKeyRef GeneratedSecretKeyRef `json:"adminPasswordSecretKeyRef,omitempty" webhook:"inmutableinit"`
	// DeleteDefaultAdmin determines whether the default admin user should be deleted after the initial configuration. If not provided, it defaults to true.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch","urn:alm:descriptor:com.tectonic.ui:advanced"}
	DeleteDefaultAdmin *bool `json:"deleteDefaultAdmin,omitempty" webhook:"inmutableinit"`
	// MetricsUsername is an metrics username to call the REST API. It is defaulted if metrics are enabled.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	MetricsUsername string `json:"metricsUsername,omitempty" webhook:"inmutableinit"`
	// MetricsPasswordSecretKeyRef is Secret key reference to the metrics password to call the admib REST API. It is defaulted if metrics are enabled.
	// If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the password.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	MetricsPasswordSecretKeyRef GeneratedSecretKeyRef `json:"metricsPasswordSecretKeyRef,omitempty"`
	// ClientUsername is the user to connect to MaxScale. It is defaulted if not provided.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	ClientUsername string `json:"clientUsername,omitempty" webhook:"inmutableinit"`
	// ClientPasswordSecretKeyRef is Secret key reference to the password to connect to MaxScale. It is defaulted if not provided.
	// If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the password.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	ClientPasswordSecretKeyRef GeneratedSecretKeyRef `json:"clientPasswordSecretKeyRef,omitempty"`
	// ClientMaxConnections defines the maximum number of connections that the client can establish.
	// If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections.
	// It defaults to 30 times the number of MaxScale replicas.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number","urn:alm:descriptor:com.tectonic.ui:advanced"}
	ClientMaxConnections int32 `json:"clientMaxConnections,omitempty" webhook:"inmutableinit"`
	// ServerUsername is the user used by MaxScale to connect to MariaDB server. It is defaulted if not provided.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	ServerUsername string `json:"serverUsername,omitempty" webhook:"inmutableinit"`
	// ServerPasswordSecretKeyRef is Secret key reference to the password used by MaxScale to connect to MariaDB server. It is defaulted if not provided.
	// If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the password.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	ServerPasswordSecretKeyRef GeneratedSecretKeyRef `json:"serverPasswordSecretKeyRef,omitempty"`
	// ServerMaxConnections defines the maximum number of connections that the server can establish.
	// If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections.
	// It defaults to 30 times the number of MaxScale replicas.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number","urn:alm:descriptor:com.tectonic.ui:advanced"}
	ServerMaxConnections int32 `json:"serverMaxConnections,omitempty" webhook:"inmutableinit"`
	// MonitorUsername is the user used by MaxScale monitor to connect to MariaDB server. It is defaulted if not provided.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	MonitorUsername string `json:"monitorUsername,omitempty" webhook:"inmutableinit"`
	// MonitorPasswordSecretKeyRef is Secret key reference to the password used by MaxScale monitor to connect to MariaDB server. It is defaulted if not provided.
	// If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the password.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	MonitorPasswordSecretKeyRef GeneratedSecretKeyRef `json:"monitorPasswordSecretKeyRef,omitempty"`
	// MonitorMaxConnections defines the maximum number of connections that the monitor can establish.
	// If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections.
	// It defaults to 30 times the number of MaxScale replicas.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number","urn:alm:descriptor:com.tectonic.ui:advanced"}
	MonitorMaxConnections int32 `json:"monitorMaxConnections,omitempty" webhook:"inmutableinit"`
	// MonitoSyncUsernamerUsername is the user used by MaxScale config sync to connect to MariaDB server. It is defaulted when HA is enabled.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	SyncUsername *string `json:"syncUsername,omitempty" webhook:"inmutableinit"`
	// SyncPasswordSecretKeyRef is Secret key reference to the password used by MaxScale config to connect to MariaDB server. It is defaulted when HA is enabled.
	// If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the password.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	SyncPasswordSecretKeyRef *GeneratedSecretKeyRef `json:"syncPasswordSecretKeyRef,omitempty"`
	// SyncMaxConnections defines the maximum number of connections that the sync can establish.
	// If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections.
	// It defaults to 30 times the number of MaxScale replicas.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number","urn:alm:descriptor:com.tectonic.ui:advanced"}
	SyncMaxConnections *int32 `json:"syncMaxConnections,omitempty" webhook:"inmutableinit"`
}

MaxScaleAuth defines the credentials required for MaxScale to connect to MariaDB.

func (*MaxScaleAuth) DeepCopy added in v0.0.25

func (in *MaxScaleAuth) DeepCopy() *MaxScaleAuth

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

func (*MaxScaleAuth) DeepCopyInto added in v0.0.25

func (in *MaxScaleAuth) DeepCopyInto(out *MaxScaleAuth)

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

func (*MaxScaleAuth) SetDefaults added in v0.0.25

func (m *MaxScaleAuth) SetDefaults(mxs *MaxScale)

SetDefaults sets default values.

type MaxScaleConfig added in v0.0.25

type MaxScaleConfig struct {
	// Params is a key value pair of parameters to be used in the MaxScale static configuration file.
	// Any parameter supported by MaxScale may be specified here. See reference:
	// https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#global-settings.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Params map[string]string `json:"params,omitempty"`
	// VolumeClaimTemplate provides a template to define the PVCs for storing MaxScale runtime configuration files. It is defaulted if not provided.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	VolumeClaimTemplate VolumeClaimTemplate `json:"volumeClaimTemplate"`
	// Sync defines how to replicate configuration across MaxScale replicas. It is defaulted when HA is enabled.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Sync *MaxScaleConfigSync `json:"sync,omitempty"`
}

MaxScaleConfig defines the MaxScale configuration.

func (*MaxScaleConfig) DeepCopy added in v0.0.25

func (in *MaxScaleConfig) DeepCopy() *MaxScaleConfig

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

func (*MaxScaleConfig) DeepCopyInto added in v0.0.25

func (in *MaxScaleConfig) DeepCopyInto(out *MaxScaleConfig)

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

func (*MaxScaleConfig) SetDefaults added in v0.0.25

func (m *MaxScaleConfig) SetDefaults(mxs *MaxScale)

type MaxScaleConfigSync added in v0.0.25

type MaxScaleConfigSync struct {
	// Database is the MariaDB logical database where the 'maxscale_config' table will be created in order to persist and synchronize config changes. If not provided, it defaults to 'mysql'.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Database string `json:"database,omitempty"`
	// Interval defines the config synchronization interval. It is defaulted if not provided.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Interval metav1.Duration `json:"interval,omitempty"`
	// Interval defines the config synchronization timeout. It is defaulted if not provided.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Timeout metav1.Duration `json:"timeout,omitempty"`
}

MaxScaleConfigSync defines how the config changes are replicated across replicas.

func (*MaxScaleConfigSync) DeepCopy added in v0.0.25

func (in *MaxScaleConfigSync) DeepCopy() *MaxScaleConfigSync

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

func (*MaxScaleConfigSync) DeepCopyInto added in v0.0.25

func (in *MaxScaleConfigSync) DeepCopyInto(out *MaxScaleConfigSync)

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

type MaxScaleConfigSyncStatus added in v0.0.25

type MaxScaleConfigSyncStatus struct {
	MaxScaleVersion int `json:"maxScaleVersion"`
	DatabaseVersion int `json:"databaseVersion"`
}

func (*MaxScaleConfigSyncStatus) DeepCopy added in v0.0.25

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

func (*MaxScaleConfigSyncStatus) DeepCopyInto added in v0.0.25

func (in *MaxScaleConfigSyncStatus) DeepCopyInto(out *MaxScaleConfigSyncStatus)

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

type MaxScaleList added in v0.0.25

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

MaxScaleList contains a list of MaxScale

func (*MaxScaleList) DeepCopy added in v0.0.25

func (in *MaxScaleList) DeepCopy() *MaxScaleList

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

func (*MaxScaleList) DeepCopyInto added in v0.0.25

func (in *MaxScaleList) DeepCopyInto(out *MaxScaleList)

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

func (*MaxScaleList) DeepCopyObject added in v0.0.25

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

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

func (*MaxScaleList) ListItems added in v0.0.29

func (m *MaxScaleList) ListItems() []client.Object

ListItems gets a copy of the Items slice.

type MaxScaleListener added in v0.0.25

type MaxScaleListener struct {
	// SuspendTemplate defines how a resource can be suspended. Feature flag --feature-maxscale-suspend is required in the controller to enable this.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	SuspendTemplate `json:",inline"`
	// Name is the identifier of the listener. It is defaulted if not provided
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Name string `json:"name"`
	// Port is the network port where the MaxScale server will listen.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"}
	Port int32 `json:"port,omitempty" webhook:"inmutable"`
	// Protocol is the MaxScale protocol to use when communicating with the client. If not provided, it defaults to MariaDBProtocol.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Protocol string `json:"protocol,omitempty"`
	// Params defines extra parameters to pass to the listener.
	// Any parameter supported by MaxScale may be specified here. See reference:
	// https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#listener_1.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Params map[string]string `json:"params,omitempty"`
}

MaxScaleListener defines how the MaxScale server will listen for connections.

func (*MaxScaleListener) DeepCopy added in v0.0.25

func (in *MaxScaleListener) DeepCopy() *MaxScaleListener

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

func (*MaxScaleListener) DeepCopyInto added in v0.0.25

func (in *MaxScaleListener) DeepCopyInto(out *MaxScaleListener)

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

func (*MaxScaleListener) SetDefaults added in v0.0.25

func (m *MaxScaleListener) SetDefaults(svc *MaxScaleService)

SetDefaults sets default values.

type MaxScaleMetrics added in v0.0.28

type MaxScaleMetrics struct {
	// Enabled is a flag to enable Metrics
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	Enabled bool `json:"enabled,omitempty"`
	// Exporter defines the metrics exporter container.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Exporter Exporter `json:"exporter"`
	// ServiceMonitor defines the ServiceMonior object.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	ServiceMonitor ServiceMonitor `json:"serviceMonitor"`
}

MaxScaleMetrics defines the metrics for a Maxscale.

func (*MaxScaleMetrics) DeepCopy added in v0.0.28

func (in *MaxScaleMetrics) DeepCopy() *MaxScaleMetrics

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

func (*MaxScaleMetrics) DeepCopyInto added in v0.0.28

func (in *MaxScaleMetrics) DeepCopyInto(out *MaxScaleMetrics)

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

type MaxScaleMonitor added in v0.0.25

type MaxScaleMonitor struct {
	// SuspendTemplate defines how a resource can be suspended. Feature flag --feature-maxscale-suspend is required in the controller to enable this.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	SuspendTemplate `json:",inline"`
	// Name is the identifier of the monitor. It is defaulted if not provided.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Name string `json:"name"`
	// Module is the module to use to monitor MariaDB servers. It is mandatory when no MariaDB reference is provided.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Module MonitorModule `json:"module" webhook:"inmutableinit"`
	// Interval used to monitor MariaDB servers. It is defaulted if not provided.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Interval metav1.Duration `json:"interval,omitempty"`
	// CooperativeMonitoring enables coordination between multiple MaxScale instances running monitors. It is defaulted when HA is enabled.
	// +optional
	// +kubebuilder:validation:Enum=majority_of_all;majority_of_running
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	CooperativeMonitoring *CooperativeMonitoring `json:"cooperativeMonitoring,omitempty"`
	// Params defines extra parameters to pass to the monitor.
	// Any parameter supported by MaxScale may be specified here. See reference:
	// https://mariadb.com/kb/en/mariadb-maxscale-2308-common-monitor-parameters/.
	// Monitor specific parameter are also suported:
	// https://mariadb.com/kb/en/mariadb-maxscale-2308-galera-monitor/#galera-monitor-optional-parameters.
	// https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-monitor/#configuration.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Params map[string]string `json:"params,omitempty"`
}

MaxScaleMonitor monitors MariaDB server instances

func (*MaxScaleMonitor) DeepCopy added in v0.0.25

func (in *MaxScaleMonitor) DeepCopy() *MaxScaleMonitor

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

func (*MaxScaleMonitor) DeepCopyInto added in v0.0.25

func (in *MaxScaleMonitor) DeepCopyInto(out *MaxScaleMonitor)

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

func (*MaxScaleMonitor) SetDefaults added in v0.0.25

func (m *MaxScaleMonitor) SetDefaults(mxs *MaxScale)

SetCondition sets a status condition to MaxScale

type MaxScalePodTemplate added in v0.0.32

type MaxScalePodTemplate struct {
	// PodMetadata defines extra metadata for the Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	PodMetadata *Metadata `json:"podMetadata,omitempty"`
	// ImagePullSecrets is the list of pull Secrets to be used to pull the image.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	ImagePullSecrets []LocalObjectReference `json:"imagePullSecrets,omitempty" webhook:"inmutable"`
	// SecurityContext holds pod-level security attributes and common container settings.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	PodSecurityContext *PodSecurityContext `json:"podSecurityContext,omitempty"`
	// ServiceAccountName is the name of the ServiceAccount to be used by the Pods.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	ServiceAccountName *string `json:"serviceAccountName,omitempty" webhook:"inmutableinit"`
	// Affinity to be used in the Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Affinity *AffinityConfig `json:"affinity,omitempty"`
	// NodeSelector to be used in the Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`
	// Tolerations to be used in the Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
	// PriorityClassName to be used in the Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	PriorityClassName *string `json:"priorityClassName,omitempty" webhook:"inmutable"`
	// TopologySpreadConstraints to be used in the Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	TopologySpreadConstraints []TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"`
}

MaxScalePodTemplate defines a template for MaxScale Pods.

func (*MaxScalePodTemplate) DeepCopy added in v0.0.32

func (in *MaxScalePodTemplate) DeepCopy() *MaxScalePodTemplate

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

func (*MaxScalePodTemplate) DeepCopyInto added in v0.0.32

func (in *MaxScalePodTemplate) DeepCopyInto(out *MaxScalePodTemplate)

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

func (*MaxScalePodTemplate) ServiceAccountKey added in v0.0.32

func (p *MaxScalePodTemplate) ServiceAccountKey(objMeta metav1.ObjectMeta) types.NamespacedName

ServiceAccountKey defines the key for the ServiceAccount object.

func (*MaxScalePodTemplate) SetDefaults added in v0.0.32

func (p *MaxScalePodTemplate) SetDefaults(objMeta metav1.ObjectMeta)

SetDefaults sets reasonable defaults.

type MaxScaleResourceStatus added in v0.0.25

type MaxScaleResourceStatus struct {
	Name  string `json:"name"`
	State string `json:"state"`
}

MaxScaleResourceStatus indicates whether the resource is in a given state.

func (*MaxScaleResourceStatus) DeepCopy added in v0.0.25

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

func (*MaxScaleResourceStatus) DeepCopyInto added in v0.0.25

func (in *MaxScaleResourceStatus) DeepCopyInto(out *MaxScaleResourceStatus)

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

type MaxScaleServer added in v0.0.25

type MaxScaleServer struct {
	// Name is the identifier of the MariaDB server.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Name string `json:"name"`
	// Address is the network address of the MariaDB server.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Address string `json:"address"`
	// Port is the network port of the MariaDB server. If not provided, it defaults to 3306.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"}
	Port int32 `json:"port,omitempty"`
	// Protocol is the MaxScale protocol to use when communicating with this MariaDB server. If not provided, it defaults to MariaDBBackend.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Protocol string `json:"protocol,omitempty"`
	// Maintenance indicates whether the server is in maintenance mode.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	Maintenance bool `json:"maintenance,omitempty"`
	// Params defines extra parameters to pass to the server.
	// Any parameter supported by MaxScale may be specified here. See reference:
	// https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#server_1.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Params map[string]string `json:"params,omitempty"`
}

MaxScaleServer defines a MariaDB server to forward traffic to.

func (*MaxScaleServer) DeepCopy added in v0.0.25

func (in *MaxScaleServer) DeepCopy() *MaxScaleServer

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

func (*MaxScaleServer) DeepCopyInto added in v0.0.25

func (in *MaxScaleServer) DeepCopyInto(out *MaxScaleServer)

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

func (*MaxScaleServer) SetDefaults added in v0.0.25

func (m *MaxScaleServer) SetDefaults()

SetDefaults sets default values.

type MaxScaleServerStatus added in v0.0.25

type MaxScaleServerStatus struct {
	Name  string `json:"name"`
	State string `json:"state"`
}

MaxScaleAPIStatus is the state of the servers in the MaxScale API.

func (*MaxScaleServerStatus) DeepCopy added in v0.0.25

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

func (*MaxScaleServerStatus) DeepCopyInto added in v0.0.25

func (in *MaxScaleServerStatus) DeepCopyInto(out *MaxScaleServerStatus)

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

func (*MaxScaleServerStatus) InMaintenance added in v0.0.25

func (s *MaxScaleServerStatus) InMaintenance() bool

InMaintenance indicates whether the current server is in maintenance state.

func (*MaxScaleServerStatus) IsMaster added in v0.0.25

func (s *MaxScaleServerStatus) IsMaster() bool

IsMaster indicates whether the current server is in Master state.

func (*MaxScaleServerStatus) IsReady added in v0.0.25

func (s *MaxScaleServerStatus) IsReady() bool

IsReady indicates whether the current server is in ready state.

type MaxScaleService added in v0.0.25

type MaxScaleService struct {
	// SuspendTemplate defines how a resource can be suspended. Feature flag --feature-maxscale-suspend is required in the controller to enable this.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	SuspendTemplate `json:",inline"`
	// Name is the identifier of the MaxScale service.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Name string `json:"name"`
	// Router is the type of router to use.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=readwritesplit;readconnroute
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Router ServiceRouter `json:"router" webhook:"inmutable"`
	// MaxScaleListener defines how the MaxScale server will listen for connections.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Listener MaxScaleListener `json:"listener"`
	// Params defines extra parameters to pass to the service.
	// Any parameter supported by MaxScale may be specified here. See reference:
	// https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#service_1.
	// Router specific parameter are also suported:
	// https://mariadb.com/kb/en/mariadb-maxscale-2308-readwritesplit/#configuration.
	// https://mariadb.com/kb/en/mariadb-maxscale-2308-readconnroute/#configuration.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Params map[string]string `json:"params,omitempty"`
}

Services define how the traffic is forwarded to the MariaDB servers.

func (*MaxScaleService) DeepCopy added in v0.0.25

func (in *MaxScaleService) DeepCopy() *MaxScaleService

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

func (*MaxScaleService) DeepCopyInto added in v0.0.25

func (in *MaxScaleService) DeepCopyInto(out *MaxScaleService)

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

func (*MaxScaleService) SetDefaults added in v0.0.25

func (m *MaxScaleService) SetDefaults()

SetDefaults sets default values.

type MaxScaleSpec added in v0.0.25

type MaxScaleSpec struct {
	// ContainerTemplate defines templates to configure Container objects.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	ContainerTemplate `json:",inline"`
	// PodTemplate defines templates to configure Pod objects.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	MaxScalePodTemplate `json:",inline"`
	// SuspendTemplate defines whether the MaxScale reconciliation loop is enabled. This can be useful for maintenance, as disabling the reconciliation loop prevents the operator from interfering with user operations during maintenance activities.
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	SuspendTemplate `json:",inline"`
	// MariaDBRef is a reference to the MariaDB that MaxScale points to. It is used to initialize the servers field.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	MariaDBRef *MariaDBRef `json:"mariaDbRef,omitempty" webhook:"inmutable"`
	// Servers are the MariaDB servers to forward traffic to. It is required if 'spec.mariaDbRef' is not provided.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Servers []MaxScaleServer `json:"servers"`
	// Image name to be used by the MaxScale instances. The supported format is `<image>:<tag>`.
	// Only MaxScale official images are supported.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Image string `json:"image,omitempty"`
	// ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`.
	// +optional
	// +kubebuilder:validation:Enum=Always;Never;IfNotPresent
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:imagePullPolicy","urn:alm:descriptor:com.tectonic.ui:advanced"}
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
	// InheritMetadata defines the metadata to be inherited by children resources.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	InheritMetadata *Metadata `json:"inheritMetadata,omitempty"`
	// Services define how the traffic is forwarded to the MariaDB servers. It is defaulted if not provided.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Services []MaxScaleService `json:"services,omitempty"`
	// Monitor monitors MariaDB server instances. It is required if 'spec.mariaDbRef' is not provided.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Monitor MaxScaleMonitor `json:"monitor,omitempty"`
	// Admin configures the admin REST API and GUI.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Admin MaxScaleAdmin `json:"admin,omitempty"`
	// Config defines the MaxScale configuration.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Config MaxScaleConfig `json:"config,omitempty"`
	// Auth defines the credentials required for MaxScale to connect to MariaDB.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Auth MaxScaleAuth `json:"auth,omitempty"`
	// Metrics configures metrics and how to scrape them.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Metrics *MaxScaleMetrics `json:"metrics,omitempty"`
	// TLS defines the PKI to be used with MaxScale.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	TLS *MaxScaleTLS `json:"tls,omitempty"`
	// Connection provides a template to define the Connection for MaxScale.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Connection *ConnectionTemplate `json:"connection,omitempty"`
	// Replicas indicates the number of desired instances.
	// +kubebuilder:default=1
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:podCount"}
	Replicas int32 `json:"replicas,omitempty"`
	// PodDisruptionBudget defines the budget for replica availability.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	PodDisruptionBudget *PodDisruptionBudget `json:"podDisruptionBudget,omitempty"`
	// UpdateStrategy defines the update strategy for the StatefulSet object.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:updateStrategy","urn:alm:descriptor:com.tectonic.ui:advanced"}
	UpdateStrategy *appsv1.StatefulSetUpdateStrategy `json:"updateStrategy,omitempty"`
	// KubernetesService defines a template for a Kubernetes Service object to connect to MaxScale.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	KubernetesService *ServiceTemplate `json:"kubernetesService,omitempty"`
	// GuiKubernetesService defines a template for a Kubernetes Service object to connect to MaxScale's GUI.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	GuiKubernetesService *ServiceTemplate `json:"guiKubernetesService,omitempty"`
	// RequeueInterval is used to perform requeue reconciliations. If not defined, it defaults to 10s.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	RequeueInterval *metav1.Duration `json:"requeueInterval,omitempty"`
}

MaxScaleSpec defines the desired state of MaxScale.

func (*MaxScaleSpec) DeepCopy added in v0.0.25

func (in *MaxScaleSpec) DeepCopy() *MaxScaleSpec

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

func (*MaxScaleSpec) DeepCopyInto added in v0.0.25

func (in *MaxScaleSpec) DeepCopyInto(out *MaxScaleSpec)

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

type MaxScaleStatus added in v0.0.25

type MaxScaleStatus struct {
	// Conditions for the MaxScale object.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors={"urn:alm:descriptor:io.kubernetes.conditions"}
	Conditions []metav1.Condition `json:"conditions,omitempty"`
	// Replicas indicates the number of current instances.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:podCount"}
	Replicas int32 `json:"replicas,omitempty"`
	// PrimaryServer is the primary server in the MaxScale API.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	PrimaryServer *string `json:"primaryServer,omitempty"`
	// Servers is the state of the servers in the MaxScale API.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	Servers []MaxScaleServerStatus `json:"servers,omitempty"`
	// Monitor is the state of the monitor in the MaxScale API.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	Monitor *MaxScaleResourceStatus `json:"monitor,omitempty"`
	// Services is the state of the services in the MaxScale API.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	Services []MaxScaleResourceStatus `json:"services,omitempty"`
	// Listeners is the state of the listeners in the MaxScale API.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	Listeners []MaxScaleResourceStatus `json:"listeners,omitempty"`
	// ConfigSync is the state of config sync.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	ConfigSync *MaxScaleConfigSyncStatus `json:"configSync,omitempty"`
	// TLS aggregates the status of the certificates used by the MaxScale instance.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	TLS *MaxScaleTLSStatus `json:"tls,omitempty"`
	// MonitorSpec is a hashed version of spec.monitor to be able to track changes during reconciliation.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	MonitorSpec string `json:"monitorSpec,omitempty"`
	// ServersSpec is a hashed version of spec.servers to be able to track changes during reconciliation.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	ServersSpec string `json:"serversSpec,omitempty"`
	// ServicesSpec is a hashed version of spec.services to be able to track changes during reconciliation.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	ServicesSpec string `json:"servicesSpec,omitempty"`
}

MaxScaleStatus defines the observed state of MaxScale

func (*MaxScaleStatus) DeepCopy added in v0.0.25

func (in *MaxScaleStatus) DeepCopy() *MaxScaleStatus

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

func (*MaxScaleStatus) DeepCopyInto added in v0.0.25

func (in *MaxScaleStatus) DeepCopyInto(out *MaxScaleStatus)

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

func (*MaxScaleStatus) GetPrimaryServer added in v0.0.25

func (s *MaxScaleStatus) GetPrimaryServer() *string

GetPrimaryServer obtains the current primary server.

func (*MaxScaleStatus) SetCondition added in v0.0.25

func (s *MaxScaleStatus) SetCondition(condition metav1.Condition)

SetCondition sets a status condition to MaxScale

type MaxScaleTLS added in v0.37.0

type MaxScaleTLS struct {
	// Enabled indicates whether TLS is enabled, determining if certificates should be issued and mounted to the MaxScale instance.
	// It is enabled by default when the referred MariaDB instance (via mariaDbRef) has TLS enabled and enforced.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	Enabled bool `json:"enabled"`
	// AdminCASecretRef is a reference to a Secret containing the admin certificate authority keypair. It is used to establish trust and issue certificates for the MaxScale's administrative REST API and GUI.
	// One of:
	// - Secret containing both the 'ca.crt' and 'ca.key' keys. This allows you to bring your own CA to Kubernetes to issue certificates.
	// - Secret containing only the 'ca.crt' in order to establish trust. In this case, either adminCertSecretRef or adminCertIssuerRef fields must be provided.
	// If not provided, a self-signed CA will be provisioned to issue the server certificate.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	AdminCASecretRef *LocalObjectReference `json:"adminCASecretRef,omitempty"`
	// AdminCertSecretRef is a reference to a TLS Secret used by the MaxScale's administrative REST API and GUI.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	AdminCertSecretRef *LocalObjectReference `json:"adminCertSecretRef,omitempty"`
	// AdminCertIssuerRef is a reference to a cert-manager issuer object used to issue the MaxScale's administrative REST API and GUI certificate. cert-manager must be installed previously in the cluster.
	// It is mutually exclusive with adminCertSecretRef.
	// By default, the Secret field 'ca.crt' provisioned by cert-manager will be added to the trust chain. A custom trust bundle may be specified via adminCASecretRef.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	AdminCertIssuerRef *cmmeta.ObjectReference `json:"adminCertIssuerRef,omitempty"`
	// ListenerCASecretRef is a reference to a Secret containing the listener certificate authority keypair. It is used to establish trust and issue certificates for the MaxScale's listeners.
	// One of:
	// - Secret containing both the 'ca.crt' and 'ca.key' keys. This allows you to bring your own CA to Kubernetes to issue certificates.
	// - Secret containing only the 'ca.crt' in order to establish trust. In this case, either listenerCertSecretRef or listenerCertIssuerRef fields must be provided.
	// If not provided, a self-signed CA will be provisioned to issue the listener certificate.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	ListenerCASecretRef *LocalObjectReference `json:"listenerCASecretRef,omitempty"`
	// ListenerCertSecretRef is a reference to a TLS Secret used by the MaxScale's listeners.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	ListenerCertSecretRef *LocalObjectReference `json:"listenerCertSecretRef,omitempty"`
	// ListenerCertIssuerRef is a reference to a cert-manager issuer object used to issue the MaxScale's listeners certificate. cert-manager must be installed previously in the cluster.
	// It is mutually exclusive with listenerCertSecretRef.
	// By default, the Secret field 'ca.crt' provisioned by cert-manager will be added to the trust chain. A custom trust bundle may be specified via listenerCASecretRef.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	ListenerCertIssuerRef *cmmeta.ObjectReference `json:"listenerCertIssuerRef,omitempty"`
	// ServerCASecretRef is a reference to a Secret containing the MariaDB server CA certificates. It is used to establish trust with MariaDB servers.
	// The Secret should contain a 'ca.crt' key in order to establish trust.
	// If not provided, and the reference to a MariaDB resource is set (mariaDbRef), it will be defaulted to the referred MariaDB CA bundle.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	ServerCASecretRef *LocalObjectReference `json:"serverCASecretRef,omitempty"`
	// ServerCertSecretRef is a reference to a TLS Secret used by MaxScale to connect to the MariaDB servers.
	// If not provided, and the reference to a MariaDB resource is set (mariaDbRef), it will be defaulted to the referred MariaDB client certificate (clientCertSecretRef).
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	ServerCertSecretRef *LocalObjectReference `json:"serverCertSecretRef,omitempty"`
	// VerifyPeerCertificate specifies whether the peer certificate's signature should be validated against the CA.
	// It is disabled by default.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	VerifyPeerCertificate *bool `json:"verifyPeerCertificate,omitempty"`
	// VerifyPeerHost specifies whether the peer certificate's SANs should match the peer host.
	// It is disabled by default.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	VerifyPeerHost *bool `json:"verifyPeerHost,omitempty"`
	// ReplicationSSLEnabled specifies whether the replication SSL is enabled. If enabled, the SSL options will be added to the server configuration.
	// It is enabled by default when the referred MariaDB instance (via mariaDbRef) has replication enabled.
	// If the MariaDB servers are manually provided by the user via the 'servers' field, this must be set by the user as well.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	ReplicationSSLEnabled *bool `json:"replicationSSLEnabled,omitempty"`
}

TLS defines the PKI to be used with MaxScale.

func (*MaxScaleTLS) DeepCopy added in v0.37.0

func (in *MaxScaleTLS) DeepCopy() *MaxScaleTLS

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

func (*MaxScaleTLS) DeepCopyInto added in v0.37.0

func (in *MaxScaleTLS) DeepCopyInto(out *MaxScaleTLS)

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

func (*MaxScaleTLS) SetDefaults added in v0.37.0

func (m *MaxScaleTLS) SetDefaults(mdb *MariaDB)

SetDefaults sets reasonable defaults.

type MaxScaleTLSStatus added in v0.37.0

type MaxScaleTLSStatus struct {
	// CABundle is the status of the Certificate Authority bundle.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	CABundle []CertificateStatus `json:"caBundle,omitempty"`
	// AdminCert is the status of the admin certificate.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	AdminCert *CertificateStatus `json:"adminCert,omitempty"`
	// ListenerCert is the status of the listener certificate.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	ListenerCert *CertificateStatus `json:"listenerCert,omitempty"`
	// ServerCert is the status of the MariaDB server certificate.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	ServerCert *CertificateStatus `json:"serverCert,omitempty"`
}

MaxScaleTLSStatus aggregates the status of the certificates used by the MaxScale instance.

func (*MaxScaleTLSStatus) DeepCopy added in v0.37.0

func (in *MaxScaleTLSStatus) DeepCopy() *MaxScaleTLSStatus

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

func (*MaxScaleTLSStatus) DeepCopyInto added in v0.37.0

func (in *MaxScaleTLSStatus) DeepCopyInto(out *MaxScaleTLSStatus)

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

type Metadata added in v0.0.27

type Metadata struct {
	// Labels to be added to children resources.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Labels map[string]string `json:"labels,omitempty"`
	// Annotations to be added to children resources.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Annotations map[string]string `json:"annotations,omitempty"`
}

Metadata defines the metadata to added to resources.

func MergeMetadata added in v0.0.28

func MergeMetadata(metas ...*Metadata) *Metadata

MergeMetadata merges multiple Metadta instances into one

func (*Metadata) DeepCopy added in v0.0.27

func (in *Metadata) DeepCopy() *Metadata

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

func (*Metadata) DeepCopyInto added in v0.0.27

func (in *Metadata) DeepCopyInto(out *Metadata)

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

type MonitorModule added in v0.0.25

type MonitorModule string

MonitorModule defines the type of monitor module

const (
	// MonitorModuleMariadb is a monitor to be used with MariaDB servers.
	MonitorModuleMariadb MonitorModule = "mariadbmon"
	// MonitorModuleGalera is a monitor to be used with Galera servers.
	MonitorModuleGalera MonitorModule = "galeramon"
)

func (MonitorModule) Validate added in v0.0.25

func (m MonitorModule) Validate() error

Validate determines whether a MonitorModule is valid.

type NFSVolumeSource added in v0.35.0

type NFSVolumeSource struct {
	Server string `json:"server"`
	Path   string `json:"path"`
	// +optional
	ReadOnly bool `json:"readOnly,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#nfsvolumesource-v1-core.

func (*NFSVolumeSource) DeepCopy added in v0.35.0

func (in *NFSVolumeSource) DeepCopy() *NFSVolumeSource

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

func (*NFSVolumeSource) DeepCopyInto added in v0.35.0

func (in *NFSVolumeSource) DeepCopyInto(out *NFSVolumeSource)

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

func (NFSVolumeSource) ToKubernetesType added in v0.35.0

func (v NFSVolumeSource) ToKubernetesType() corev1.NFSVolumeSource

type NodeAffinity added in v0.35.0

type NodeAffinity struct {
	// +optional
	RequiredDuringSchedulingIgnoredDuringExecution *NodeSelector `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"`
	// +optional
	// +listType=atomic
	PreferredDuringSchedulingIgnoredDuringExecution []PreferredSchedulingTerm `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#nodeaffinity-v1-core

func (*NodeAffinity) DeepCopy added in v0.35.0

func (in *NodeAffinity) DeepCopy() *NodeAffinity

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

func (*NodeAffinity) DeepCopyInto added in v0.35.0

func (in *NodeAffinity) DeepCopyInto(out *NodeAffinity)

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

func (NodeAffinity) ToKubernetesType added in v0.35.0

func (p NodeAffinity) ToKubernetesType() corev1.NodeAffinity

type NodeSelector added in v0.35.0

type NodeSelector struct {
	// +listType=atomic
	NodeSelectorTerms []NodeSelectorTerm `json:"nodeSelectorTerms"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#nodeselector-v1-core

func (*NodeSelector) DeepCopy added in v0.35.0

func (in *NodeSelector) DeepCopy() *NodeSelector

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

func (*NodeSelector) DeepCopyInto added in v0.35.0

func (in *NodeSelector) DeepCopyInto(out *NodeSelector)

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

func (NodeSelector) ToKubernetesType added in v0.35.0

func (p NodeSelector) ToKubernetesType() corev1.NodeSelector

type NodeSelectorRequirement added in v0.35.0

type NodeSelectorRequirement struct {
	Key      string                      `json:"key"`
	Operator corev1.NodeSelectorOperator `json:"operator"`
	// +optional
	// +listType=atomic
	Values []string `json:"values,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#nodeselectorrequirement-v1-core

func (*NodeSelectorRequirement) DeepCopy added in v0.35.0

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

func (*NodeSelectorRequirement) DeepCopyInto added in v0.35.0

func (in *NodeSelectorRequirement) DeepCopyInto(out *NodeSelectorRequirement)

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

func (NodeSelectorRequirement) ToKubernetesType added in v0.35.0

type NodeSelectorTerm added in v0.35.0

type NodeSelectorTerm struct {
	// +optional
	// +listType=atomic
	MatchExpressions []NodeSelectorRequirement `json:"matchExpressions,omitempty"`
	// +optional
	// +listType=atomic
	MatchFields []NodeSelectorRequirement `json:"matchFields,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#nodeselectorterm-v1-core

func (*NodeSelectorTerm) DeepCopy added in v0.35.0

func (in *NodeSelectorTerm) DeepCopy() *NodeSelectorTerm

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

func (*NodeSelectorTerm) DeepCopyInto added in v0.35.0

func (in *NodeSelectorTerm) DeepCopyInto(out *NodeSelectorTerm)

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

func (NodeSelectorTerm) ToKubernetesType added in v0.35.0

func (s NodeSelectorTerm) ToKubernetesType() corev1.NodeSelectorTerm

type ObjectFieldSelector added in v0.0.32

type ObjectFieldSelector struct {
	// +optional
	APIVersion string `json:"apiVersion,omitempty"`
	FieldPath  string `json:"fieldPath"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectfieldselector-v1-core. +structType=atomic

func (*ObjectFieldSelector) DeepCopy added in v0.0.32

func (in *ObjectFieldSelector) DeepCopy() *ObjectFieldSelector

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

func (*ObjectFieldSelector) DeepCopyInto added in v0.0.32

func (in *ObjectFieldSelector) DeepCopyInto(out *ObjectFieldSelector)

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

func (ObjectFieldSelector) ToKubernetesType added in v0.0.32

func (s ObjectFieldSelector) ToKubernetesType() corev1.ObjectFieldSelector

type ObjectReference added in v0.0.32

type ObjectReference struct {
	// +optional
	Name string `json:"name,omitempty"`
	// +optional
	Namespace string `json:"namespace,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectreference-v1-core.

func (*ObjectReference) DeepCopy added in v0.0.32

func (in *ObjectReference) DeepCopy() *ObjectReference

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

func (*ObjectReference) DeepCopyInto added in v0.0.32

func (in *ObjectReference) DeepCopyInto(out *ObjectReference)

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

func (ObjectReference) ToKubernetesType added in v0.0.32

func (r ObjectReference) ToKubernetesType() corev1.ObjectReference

type PasswordPlugin added in v0.0.30

type PasswordPlugin struct {
	// PluginNameSecretKeyRef is a reference to the authentication plugin to be used by the User.
	// If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the authentication plugin.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	PluginNameSecretKeyRef *SecretKeySelector `json:"pluginNameSecretKeyRef,omitempty"`
	// PluginArgSecretKeyRef is a reference to the arguments to be provided to the authentication plugin for the User.
	// If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the authentication plugin arguments.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	PluginArgSecretKeyRef *SecretKeySelector `json:"pluginArgSecretKeyRef,omitempty"`
}

PasswordPlugin defines the password plugin and its arguments.

func (*PasswordPlugin) DeepCopy added in v0.0.30

func (in *PasswordPlugin) DeepCopy() *PasswordPlugin

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

func (*PasswordPlugin) DeepCopyInto added in v0.0.30

func (in *PasswordPlugin) DeepCopyInto(out *PasswordPlugin)

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

type PersistentVolumeClaimSpec added in v0.0.32

type PersistentVolumeClaimSpec struct {
	// +optional
	// +listType=atomic
	AccessModes []corev1.PersistentVolumeAccessMode `json:"accessModes,omitempty"`
	// +optional
	Selector *metav1.LabelSelector `json:"selector,omitempty"`
	// +optional
	Resources corev1.VolumeResourceRequirements `json:"resources,omitempty"`
	// +optional
	StorageClassName *string `json:"storageClassName,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#persistentvolumeclaimspec-v1-core.

func (*PersistentVolumeClaimSpec) DeepCopy added in v0.0.32

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

func (*PersistentVolumeClaimSpec) DeepCopyInto added in v0.0.32

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

func (PersistentVolumeClaimSpec) ToKubernetesType added in v0.0.32

type PersistentVolumeClaimVolumeSource added in v0.35.0

type PersistentVolumeClaimVolumeSource struct {
	ClaimName string `json:"claimName"`
	// +optional
	ReadOnly bool `json:"readOnly,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#persistentvolumeclaimvolumesource-v1-core.

func (*PersistentVolumeClaimVolumeSource) DeepCopy added in v0.35.0

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

func (*PersistentVolumeClaimVolumeSource) DeepCopyInto added in v0.35.0

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

func (PersistentVolumeClaimVolumeSource) ToKubernetesType added in v0.35.0

type PodAffinityTerm added in v0.0.32

type PodAffinityTerm struct {
	// +optional
	LabelSelector *LabelSelector `json:"labelSelector,omitempty"`
	TopologyKey   string         `json:"topologyKey"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podaffinityterm-v1-core.

func (*PodAffinityTerm) DeepCopy added in v0.0.32

func (in *PodAffinityTerm) DeepCopy() *PodAffinityTerm

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

func (*PodAffinityTerm) DeepCopyInto added in v0.0.32

func (in *PodAffinityTerm) DeepCopyInto(out *PodAffinityTerm)

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

func (PodAffinityTerm) ToKubernetesType added in v0.0.32

func (p PodAffinityTerm) ToKubernetesType() corev1.PodAffinityTerm

type PodAntiAffinity added in v0.0.32

type PodAntiAffinity struct {
	// +optional
	// +listType=atomic
	RequiredDuringSchedulingIgnoredDuringExecution []PodAffinityTerm `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"`
	// +optional
	// +listType=atomic
	PreferredDuringSchedulingIgnoredDuringExecution []WeightedPodAffinityTerm `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podantiaffinity-v1-core.

func (*PodAntiAffinity) DeepCopy added in v0.0.32

func (in *PodAntiAffinity) DeepCopy() *PodAntiAffinity

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

func (*PodAntiAffinity) DeepCopyInto added in v0.0.32

func (in *PodAntiAffinity) DeepCopyInto(out *PodAntiAffinity)

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

func (PodAntiAffinity) ToKubernetesType added in v0.0.32

func (p PodAntiAffinity) ToKubernetesType() corev1.PodAntiAffinity

type PodDisruptionBudget added in v0.0.12

type PodDisruptionBudget struct {
	// MinAvailable defines the number of minimum available Pods.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	MinAvailable *intstr.IntOrString `json:"minAvailable,omitempty"`
	// MaxUnavailable defines the number of maximum unavailable Pods.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"`
}

PodDisruptionBudget is the Pod availability bundget for a MariaDB

func (*PodDisruptionBudget) DeepCopy added in v0.0.12

func (in *PodDisruptionBudget) DeepCopy() *PodDisruptionBudget

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

func (*PodDisruptionBudget) DeepCopyInto added in v0.0.12

func (in *PodDisruptionBudget) DeepCopyInto(out *PodDisruptionBudget)

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

func (*PodDisruptionBudget) Validate added in v0.0.12

func (p *PodDisruptionBudget) Validate() error

type PodSecurityContext added in v0.34.0

type PodSecurityContext struct {
	// +optional
	SELinuxOptions *corev1.SELinuxOptions `json:"seLinuxOptions,omitempty"`
	// +optional
	RunAsUser *int64 `json:"runAsUser,omitempty"`
	// +optional
	RunAsGroup *int64 `json:"runAsGroup,omitempty"`
	// +optional
	RunAsNonRoot *bool `json:"runAsNonRoot,omitempty"`
	// +optional
	// +listType=atomic
	SupplementalGroups []int64 `json:"supplementalGroups,omitempty"`
	// +optional
	FSGroup *int64 `json:"fsGroup,omitempty"`
	// +optional
	FSGroupChangePolicy *corev1.PodFSGroupChangePolicy `json:"fsGroupChangePolicy,omitempty"`
	// +optional
	SeccompProfile *corev1.SeccompProfile `json:"seccompProfile,omitempty"`
	// +optional
	AppArmorProfile *corev1.AppArmorProfile `json:"appArmorProfile,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podsecuritycontext-v1-core

func (*PodSecurityContext) DeepCopy added in v0.34.0

func (in *PodSecurityContext) DeepCopy() *PodSecurityContext

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

func (*PodSecurityContext) DeepCopyInto added in v0.34.0

func (in *PodSecurityContext) DeepCopyInto(out *PodSecurityContext)

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

func (PodSecurityContext) ToKubernetesType added in v0.34.0

func (s PodSecurityContext) ToKubernetesType() corev1.PodSecurityContext

type PodTemplate added in v0.0.20

type PodTemplate struct {
	// PodMetadata defines extra metadata for the Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	PodMetadata *Metadata `json:"podMetadata,omitempty"`
	// ImagePullSecrets is the list of pull Secrets to be used to pull the image.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	ImagePullSecrets []LocalObjectReference `json:"imagePullSecrets,omitempty" webhook:"inmutable"`
	// InitContainers to be used in the Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	InitContainers []Container `json:"initContainers,omitempty"`
	// SidecarContainers to be used in the Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	SidecarContainers []Container `json:"sidecarContainers,omitempty"`
	// SecurityContext holds pod-level security attributes and common container settings.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	PodSecurityContext *PodSecurityContext `json:"podSecurityContext,omitempty"`
	// ServiceAccountName is the name of the ServiceAccount to be used by the Pods.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	ServiceAccountName *string `json:"serviceAccountName,omitempty" webhook:"inmutableinit"`
	// Affinity to be used in the Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Affinity *AffinityConfig `json:"affinity,omitempty"`
	// NodeSelector to be used in the Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`
	// Tolerations to be used in the Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
	// Volumes to be used in the Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Volumes []Volume `json:"volumes,omitempty" webhook:"inmutable"`
	// PriorityClassName to be used in the Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	PriorityClassName *string `json:"priorityClassName,omitempty"`
	// TopologySpreadConstraints to be used in the Pod.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	TopologySpreadConstraints []TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"`
}

PodTemplate defines a template to configure Container objects.

func (*PodTemplate) DeepCopy added in v0.0.20

func (in *PodTemplate) DeepCopy() *PodTemplate

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

func (*PodTemplate) DeepCopyInto added in v0.0.20

func (in *PodTemplate) DeepCopyInto(out *PodTemplate)

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

func (*PodTemplate) ServiceAccountKey added in v0.0.26

func (p *PodTemplate) ServiceAccountKey(objMeta metav1.ObjectMeta) types.NamespacedName

ServiceAccountKey defines the key for the ServiceAccount object.

func (*PodTemplate) SetDefaults added in v0.0.26

func (p *PodTemplate) SetDefaults(objMeta metav1.ObjectMeta)

SetDefaults sets reasonable defaults.

type PreferredSchedulingTerm added in v0.35.0

type PreferredSchedulingTerm struct {
	Weight     int32            `json:"weight"`
	Preference NodeSelectorTerm `json:"preference"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#preferredschedulingterm-v1-core

func (*PreferredSchedulingTerm) DeepCopy added in v0.35.0

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

func (*PreferredSchedulingTerm) DeepCopyInto added in v0.35.0

func (in *PreferredSchedulingTerm) DeepCopyInto(out *PreferredSchedulingTerm)

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

func (PreferredSchedulingTerm) ToKubernetesType added in v0.35.0

type PrimaryGalera added in v0.0.20

type PrimaryGalera struct {
	// PodIndex is the StatefulSet index of the primary node. The user may change this field to perform a manual switchover.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	PodIndex *int `json:"podIndex,omitempty"`
	// AutomaticFailover indicates whether the operator should automatically update PodIndex to perform an automatic primary failover.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	AutomaticFailover *bool `json:"automaticFailover,omitempty"`
}

PrimaryGalera is the Galera configuration for the primary node.

func (*PrimaryGalera) DeepCopy added in v0.0.20

func (in *PrimaryGalera) DeepCopy() *PrimaryGalera

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

func (*PrimaryGalera) DeepCopyInto added in v0.0.20

func (in *PrimaryGalera) DeepCopyInto(out *PrimaryGalera)

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

func (*PrimaryGalera) SetDefaults added in v0.0.26

func (r *PrimaryGalera) SetDefaults()

SetDefaults sets reasonable defaults.

type PrimaryReplication added in v0.0.12

type PrimaryReplication struct {
	// PodIndex is the StatefulSet index of the primary node. The user may change this field to perform a manual switchover.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	PodIndex *int `json:"podIndex,omitempty"`
	// AutomaticFailover indicates whether the operator should automatically update PodIndex to perform an automatic primary failover.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	AutomaticFailover *bool `json:"automaticFailover,omitempty"`
}

PrimaryReplication is the replication configuration for the primary node.

func (*PrimaryReplication) DeepCopy added in v0.0.12

func (in *PrimaryReplication) DeepCopy() *PrimaryReplication

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

func (*PrimaryReplication) DeepCopyInto added in v0.0.12

func (in *PrimaryReplication) DeepCopyInto(out *PrimaryReplication)

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

func (*PrimaryReplication) FillWithDefaults added in v0.0.20

func (r *PrimaryReplication) FillWithDefaults()

FillWithDefaults fills the current PrimaryReplication object with DefaultReplicationSpec. This enables having minimal PrimaryReplication objects and provides sensible defaults.

type Probe added in v0.0.32

type Probe struct {
	ProbeHandler `json:",inline"`
	// +optional
	InitialDelaySeconds int32 `json:"initialDelaySeconds,omitempty"`
	// +optional
	TimeoutSeconds int32 `json:"timeoutSeconds,omitempty"`
	// +optional
	PeriodSeconds int32 `json:"periodSeconds,omitempty"`
	// +optional
	SuccessThreshold int32 `json:"successThreshold,omitempty"`
	// +optional
	FailureThreshold int32 `json:"failureThreshold,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#probe-v1-core.

func (*Probe) DeepCopy added in v0.0.32

func (in *Probe) DeepCopy() *Probe

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

func (*Probe) DeepCopyInto added in v0.0.32

func (in *Probe) DeepCopyInto(out *Probe)

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

func (Probe) ToKubernetesType added in v0.0.32

func (p Probe) ToKubernetesType() corev1.Probe

type ProbeHandler added in v0.0.32

type ProbeHandler struct {
	// +optional
	Exec *ExecAction `json:"exec,omitempty"`
	// +optional
	HTTPGet *HTTPGetAction `json:"httpGet,omitempty"`
	// +optional
	TCPSocket *TCPSocketAction `json:"tcpSocket,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#probe-v1-core.

func (*ProbeHandler) DeepCopy added in v0.0.32

func (in *ProbeHandler) DeepCopy() *ProbeHandler

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

func (*ProbeHandler) DeepCopyInto added in v0.0.32

func (in *ProbeHandler) DeepCopyInto(out *ProbeHandler)

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

func (ProbeHandler) ToKubernetesType added in v0.0.32

func (p ProbeHandler) ToKubernetesType() corev1.ProbeHandler

type ReplicaReplication added in v0.0.12

type ReplicaReplication struct {
	// WaitPoint defines whether the transaction should wait for ACK before committing to the storage engine.
	// More info: https://mariadb.com/kb/en/semisynchronous-replication/#rpl_semi_sync_master_wait_point.
	// +optional
	// +kubebuilder:validation:Enum=AfterSync;AfterCommit
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	WaitPoint *WaitPoint `json:"waitPoint,omitempty"`
	// Gtid indicates which Global Transaction ID should be used when connecting a replica to the master.
	// See: https://mariadb.com/kb/en/gtid/#using-current_pos-vs-slave_pos.
	// +optional
	// +kubebuilder:validation:Enum=CurrentPos;SlavePos
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Gtid *Gtid `json:"gtid,omitempty"`
	// ReplPasswordSecretKeyRef provides a reference to the Secret to use as password for the replication user.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	ReplPasswordSecretKeyRef *GeneratedSecretKeyRef `json:"replPasswordSecretKeyRef,omitempty"`
	// ConnectionTimeout to be used when the replica connects to the primary.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	ConnectionTimeout *metav1.Duration `json:"connectionTimeout,omitempty"`
	// ConnectionRetries to be used when the replica connects to the primary.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"}
	ConnectionRetries *int `json:"connectionRetries,omitempty"`
	// SyncTimeout defines the timeout for a replica to be synced with the primary when performing a primary switchover.
	// If the timeout is reached, the replica GTID will be reset and the switchover will continue.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	SyncTimeout *metav1.Duration `json:"syncTimeout,omitempty"`
}

ReplicaReplication is the replication configuration for the replica nodes.

func (*ReplicaReplication) DeepCopy added in v0.0.12

func (in *ReplicaReplication) DeepCopy() *ReplicaReplication

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

func (*ReplicaReplication) DeepCopyInto added in v0.0.12

func (in *ReplicaReplication) DeepCopyInto(out *ReplicaReplication)

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

func (*ReplicaReplication) FillWithDefaults added in v0.0.20

func (r *ReplicaReplication) FillWithDefaults()

FillWithDefaults fills the current ReplicaReplication object with DefaultReplicationSpec. This enables having minimal ReplicaReplication objects and provides sensible defaults.

func (*ReplicaReplication) Validate added in v0.0.12

func (r *ReplicaReplication) Validate() error

Validate returns an error if the ReplicaReplication is not valid.

type Replication added in v0.0.12

type Replication struct {
	// ReplicationSpec is the Replication desired state specification.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	ReplicationSpec `json:",inline"`
	// Enabled is a flag to enable Replication.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	Enabled bool `json:"enabled,omitempty"`
}

Replication allows you to enable single-master HA via semi-synchronours replication in your MariaDB cluster.

func (*Replication) DeepCopy added in v0.0.12

func (in *Replication) DeepCopy() *Replication

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

func (*Replication) DeepCopyInto added in v0.0.12

func (in *Replication) DeepCopyInto(out *Replication)

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

type ReplicationSpec added in v0.0.20

type ReplicationSpec struct {
	// Primary is the replication configuration for the primary node.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Primary *PrimaryReplication `json:"primary,omitempty"`
	// ReplicaReplication is the replication configuration for the replica nodes.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Replica *ReplicaReplication `json:"replica,omitempty"`
	// SyncBinlog indicates whether the binary log should be synchronized to the disk after every event.
	// It trades off performance for consistency.
	// See: https://mariadb.com/kb/en/replication-and-binary-log-system-variables/#sync_binlog.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch","urn:alm:descriptor:com.tectonic.ui:advanced"}
	SyncBinlog *bool `json:"syncBinlog,omitempty"`
	// ProbesEnabled indicates to use replication specific liveness and readiness probes.
	// This probes check that the primary can receive queries and that the replica has the replication thread running.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch","urn:alm:descriptor:com.tectonic.ui:advanced"}
	ProbesEnabled *bool `json:"probesEnabled,omitempty"`
}

ReplicationSpec is the Replication desired state specification.

func (*ReplicationSpec) DeepCopy added in v0.0.20

func (in *ReplicationSpec) DeepCopy() *ReplicationSpec

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

func (*ReplicationSpec) DeepCopyInto added in v0.0.20

func (in *ReplicationSpec) DeepCopyInto(out *ReplicationSpec)

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

func (*ReplicationSpec) FillWithDefaults added in v0.0.20

func (r *ReplicationSpec) FillWithDefaults()

FillWithDefaults fills the current ReplicationSpec object with DefaultReplicationSpec. This enables having minimal ReplicationSpec objects and provides sensible defaults.

type ReplicationState added in v0.0.25

type ReplicationState string
const (
	ReplicationStateMaster        ReplicationState = "Master"
	ReplicationStateSlave         ReplicationState = "Slave"
	ReplicationStateNotConfigured ReplicationState = "NotConfigured"
)

type ReplicationStatus added in v0.0.25

type ReplicationStatus map[string]ReplicationState

func (ReplicationStatus) DeepCopy added in v0.0.25

func (in ReplicationStatus) DeepCopy() ReplicationStatus

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

func (ReplicationStatus) DeepCopyInto added in v0.0.25

func (in ReplicationStatus) DeepCopyInto(out *ReplicationStatus)

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

func (ReplicationStatus) IsReplicationConfigured added in v0.0.25

func (r ReplicationStatus) IsReplicationConfigured() bool

type ResourceRequirements added in v0.0.32

type ResourceRequirements struct {
	// +optional
	Limits corev1.ResourceList `json:"limits,omitempty"`
	// +optional
	Requests corev1.ResourceList `json:"requests,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#resourcerequirements-v1-core.

func (*ResourceRequirements) DeepCopy added in v0.0.32

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

func (*ResourceRequirements) DeepCopyInto added in v0.0.32

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

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

func (ResourceRequirements) ToKubernetesType added in v0.0.32

func (r ResourceRequirements) ToKubernetesType() corev1.ResourceRequirements

type Restore

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

	Spec   RestoreSpec   `json:"spec,omitempty"`
	Status RestoreStatus `json:"status,omitempty"`
}

Restore is the Schema for the restores API. It is used to define restore jobs and its restoration source.

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.

func (*Restore) DeepCopyObject

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

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

func (*Restore) IsComplete

func (r *Restore) IsComplete() bool

func (*Restore) SetDefaults added in v0.0.26

func (b *Restore) SetDefaults(mariadb *MariaDB)

func (*Restore) StagingPVCKey added in v0.35.0

func (r *Restore) StagingPVCKey() types.NamespacedName

type RestoreList

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

RestoreList contains a list of restore

func (*RestoreList) DeepCopy

func (in *RestoreList) DeepCopy() *RestoreList

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

func (*RestoreList) DeepCopyInto

func (in *RestoreList) DeepCopyInto(out *RestoreList)

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

func (*RestoreList) DeepCopyObject

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

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

type RestoreSource

type RestoreSource struct {
	// BackupRef is a reference to a Backup object. It has priority over S3 and Volume.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	BackupRef *LocalObjectReference `json:"backupRef,omitempty" webhook:"inmutableinit"`
	// S3 defines the configuration to restore backups from a S3 compatible storage. It has priority over Volume.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	S3 *S3 `json:"s3,omitempty" webhook:"inmutableinit"`
	// Volume is a Kubernetes Volume object that contains a backup.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Volume *StorageVolumeSource `json:"volume,omitempty" webhook:"inmutableinit"`
	// TargetRecoveryTime is a RFC3339 (1970-01-01T00:00:00Z) date and time that defines the point in time recovery objective.
	// It is used to determine the closest restoration source in time.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	TargetRecoveryTime *metav1.Time `json:"targetRecoveryTime,omitempty" webhook:"inmutable"`
	// StagingStorage defines the temporary storage used to keep external backups (i.e. S3) while they are being processed.
	// It defaults to an emptyDir volume, meaning that the backups will be temporarily stored in the node where the Restore Job is scheduled.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch","urn:alm:descriptor:com.tectonic.ui:advanced"}
	StagingStorage *BackupStagingStorage `json:"stagingStorage,omitempty" webhook:"inmutable"`
}

RestoreSource defines a source for restoring a MariaDB.

func (*RestoreSource) DeepCopy

func (in *RestoreSource) DeepCopy() *RestoreSource

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

func (*RestoreSource) DeepCopyInto

func (in *RestoreSource) DeepCopyInto(out *RestoreSource)

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

func (*RestoreSource) IsDefaulted added in v0.0.24

func (r *RestoreSource) IsDefaulted() bool

func (*RestoreSource) SetDefaults added in v0.0.24

func (r *RestoreSource) SetDefaults(restore *Restore)

func (*RestoreSource) SetDefaultsWithBackup added in v0.0.24

func (r *RestoreSource) SetDefaultsWithBackup(backup *Backup) error

func (*RestoreSource) TargetRecoveryTimeOrDefault added in v0.0.24

func (r *RestoreSource) TargetRecoveryTimeOrDefault() time.Time

func (*RestoreSource) Validate

func (r *RestoreSource) Validate() error

type RestoreSpec

type RestoreSpec struct {
	// JobContainerTemplate defines templates to configure Container objects.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	JobContainerTemplate `json:",inline"`
	// JobPodTemplate defines templates to configure Pod objects.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	JobPodTemplate `json:",inline"`
	// RestoreSource defines a source for restoring a MariaDB.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	RestoreSource `json:",inline"`
	// MariaDBRef is a reference to a MariaDB object.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	MariaDBRef MariaDBRef `json:"mariaDbRef" webhook:"inmutable"`
	// Database defines the logical database to be restored. If not provided, all databases available in the backup are restored.
	// IMPORTANT: The database must previously exist.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Database string `json:"database,omitempty"`
	// LogLevel to be used n the Backup Job. It defaults to 'info'.
	// +optional
	// +kubebuilder:default=info
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	LogLevel string `json:"logLevel,omitempty"`
	// BackoffLimit defines the maximum number of attempts to successfully perform a Backup.
	// +optional
	// +kubebuilder:default=5
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number","urn:alm:descriptor:com.tectonic.ui:advanced"}
	BackoffLimit int32 `json:"backoffLimit,omitempty"`
	// RestartPolicy to be added to the Backup Job.
	// +optional
	// +kubebuilder:default=OnFailure
	// +kubebuilder:validation:Enum=Always;OnFailure;Never
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	RestartPolicy corev1.RestartPolicy `json:"restartPolicy,omitempty" webhook:"inmutable"`
	// InheritMetadata defines the metadata to be inherited by children resources.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	InheritMetadata *Metadata `json:"inheritMetadata,omitempty"`
}

RestoreSpec defines the desired state of restore

func (*RestoreSpec) DeepCopy

func (in *RestoreSpec) DeepCopy() *RestoreSpec

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

func (*RestoreSpec) DeepCopyInto

func (in *RestoreSpec) DeepCopyInto(out *RestoreSpec)

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

type RestoreStatus

type RestoreStatus struct {
	// Conditions for the Restore object.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors={"urn:alm:descriptor:io.kubernetes.conditions"}
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

RestoreStatus defines the observed state of restore

func (*RestoreStatus) DeepCopy

func (in *RestoreStatus) DeepCopy() *RestoreStatus

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

func (*RestoreStatus) DeepCopyInto

func (in *RestoreStatus) DeepCopyInto(out *RestoreStatus)

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

func (*RestoreStatus) SetCondition

func (r *RestoreStatus) SetCondition(condition metav1.Condition)

type S3 added in v0.0.24

type S3 struct {
	// Bucket is the name Name of the bucket to store backups.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Bucket string `json:"bucket" webhook:"inmutable"`
	// Endpoint is the S3 API endpoint without scheme.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Endpoint string `json:"endpoint" webhook:"inmutable"`
	// Region is the S3 region name to use.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Region string `json:"region" webhook:"inmutable"`
	// Prefix indicates a folder/subfolder in the bucket. For example: mariadb/ or mariadb/backups. A trailing slash '/' is added if not provided.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Prefix string `json:"prefix" webhook:"inmutable"`
	// AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 access key id.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	AccessKeyIdSecretKeyRef *SecretKeySelector `json:"accessKeyIdSecretKeyRef,omitempty"`
	// AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 secret key.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	SecretAccessKeySecretKeyRef *SecretKeySelector `json:"secretAccessKeySecretKeyRef,omitempty"`
	// SessionTokenSecretKeyRef is a reference to a Secret key containing the S3 session token.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	SessionTokenSecretKeyRef *SecretKeySelector `json:"sessionTokenSecretKeyRef,omitempty"`
	// TLS provides the configuration required to establish TLS connections with S3.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	TLS *TLSS3 `json:"tls,omitempty"`
}

func (*S3) DeepCopy added in v0.0.24

func (in *S3) DeepCopy() *S3

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

func (*S3) DeepCopyInto added in v0.0.24

func (in *S3) DeepCopyInto(out *S3)

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

type SQLTemplate added in v0.0.21

type SQLTemplate struct {
	// RequeueInterval is used to perform requeue reconciliations.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	RequeueInterval *metav1.Duration `json:"requeueInterval,omitempty"`
	// RetryInterval is the interval used to perform retries.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	RetryInterval *metav1.Duration `json:"retryInterval,omitempty"`
	// CleanupPolicy defines the behavior for cleaning up a SQL resource.
	// +optional
	// +kubebuilder:validation:Enum=Skip;Delete
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	CleanupPolicy *CleanupPolicy `json:"cleanupPolicy,omitempty"`
}

SQLTemplate defines a template to customize SQL objects.

func (*SQLTemplate) DeepCopy added in v0.0.21

func (in *SQLTemplate) DeepCopy() *SQLTemplate

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

func (*SQLTemplate) DeepCopyInto added in v0.0.21

func (in *SQLTemplate) DeepCopyInto(out *SQLTemplate)

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

type SST added in v0.0.16

type SST string

SST is the Snapshot State Transfer used when new Pods join the cluster. More info: https://galeracluster.com/library/documentation/sst.html.

const (
	// SSTRsync is an SST based on rsync.
	SSTRsync SST = "rsync"
	// SSTMariaBackup is an SST based on mariabackup. It is the recommended SST.
	SSTMariaBackup SST = "mariabackup"
	// SSTMysqldump is an SST based on mysqldump.
	SSTMysqldump SST = "mysqldump"
)

func (SST) MariaDBFormat added in v0.0.16

func (s SST) MariaDBFormat() (string, error)

MariaDBFormat formats the SST so it can be used in Galera config files.

func (SST) Validate added in v0.0.16

func (s SST) Validate() error

Validate returns an error if the SST is not valid.

type Schedule added in v0.0.14

type Schedule struct {
	// Cron is a cron expression that defines the schedule.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Cron string `json:"cron"`
	// Suspend defines whether the schedule is active or not.
	// +optional
	// +kubebuilder:default=false
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch","urn:alm:descriptor:com.tectonic.ui:advanced"}
	Suspend bool `json:"suspend"`
}

Schedule contains parameters to define a schedule

func (*Schedule) DeepCopy added in v0.0.14

func (in *Schedule) DeepCopy() *Schedule

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

func (*Schedule) DeepCopyInto added in v0.0.14

func (in *Schedule) DeepCopyInto(out *Schedule)

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

func (*Schedule) Validate added in v0.0.14

func (s *Schedule) Validate() error

type SecretKeySelector added in v0.0.32

type SecretKeySelector struct {
	LocalObjectReference `json:",inline"`
	Key                  string `json:"key"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#secretkeyselector-v1-core. +structType=atomic

func (*SecretKeySelector) DeepCopy added in v0.0.32

func (in *SecretKeySelector) DeepCopy() *SecretKeySelector

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

func (*SecretKeySelector) DeepCopyInto added in v0.0.32

func (in *SecretKeySelector) DeepCopyInto(out *SecretKeySelector)

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

func (SecretKeySelector) ToKubernetesType added in v0.0.32

func (s SecretKeySelector) ToKubernetesType() corev1.SecretKeySelector

type SecretTemplate

type SecretTemplate struct {
	// Metadata to be added to the Secret object.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Metadata *Metadata `json:"metadata,omitempty"`
	// Key to be used in the Secret.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Key *string `json:"key,omitempty"`
	// Format to be used in the Secret.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Format *string `json:"format,omitempty"`
	// UsernameKey to be used in the Secret.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	UsernameKey *string `json:"usernameKey,omitempty"`
	// PasswordKey to be used in the Secret.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	PasswordKey *string `json:"passwordKey,omitempty"`
	// HostKey to be used in the Secret.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	HostKey *string `json:"hostKey,omitempty"`
	// PortKey to be used in the Secret.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	PortKey *string `json:"portKey,omitempty"`
	// DatabaseKey to be used in the Secret.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	DatabaseKey *string `json:"databaseKey,omitempty"`
}

SecretTemplate defines a template to customize Secret objects.

func (*SecretTemplate) DeepCopy

func (in *SecretTemplate) DeepCopy() *SecretTemplate

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

func (*SecretTemplate) DeepCopyInto

func (in *SecretTemplate) DeepCopyInto(out *SecretTemplate)

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

type SecretVolumeSource added in v0.35.0

type SecretVolumeSource struct {
	// +optional
	SecretName string `json:"secretName,omitempty"`
	// +optional
	DefaultMode *int32 `json:"defaultMode,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#secretvolumesource-v1-core.

func (*SecretVolumeSource) DeepCopy added in v0.35.0

func (in *SecretVolumeSource) DeepCopy() *SecretVolumeSource

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

func (*SecretVolumeSource) DeepCopyInto added in v0.35.0

func (in *SecretVolumeSource) DeepCopyInto(out *SecretVolumeSource)

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

func (SecretVolumeSource) ToKubernetesType added in v0.35.0

func (v SecretVolumeSource) ToKubernetesType() corev1.SecretVolumeSource

type SecurityContext added in v0.0.32

type SecurityContext struct {
	// +optional
	Capabilities *corev1.Capabilities `json:"capabilities,omitempty"`
	// +optional
	Privileged *bool `json:"privileged,omitempty"`
	// +optional
	RunAsUser *int64 `json:"runAsUser,omitempty"`
	// +optional
	RunAsGroup *int64 `json:"runAsGroup,omitempty"`
	// +optional
	RunAsNonRoot *bool `json:"runAsNonRoot,omitempty"`
	// +optional
	ReadOnlyRootFilesystem *bool `json:"readOnlyRootFilesystem,omitempty"`
	// +optional
	AllowPrivilegeEscalation *bool `json:"allowPrivilegeEscalation,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#securitycontext-v1-core.

func (*SecurityContext) DeepCopy added in v0.0.32

func (in *SecurityContext) DeepCopy() *SecurityContext

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

func (*SecurityContext) DeepCopyInto added in v0.0.32

func (in *SecurityContext) DeepCopyInto(out *SecurityContext)

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

func (SecurityContext) ToKubernetesType added in v0.0.32

func (s SecurityContext) ToKubernetesType() corev1.SecurityContext

type ServiceMonitor

type ServiceMonitor struct {
	// PrometheusRelease is the release label to add to the ServiceMonitor object.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	PrometheusRelease string `json:"prometheusRelease,omitempty"`
	// JobLabel to add to the ServiceMonitor object.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	JobLabel string `json:"jobLabel,omitempty"`
	// Interval for scraping metrics.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Interval string `json:"interval,omitempty"`
	// ScrapeTimeout defines the timeout for scraping metrics.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	ScrapeTimeout string `json:"scrapeTimeout,omitempty"`
}

ServiceMonitor defines a prometheus ServiceMonitor object.

func (*ServiceMonitor) DeepCopy

func (in *ServiceMonitor) DeepCopy() *ServiceMonitor

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

func (*ServiceMonitor) DeepCopyInto

func (in *ServiceMonitor) DeepCopyInto(out *ServiceMonitor)

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

type ServicePort added in v0.34.0

type ServicePort struct {
	Name string `json:"name"`
	Port int32  `json:"port"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#serviceport-v1-core

func (*ServicePort) DeepCopy added in v0.34.0

func (in *ServicePort) DeepCopy() *ServicePort

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

func (*ServicePort) DeepCopyInto added in v0.34.0

func (in *ServicePort) DeepCopyInto(out *ServicePort)

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

func (ServicePort) ToKubernetesType added in v0.34.0

func (r ServicePort) ToKubernetesType() corev1.ServicePort

type ServiceRouter added in v0.0.25

type ServiceRouter string

ServiceRouter defines the type of service router.

const (
	// ServiceRouterReadWriteSplit splits the load based on the queries. Write queries are performed on master and read queries on the replicas.
	ServiceRouterReadWriteSplit ServiceRouter = "readwritesplit"
	// ServiceRouterReadConnRoute splits the load based on the connections. Each connection is assigned to a server.
	ServiceRouterReadConnRoute ServiceRouter = "readconnroute"
)

type ServiceTemplate added in v0.0.20

type ServiceTemplate struct {
	// Type is the Service type. One of `ClusterIP`, `NodePort` or `LoadBalancer`. If not defined, it defaults to `ClusterIP`.
	// +optional
	// +kubebuilder:default=ClusterIP
	// +kubebuilder:validation:Enum=ClusterIP;NodePort;LoadBalancer
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Type corev1.ServiceType `json:"type,omitempty"`
	// Metadata to be added to the Service metadata.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Metadata *Metadata `json:"metadata,omitempty"`
	// LoadBalancerIP Service field.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	LoadBalancerIP *string `json:"loadBalancerIP,omitempty"`
	// LoadBalancerSourceRanges Service field.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	LoadBalancerSourceRanges []string `json:"loadBalancerSourceRanges,omitempty"`
	// ExternalTrafficPolicy Service field.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	ExternalTrafficPolicy *corev1.ServiceExternalTrafficPolicyType `json:"externalTrafficPolicy,omitempty"`
	// SessionAffinity Service field.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	SessionAffinity *corev1.ServiceAffinity `json:"sessionAffinity,omitempty"`
	// AllocateLoadBalancerNodePorts Service field.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch","urn:alm:descriptor:com.tectonic.ui:advanced"}
	AllocateLoadBalancerNodePorts *bool `json:"allocateLoadBalancerNodePorts,omitempty"`
}

ServiceTemplate defines a template to customize Service objects.

func (*ServiceTemplate) DeepCopy added in v0.0.20

func (in *ServiceTemplate) DeepCopy() *ServiceTemplate

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

func (*ServiceTemplate) DeepCopyInto added in v0.0.20

func (in *ServiceTemplate) DeepCopyInto(out *ServiceTemplate)

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

type SqlJob

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

	Spec   SqlJobSpec   `json:"spec,omitempty"`
	Status SqlJobStatus `json:"status,omitempty"`
}

SqlJob is the Schema for the sqljobs API. It is used to run sql scripts as jobs.

func (*SqlJob) DeepCopy

func (in *SqlJob) DeepCopy() *SqlJob

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

func (*SqlJob) DeepCopyInto

func (in *SqlJob) DeepCopyInto(out *SqlJob)

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

func (*SqlJob) DeepCopyObject

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

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

func (*SqlJob) IsComplete

func (s *SqlJob) IsComplete() bool

func (*SqlJob) SetDefaults added in v0.0.26

func (s *SqlJob) SetDefaults(mariadb *MariaDB)

type SqlJobList

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

SqlJobList contains a list of SqlJob

func (*SqlJobList) DeepCopy

func (in *SqlJobList) DeepCopy() *SqlJobList

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

func (*SqlJobList) DeepCopyInto

func (in *SqlJobList) DeepCopyInto(out *SqlJobList)

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

func (*SqlJobList) DeepCopyObject

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

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

type SqlJobSpec

type SqlJobSpec struct {
	// JobContainerTemplate defines templates to configure Container objects.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	JobContainerTemplate `json:",inline"`
	// JobPodTemplate defines templates to configure Pod objects.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	JobPodTemplate `json:",inline"`
	// CronJobTemplate defines parameters for configuring CronJob objects.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	CronJobTemplate `json:",inline"`
	// MariaDBRef is a reference to a MariaDB object.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	MariaDBRef MariaDBRef `json:"mariaDbRef" webhook:"inmutable"`
	// Schedule defines when the SqlJob will be executed.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Schedule *Schedule `json:"schedule,omitempty"`
	// Username to be impersonated when executing the SqlJob.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Username string `json:"username" webhook:"inmutable"`
	// UserPasswordSecretKeyRef is a reference to the impersonated user's password to be used when executing the SqlJob.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	PasswordSecretKeyRef SecretKeySelector `json:"passwordSecretKeyRef" webhook:"inmutable"`
	// TLSCACertSecretRef is a reference toa CA Secret used to establish trust when executing the SqlJob.
	// If not provided, the CA bundle provided by the referred MariaDB is used.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	TLSCACertSecretRef *LocalObjectReference `json:"tlsCASecretRef,omitempty"`
	// TLSClientCertSecretRef is a reference to a Kubernetes TLS Secret used as authentication when executing the SqlJob.
	// If not provided, the client certificate provided by the referred MariaDB is used.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	TLSClientCertSecretRef *LocalObjectReference `json:"tlsClientCertSecretRef,omitempty"`
	// Username to be used when executing the SqlJob.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Database *string `json:"database,omitempty" webhook:"inmutable"`
	// DependsOn defines dependencies with other SqlJob objectecs.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	DependsOn []LocalObjectReference `json:"dependsOn,omitempty" webhook:"inmutable"`
	// Sql is the script to be executed by the SqlJob.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Sql *string `json:"sql,omitempty" webhook:"inmutable"`
	// SqlConfigMapKeyRef is a reference to a ConfigMap containing the Sql script.
	// It is defaulted to a ConfigMap with the contents of the Sql field.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	SqlConfigMapKeyRef *ConfigMapKeySelector `json:"sqlConfigMapKeyRef,omitempty" webhook:"inmutableinit"`
	// BackoffLimit defines the maximum number of attempts to successfully execute a SqlJob.
	// +optional
	// +kubebuilder:default=5
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number","urn:alm:descriptor:com.tectonic.ui:advanced"}
	BackoffLimit int32 `json:"backoffLimit,omitempty"`
	// RestartPolicy to be added to the SqlJob Pod.
	// +optional
	// +kubebuilder:default=OnFailure
	// +kubebuilder:validation:Enum=Always;OnFailure;Never
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	RestartPolicy corev1.RestartPolicy `json:"restartPolicy,omitempty" webhook:"inmutable"`
	// InheritMetadata defines the metadata to be inherited by children resources.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	InheritMetadata *Metadata `json:"inheritMetadata,omitempty"`
}

SqlJobSpec defines the desired state of SqlJob

func (*SqlJobSpec) DeepCopy

func (in *SqlJobSpec) DeepCopy() *SqlJobSpec

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

func (*SqlJobSpec) DeepCopyInto

func (in *SqlJobSpec) DeepCopyInto(out *SqlJobSpec)

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

type SqlJobStatus

type SqlJobStatus struct {
	// Conditions for the SqlJob object.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors={"urn:alm:descriptor:io.kubernetes.conditions"}
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

SqlJobStatus defines the observed state of SqlJob

func (*SqlJobStatus) DeepCopy

func (in *SqlJobStatus) DeepCopy() *SqlJobStatus

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

func (*SqlJobStatus) DeepCopyInto

func (in *SqlJobStatus) DeepCopyInto(out *SqlJobStatus)

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

func (*SqlJobStatus) SetCondition

func (s *SqlJobStatus) SetCondition(condition metav1.Condition)

type Storage added in v0.0.26

type Storage struct {
	// Ephemeral indicates whether to use ephemeral storage in the PVCs. It is only compatible with non HA MariaDBs.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch","urn:alm:descriptor:com.tectonic.ui:advanced"}
	Ephemeral *bool `json:"ephemeral,omitempty" webhook:"inmutableinit"`
	// Size of the PVCs to be mounted by MariaDB. Required if not provided in 'VolumeClaimTemplate'. It supersedes the storage size specified in 'VolumeClaimTemplate'.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	Size *resource.Quantity `json:"size,omitempty"`
	// StorageClassName to be used to provision the PVCS. It supersedes the 'StorageClassName' specified in 'VolumeClaimTemplate'.
	// If not provided, the default 'StorageClass' configured in the cluster is used.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	StorageClassName string `json:"storageClassName,omitempty" webhook:"inmutable"`
	// ResizeInUseVolumes indicates whether the PVCs can be resized. The 'StorageClassName' used should have 'allowVolumeExpansion' set to 'true' to allow resizing.
	// It defaults to true.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch","urn:alm:descriptor:com.tectonic.ui:advanced"}
	ResizeInUseVolumes *bool `json:"resizeInUseVolumes,omitempty"`
	// WaitForVolumeResize indicates whether to wait for the PVCs to be resized before marking the MariaDB object as ready. This will block other operations such as cluster recovery while the resize is in progress.
	// It defaults to true.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch","urn:alm:descriptor:com.tectonic.ui:advanced"}
	WaitForVolumeResize *bool `json:"waitForVolumeResize,omitempty"`
	// VolumeClaimTemplate provides a template to define the PVCs.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	VolumeClaimTemplate *VolumeClaimTemplate `json:"volumeClaimTemplate,omitempty"`
}

Storage defines the storage options to be used for provisioning the PVCs mounted by MariaDB.

func (*Storage) DeepCopy added in v0.0.26

func (in *Storage) DeepCopy() *Storage

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

func (*Storage) DeepCopyInto added in v0.0.26

func (in *Storage) DeepCopyInto(out *Storage)

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

func (*Storage) GetSize added in v0.0.26

func (s *Storage) GetSize() *resource.Quantity

GetSize obtains the size of the PVC.

func (*Storage) SetDefaults added in v0.0.26

func (s *Storage) SetDefaults()

SetDefaults sets reasonable defaults.

func (*Storage) Validate added in v0.0.26

func (s *Storage) Validate(mdb *MariaDB) error

Storate determines whether a Storage object is valid.

type StorageVolumeSource added in v0.35.0

type StorageVolumeSource struct {
	// +optional
	EmptyDir *EmptyDirVolumeSource `json:"emptyDir,omitempty"`
	// +optional
	NFS *NFSVolumeSource `json:"nfs,omitempty"`
	// +optional
	CSI *CSIVolumeSource `json:"csi,omitempty"`
	// +optional
	HostPath *HostPathVolumeSource `json:"hostPath,omitempty"`
	// +optional
	PersistentVolumeClaim *PersistentVolumeClaimVolumeSource `json:"persistentVolumeClaim,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#volume-v1-core.

func (*StorageVolumeSource) DeepCopy added in v0.35.0

func (in *StorageVolumeSource) DeepCopy() *StorageVolumeSource

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

func (*StorageVolumeSource) DeepCopyInto added in v0.35.0

func (in *StorageVolumeSource) DeepCopyInto(out *StorageVolumeSource)

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

func (StorageVolumeSource) ToKubernetesType added in v0.35.0

func (v StorageVolumeSource) ToKubernetesType() corev1.VolumeSource

type SuspendTemplate added in v0.0.25

type SuspendTemplate struct {
	// Suspend indicates whether the current resource should be suspended or not.
	// This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.
	// +optional
	// +kubebuilder:default=false
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch","urn:alm:descriptor:com.tectonic.ui:advanced"}
	Suspend bool `json:"suspend,omitempty"`
}

SuspendTemplate indicates whether the current resource should be suspended or not.

func (*SuspendTemplate) DeepCopy added in v0.0.25

func (in *SuspendTemplate) DeepCopy() *SuspendTemplate

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

func (*SuspendTemplate) DeepCopyInto added in v0.0.25

func (in *SuspendTemplate) DeepCopyInto(out *SuspendTemplate)

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

type TCPSocketAction added in v0.37.0

type TCPSocketAction struct {
	Port intstr.IntOrString `json:"port"`
	// +optional
	Host string `json:"host,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#tcpsocketaction-v1-core.

func (*TCPSocketAction) DeepCopy added in v0.37.0

func (in *TCPSocketAction) DeepCopy() *TCPSocketAction

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

func (*TCPSocketAction) DeepCopyInto added in v0.37.0

func (in *TCPSocketAction) DeepCopyInto(out *TCPSocketAction)

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

func (TCPSocketAction) ToKubernetesType added in v0.37.0

func (e TCPSocketAction) ToKubernetesType() corev1.TCPSocketAction

type TLS added in v0.0.24

type TLS struct {
	// Enabled indicates whether TLS is enabled, determining if certificates should be issued and mounted to the MariaDB instance.
	// It is enabled by default.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	Enabled bool `json:"enabled"`
	// Required specifies whether TLS must be enforced for all connections.
	// User TLS requirements take precedence over this.
	// It disabled by default.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	Required *bool `json:"required,omitempty"`
	// ServerCASecretRef is a reference to a Secret containing the server certificate authority keypair. It is used to establish trust and issue server certificates.
	// One of:
	// - Secret containing both the 'ca.crt' and 'ca.key' keys. This allows you to bring your own CA to Kubernetes to issue certificates.
	// - Secret containing only the 'ca.crt' in order to establish trust. In this case, either serverCertSecretRef or serverCertIssuerRef must be provided.
	// If not provided, a self-signed CA will be provisioned to issue the server certificate.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	ServerCASecretRef *LocalObjectReference `json:"serverCASecretRef,omitempty"`
	// ServerCertSecretRef is a reference to a TLS Secret containing the server certificate.
	// It is mutually exclusive with serverCertIssuerRef.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	ServerCertSecretRef *LocalObjectReference `json:"serverCertSecretRef,omitempty"`
	// ServerCertIssuerRef is a reference to a cert-manager issuer object used to issue the server certificate. cert-manager must be installed previously in the cluster.
	// It is mutually exclusive with serverCertSecretRef.
	// By default, the Secret field 'ca.crt' provisioned by cert-manager will be added to the trust chain. A custom trust bundle may be specified via serverCASecretRef.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	ServerCertIssuerRef *cmmeta.ObjectReference `json:"serverCertIssuerRef,omitempty"`
	// ClientCASecretRef is a reference to a Secret containing the client certificate authority keypair. It is used to establish trust and issue client certificates.
	// One of:
	// - Secret containing both the 'ca.crt' and 'ca.key' keys. This allows you to bring your own CA to Kubernetes to issue certificates.
	// - Secret containing only the 'ca.crt' in order to establish trust. In this case, either clientCertSecretRef or clientCertIssuerRef fields must be provided.
	// If not provided, a self-signed CA will be provisioned to issue the client certificate.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	ClientCASecretRef *LocalObjectReference `json:"clientCASecretRef,omitempty"`
	// ClientCertSecretRef is a reference to a TLS Secret containing the client certificate.
	// It is mutually exclusive with clientCertIssuerRef.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	ClientCertSecretRef *LocalObjectReference `json:"clientCertSecretRef,omitempty"`
	// ClientCertIssuerRef is a reference to a cert-manager issuer object used to issue the client certificate. cert-manager must be installed previously in the cluster.
	// It is mutually exclusive with clientCertSecretRef.
	// By default, the Secret field 'ca.crt' provisioned by cert-manager will be added to the trust chain. A custom trust bundle may be specified via clientCASecretRef.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	ClientCertIssuerRef *cmmeta.ObjectReference `json:"clientCertIssuerRef,omitempty"`
	// GaleraSSTEnabled determines whether Galera SST connections should use TLS.
	// It disabled by default.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	GaleraSSTEnabled *bool `json:"galeraSSTEnabled,omitempty"`
}

TLS defines the PKI to be used with MariaDB.

func (*TLS) DeepCopy added in v0.0.24

func (in *TLS) DeepCopy() *TLS

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

func (*TLS) DeepCopyInto added in v0.0.24

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

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

type TLSRequirements added in v0.37.0

type TLSRequirements struct {
	// SSL indicates that the user must connect via TLS.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	SSL *bool `json:"ssl,omitempty"`
	// X509 indicates that the user must provide a valid x509 certificate to connect.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	X509 *bool `json:"x509,omitempty"`
	// Issuer indicates that the TLS certificate provided by the user must be issued by a specific issuer.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Issuer *string `json:"issuer,omitempty"`
	// Subject indicates that the TLS certificate provided by the user must have a specific subject.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Subject *string `json:"subject,omitempty"`
}

TLSRequirements specifies TLS requirements for the user to connect. See: https://mariadb.com/kb/en/securing-connections-for-client-and-server/#requiring-tls.

func (*TLSRequirements) DeepCopy added in v0.37.0

func (in *TLSRequirements) DeepCopy() *TLSRequirements

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

func (*TLSRequirements) DeepCopyInto added in v0.37.0

func (in *TLSRequirements) DeepCopyInto(out *TLSRequirements)

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

func (*TLSRequirements) Validate added in v0.37.0

func (u *TLSRequirements) Validate() error

Validate ensures that TLSRequirements provides legit options.

type TLSS3 added in v0.37.0

type TLSS3 struct {
	// Enabled is a flag to enable TLS.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	Enabled bool `json:"enabled"`
	// CASecretKeyRef is a reference to a Secret key containing a CA bundle in PEM format used to establish TLS connections with S3.
	// By default, the system trust chain will be used, but you can use this field to add more CAs to the bundle.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	CASecretKeyRef *SecretKeySelector `json:"caSecretKeyRef,omitempty"`
}

func (*TLSS3) DeepCopy added in v0.37.0

func (in *TLSS3) DeepCopy() *TLSS3

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

func (*TLSS3) DeepCopyInto added in v0.37.0

func (in *TLSS3) DeepCopyInto(out *TLSS3)

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

type TopologySpreadConstraint added in v0.0.32

type TopologySpreadConstraint struct {
	MaxSkew           int32                                `json:"maxSkew"`
	TopologyKey       string                               `json:"topologyKey"`
	WhenUnsatisfiable corev1.UnsatisfiableConstraintAction `json:"whenUnsatisfiable"`
	// +optional
	LabelSelector *metav1.LabelSelector `json:"labelSelector,omitempty"`
	// +optional
	MinDomains *int32 `json:"minDomains,omitempty"`
	// +optional
	NodeAffinityPolicy *corev1.NodeInclusionPolicy `json:"nodeAffinityPolicy,omitempty"`
	// +optional
	NodeTaintsPolicy *corev1.NodeInclusionPolicy `json:"nodeTaintsPolicy,omitempty"`
	// +optional
	MatchLabelKeys []string `json:"matchLabelKeys,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#topologyspreadconstraint-v1-core.

func (*TopologySpreadConstraint) DeepCopy added in v0.0.32

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

func (*TopologySpreadConstraint) DeepCopyInto added in v0.0.32

func (in *TopologySpreadConstraint) DeepCopyInto(out *TopologySpreadConstraint)

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

func (TopologySpreadConstraint) ToKubernetesType added in v0.0.32

type UpdateStrategy added in v0.0.29

type UpdateStrategy struct {
	// Type defines the type of updates. One of `ReplicasFirstPrimaryLast`, `RollingUpdate` or `OnDelete`. If not defined, it defaults to `ReplicasFirstPrimaryLast`.
	// +optional
	// +kubebuilder:default=ReplicasFirstPrimaryLast
	// +kubebuilder:validation:Enum=ReplicasFirstPrimaryLast;RollingUpdate;OnDelete;Never
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Type UpdateType `json:"type,omitempty"`
	// RollingUpdate defines parameters for the RollingUpdate type.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	RollingUpdate *appsv1.RollingUpdateStatefulSetStrategy `json:"rollingUpdate,omitempty"`
	// AutoUpdateDataPlane indicates whether the Galera data-plane version (agent and init containers) should be automatically updated based on the operator version. It defaults to false.
	// Updating the operator will trigger updates on all the MariaDB instances that have this flag set to true. Thus, it is recommended to progressively set this flag after having updated the operator.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	AutoUpdateDataPlane *bool `json:"autoUpdateDataPlane,omitempty"`
}

UpdateStrategy defines how a MariaDB resource is updated.

func (*UpdateStrategy) DeepCopy added in v0.0.29

func (in *UpdateStrategy) DeepCopy() *UpdateStrategy

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

func (*UpdateStrategy) DeepCopyInto added in v0.0.29

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

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

func (*UpdateStrategy) SetDefaults added in v0.0.29

func (u *UpdateStrategy) SetDefaults()

SetDefaults sets reasonable defaults.

type UpdateType added in v0.0.29

type UpdateType string

UpdateType defines the type of update for a MariaDB resource.

const (
	// ReplicasFirstPrimaryLastUpdateType indicates that the update will be applied to all replica Pods first and later on to the primary Pod.
	// The updates are applied one by one waiting until each Pod passes the readiness probe
	// i.e. the Pod gets synced and it is ready to receive traffic.
	ReplicasFirstPrimaryLastUpdateType UpdateType = "ReplicasFirstPrimaryLast"
	// RollingUpdateUpdateType indicates that the update will be applied by the StatefulSet controller using the RollingUpdate strategy.
	// This strategy is unaware of the roles that the Pod have (primary or replica) and it will
	// perform the update following the StatefulSet ordinal, from higher to lower.
	RollingUpdateUpdateType UpdateType = "RollingUpdate"
	// OnDeleteUpdateType indicates that the update will be applied by the StatefulSet controller using the OnDelete strategy.
	// The update will be done when the Pods get manually deleted by the user.
	OnDeleteUpdateType UpdateType = "OnDelete"
	// NeverUpdateType indicates that the StatefulSet will never be updated.
	// This can be used to roll out updates progressively to a fleet of instances.
	NeverUpdateType UpdateType = "Never"
)

type User

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

	Spec   UserSpec   `json:"spec,omitempty"`
	Status UserStatus `json:"status,omitempty"`
}

User is the Schema for the users API. It is used to define grants as if you were running a 'CREATE USER' statement.

func (*User) AccountName added in v0.0.20

func (u *User) AccountName() string

func (*User) CleanupPolicy added in v0.0.30

func (u *User) CleanupPolicy() *CleanupPolicy

func (*User) DeepCopy

func (in *User) DeepCopy() *User

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

func (*User) DeepCopyInto

func (in *User) DeepCopyInto(out *User)

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

func (*User) DeepCopyObject

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

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

func (*User) HostnameOrDefault added in v0.0.29

func (u *User) HostnameOrDefault() string

func (*User) IndexerFuncForFieldPath added in v0.0.29

func (m *User) IndexerFuncForFieldPath(fieldPath string) (client.IndexerFunc, error)

IndexerFuncForFieldPath returns an indexer function for a given field path.

func (*User) IsBeingDeleted

func (u *User) IsBeingDeleted() bool

func (*User) IsReady

func (u *User) IsReady() bool

func (*User) MariaDBRef

func (u *User) MariaDBRef() *MariaDBRef

func (*User) RequeueInterval added in v0.0.24

func (d *User) RequeueInterval() *metav1.Duration

func (*User) RetryInterval added in v0.0.21

func (u *User) RetryInterval() *metav1.Duration

func (*User) UsernameOrDefault added in v0.0.13

func (u *User) UsernameOrDefault() string

type UserList

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

UserList contains a list of User

func (*UserList) DeepCopy

func (in *UserList) DeepCopy() *UserList

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

func (*UserList) DeepCopyInto

func (in *UserList) DeepCopyInto(out *UserList)

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

func (*UserList) DeepCopyObject

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

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

func (*UserList) ListItems added in v0.0.29

func (m *UserList) ListItems() []client.Object

ListItems gets a copy of the Items slice.

type UserSpec

type UserSpec struct {
	// SQLTemplate defines templates to configure SQL objects.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	SQLTemplate `json:",inline"`
	// MariaDBRef is a reference to a MariaDB object.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	MariaDBRef MariaDBRef `json:"mariaDbRef" webhook:"inmutable"`
	// PasswordSecretKeyRef is a reference to the password to be used by the User.
	// If not provided, the account will be locked and the password will expire.
	// If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the password.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	PasswordSecretKeyRef *SecretKeySelector `json:"passwordSecretKeyRef,omitempty"`
	// PasswordHashSecretKeyRef is a reference to the password hash to be used by the User.
	// If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the password hash.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	PasswordHashSecretKeyRef *SecretKeySelector `json:"passwordHashSecretKeyRef,omitempty"`
	// PasswordPlugin is a reference to the password plugin and arguments to be used by the User.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	PasswordPlugin PasswordPlugin `json:"passwordPlugin,omitempty"`
	// Require specifies TLS requirements for the user to connect. See: https://mariadb.com/kb/en/securing-connections-for-client-and-server/#requiring-tls.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Require *TLSRequirements `json:"require,omitempty"`
	// MaxUserConnections defines the maximum number of simultaneous connections that the User can establish.
	// +optional
	// +kubebuilder:default=10
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"}
	MaxUserConnections int32 `json:"maxUserConnections,omitempty"`
	// Name overrides the default name provided by metadata.name.
	// +optional
	// +kubebuilder:validation:MaxLength=80
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Name string `json:"name,omitempty" webhook:"inmutable"`
	// Host related to the User.
	// +optional
	// +kubebuilder:validation:MaxLength=255
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Host string `json:"host,omitempty" webhook:"inmutable"`
}

UserSpec defines the desired state of User

func (*UserSpec) DeepCopy

func (in *UserSpec) DeepCopy() *UserSpec

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

func (*UserSpec) DeepCopyInto

func (in *UserSpec) DeepCopyInto(out *UserSpec)

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

type UserStatus

type UserStatus struct {
	// Conditions for the User object.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors={"urn:alm:descriptor:io.kubernetes.conditions"}
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

UserStatus defines the observed state of User

func (*UserStatus) DeepCopy

func (in *UserStatus) DeepCopy() *UserStatus

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

func (*UserStatus) DeepCopyInto

func (in *UserStatus) DeepCopyInto(out *UserStatus)

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

func (*UserStatus) SetCondition

func (u *UserStatus) SetCondition(condition metav1.Condition)

type Volume added in v0.0.32

type Volume struct {
	Name         string `json:"name"`
	VolumeSource `json:",inline"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#volume-v1-core.

func (*Volume) DeepCopy added in v0.0.32

func (in *Volume) DeepCopy() *Volume

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

func (*Volume) DeepCopyInto added in v0.0.32

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

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

func (Volume) ToKubernetesType added in v0.0.32

func (v Volume) ToKubernetesType() corev1.Volume

type VolumeClaimTemplate added in v0.0.20

type VolumeClaimTemplate struct {
	// PersistentVolumeClaimSpec is the specification of a PVC.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	PersistentVolumeClaimSpec `json:",inline"`
	// Metadata to be added to the PVC metadata.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	Metadata *Metadata `json:"metadata,omitempty"`
}

VolumeClaimTemplate defines a template to customize PVC objects.

func (*VolumeClaimTemplate) DeepCopy added in v0.0.20

func (in *VolumeClaimTemplate) DeepCopy() *VolumeClaimTemplate

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

func (*VolumeClaimTemplate) DeepCopyInto added in v0.0.20

func (in *VolumeClaimTemplate) DeepCopyInto(out *VolumeClaimTemplate)

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

type VolumeMount added in v0.0.32

type VolumeMount struct {
	// This must match the Name of a Volume.
	Name string `json:"name"`
	// +optional
	ReadOnly  bool   `json:"readOnly,omitempty"`
	MountPath string `json:"mountPath"`
	// +optional
	SubPath string `json:"subPath,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#volumemount-v1-core.

func (*VolumeMount) DeepCopy added in v0.0.32

func (in *VolumeMount) DeepCopy() *VolumeMount

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

func (*VolumeMount) DeepCopyInto added in v0.0.32

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

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

func (VolumeMount) ToKubernetesType added in v0.0.32

func (v VolumeMount) ToKubernetesType() corev1.VolumeMount

type VolumeSource added in v0.0.32

type VolumeSource struct {
	StorageVolumeSource `json:",inline"`
	// +optional
	Secret *SecretVolumeSource `json:"secret,omitempty"`
	// +optional
	ConfigMap *ConfigMapVolumeSource `json:"configMap,omitempty"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#volume-v1-core.

func (*VolumeSource) DeepCopy added in v0.0.32

func (in *VolumeSource) DeepCopy() *VolumeSource

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

func (*VolumeSource) DeepCopyInto added in v0.0.32

func (in *VolumeSource) DeepCopyInto(out *VolumeSource)

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

func (VolumeSource) ToKubernetesType added in v0.0.32

func (v VolumeSource) ToKubernetesType() corev1.VolumeSource

type WaitPoint added in v0.0.12

type WaitPoint string

WaitPoint defines whether the transaction should wait for ACK before committing to the storage engine. More info: https://mariadb.com/kb/en/semisynchronous-replication/#rpl_semi_sync_master_wait_point.

const (
	// WaitPointAfterSync indicates that the primary waits for the replica ACK before committing the transaction to the storage engine.
	// This is the default WaitPoint. It trades off performance for consistency.
	WaitPointAfterSync WaitPoint = "AfterSync"
	// WaitPointAfterCommit indicates that the primary commits the transaction to the storage engine and waits for the replica ACK afterwards.
	// It trades off consistency for performance.
	WaitPointAfterCommit WaitPoint = "AfterCommit"
)

func (WaitPoint) MariaDBFormat added in v0.0.12

func (w WaitPoint) MariaDBFormat() (string, error)

MariaDBFormat formats the WaitPoint so it can be used in MariaDB config files.

func (WaitPoint) Validate added in v0.0.12

func (w WaitPoint) Validate() error

Validate returns an error if the WaitPoint is not valid.

type WeightedPodAffinityTerm added in v0.0.32

type WeightedPodAffinityTerm struct {
	Weight          int32           `json:"weight"`
	PodAffinityTerm PodAffinityTerm `json:"podAffinityTerm"`
}

Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#weightedpodaffinityterm-v1-core.

func (*WeightedPodAffinityTerm) DeepCopy added in v0.0.32

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

func (*WeightedPodAffinityTerm) DeepCopyInto added in v0.0.32

func (in *WeightedPodAffinityTerm) DeepCopyInto(out *WeightedPodAffinityTerm)

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

func (WeightedPodAffinityTerm) ToKubernetesType added in v0.0.32

Jump to

Keyboard shortcuts

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

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy