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
- Variables
- func IndexConnection(ctx context.Context, mgr manager.Manager, builder *ctrlbuilder.Builder, ...) error
- func IndexGrant(ctx context.Context, mgr manager.Manager, builder *ctrlbuilder.Builder, ...) error
- func IndexMariaDB(ctx context.Context, mgr manager.Manager, builder *ctrlbuilder.Builder, ...) error
- func IndexMaxScale(ctx context.Context, mgr manager.Manager, builder *ctrlbuilder.Builder, ...) error
- func IndexUser(ctx context.Context, mgr manager.Manager, builder *ctrlbuilder.Builder, ...) error
- func InternalServiceName(mariadbName string) string
- func IsValidPhysicalBackup(name string) bool
- func ParsePhysicalBackupTime(name string) (time.Time, error)
- type Affinity
- type AffinityConfig
- type Backup
- func (in *Backup) DeepCopy() *Backup
- func (in *Backup) DeepCopyInto(out *Backup)
- func (in *Backup) DeepCopyObject() runtime.Object
- func (b *Backup) IsComplete() bool
- func (b *Backup) SetDefaults(mariadb *MariaDB)
- func (b *Backup) StagingPVCKey() types.NamespacedName
- func (b *Backup) StoragePVCKey() types.NamespacedName
- func (b *Backup) Validate() error
- func (b *Backup) Volume() (StorageVolumeSource, error)
- type BackupContentType
- type BackupList
- type BackupSpec
- type BackupStagingStorage
- type BackupStatus
- type BackupStorage
- type BasicAuth
- type BootstrapFrom
- func (in *BootstrapFrom) DeepCopy() *BootstrapFrom
- func (in *BootstrapFrom) DeepCopyInto(out *BootstrapFrom)
- func (b *BootstrapFrom) IsDefaulted() bool
- func (b *BootstrapFrom) RestoreSource() (*RestoreSource, error)
- func (b *BootstrapFrom) SetDefaults(mariadb *MariaDB)
- func (b *BootstrapFrom) SetDefaultsWithPhysicalBackup(physicalBackup *PhysicalBackup) error
- func (b *BootstrapFrom) SetDefaultsWithVolumeSnapshotRef(ref *LocalObjectReference)
- func (b *BootstrapFrom) TargetRecoveryTimeOrDefault() time.Time
- func (b *BootstrapFrom) Validate() error
- type CSIVolumeSource
- type CertificateStatus
- type CleanupPolicy
- type CompressAlgorithm
- type ConfigMapKeySelector
- type ConfigMapVolumeSource
- type Connection
- func (in *Connection) DeepCopy() *Connection
- func (in *Connection) DeepCopyInto(out *Connection)
- func (in *Connection) DeepCopyObject() runtime.Object
- func (c *Connection) IndexerFuncForFieldPath(fieldPath string) (client.IndexerFunc, error)
- func (c *Connection) IsReady() bool
- func (c *Connection) SecretKey() string
- func (c *Connection) SecretName() string
- func (c *Connection) SetDefaults(refs *ConnectionRefs) error
- type ConnectionList
- type ConnectionRefs
- type ConnectionSpec
- type ConnectionStatus
- type ConnectionTemplate
- type Container
- type ContainerTemplate
- type CooperativeMonitoring
- type CronJobTemplate
- type Database
- func (d *Database) CleanupPolicy() *CleanupPolicy
- func (d *Database) DatabaseNameOrDefault() string
- func (in *Database) DeepCopy() *Database
- func (in *Database) DeepCopyInto(out *Database)
- func (in *Database) DeepCopyObject() runtime.Object
- func (d *Database) IsBeingDeleted() bool
- func (d *Database) IsReady() bool
- func (d *Database) MariaDBRef() *MariaDBRef
- func (d *Database) RequeueInterval() *metav1.Duration
- func (d *Database) RetryInterval() *metav1.Duration
- type DatabaseList
- type DatabaseSpec
- type DatabaseStatus
- type EmptyDirVolumeSource
- type EnvFromSource
- type EnvVar
- type EnvVarSource
- type ExecAction
- type Exporter
- type Galera
- type GaleraAgent
- type GaleraBootstrapStatus
- type GaleraConfig
- type GaleraInit
- type GaleraInitJob
- type GaleraRecovery
- func (in *GaleraRecovery) DeepCopy() *GaleraRecovery
- func (in *GaleraRecovery) DeepCopyInto(out *GaleraRecovery)
- func (g *GaleraRecovery) HasMinClusterSize(currentSize int, mdb *MariaDB) (bool, error)
- func (g *GaleraRecovery) SetDefaults(mdb *MariaDB)
- func (g *GaleraRecovery) Validate(mdb *MariaDB) error
- type GaleraRecoveryJob
- type GaleraRecoveryStatus
- type GaleraSpec
- type GeneratedSecretKeyRef
- type Grant
- func (g *Grant) AccountName() string
- func (g *Grant) CleanupPolicy() *CleanupPolicy
- func (in *Grant) DeepCopy() *Grant
- func (in *Grant) DeepCopyInto(out *Grant)
- func (in *Grant) DeepCopyObject() runtime.Object
- func (g *Grant) HostnameOrDefault() string
- func (g *Grant) IndexerFuncForFieldPath(fieldPath string) (client.IndexerFunc, error)
- func (g *Grant) IsBeingDeleted() bool
- func (g *Grant) IsReady() bool
- func (g *Grant) MariaDBRef() *MariaDBRef
- func (g *Grant) RequeueInterval() *metav1.Duration
- func (g *Grant) RetryInterval() *metav1.Duration
- type GrantList
- type GrantSpec
- type GrantStatus
- type Gtid
- type HTTPGetAction
- type HealthCheck
- type HostPathVolumeSource
- type Job
- type JobContainerTemplate
- type JobPodTemplate
- func (in *JobPodTemplate) DeepCopy() *JobPodTemplate
- func (in *JobPodTemplate) DeepCopyInto(out *JobPodTemplate)
- func (j *JobPodTemplate) FromPodTemplate(ptpl *PodTemplate)
- func (j *JobPodTemplate) ServiceAccountKey(objMeta metav1.ObjectMeta) types.NamespacedName
- func (j *JobPodTemplate) SetDefaults(objMeta, mariadbObjMeta metav1.ObjectMeta)
- type KubernetesAuth
- type LabelSelector
- type LabelSelectorRequirement
- type LocalObjectReference
- type MariaDB
- func (m *MariaDB) AgentAuthSecretKeyRef() GeneratedSecretKeyRef
- func (m *MariaDB) AreMetricsEnabled() bool
- func (in *MariaDB) DeepCopy() *MariaDB
- func (in *MariaDB) DeepCopyInto(out *MariaDB)
- func (in *MariaDB) DeepCopyObject() runtime.Object
- func (m *MariaDB) DefaultConfigMapKeyRef() ConfigMapKeySelector
- func (m *MariaDB) GetAutomaticFailoverDelay() time.Duration
- func (m *MariaDB) HasConfiguredReplica() bool
- func (m *MariaDB) HasGaleraConfiguredCondition() bool
- func (m *MariaDB) HasGaleraNotReadyCondition() bool
- func (m *MariaDB) HasGaleraReadyCondition() bool
- func (m *MariaDB) HasPendingUpdate() bool
- func (m *MariaDB) HasRestoredBackup() bool
- func (m *MariaDB) IndexerFuncForFieldPath(fieldPath string) (client.IndexerFunc, error)
- func (m *MariaDB) InitError() error
- func (m *MariaDB) InitKey() types.NamespacedName
- func (m *MariaDB) InternalServiceKey() types.NamespacedName
- func (m *MariaDB) IsConfiguredReplica(podName string) bool
- func (m *MariaDB) IsEphemeralStorageEnabled() bool
- func (m *MariaDB) IsGaleraEnabled() bool
- func (m *MariaDB) IsGaleraInitialized() bool
- func (m *MariaDB) IsGaleraInitializing() bool
- func (m *MariaDB) IsHAEnabled() bool
- func (m *MariaDB) IsInitialUserEnabled() bool
- func (m *MariaDB) IsInitialized() bool
- func (m *MariaDB) IsInitializing() bool
- func (m *MariaDB) IsMaxScaleEnabled() bool
- func (m *MariaDB) IsReady() bool
- func (m *MariaDB) IsResizingStorage() bool
- func (m *MariaDB) IsRestoringBackup() bool
- func (m *MariaDB) IsRootPasswordDefined() bool
- func (m *MariaDB) IsRootPasswordEmpty() bool
- func (m *MariaDB) IsSuspended() bool
- func (m *MariaDB) IsSwitchingPrimary() bool
- func (m *MariaDB) IsTLSEnabled() bool
- func (m *MariaDB) IsTLSForGaleraSSTEnabled() bool
- func (m *MariaDB) IsTLSRequired() bool
- func (m *MariaDB) IsUpdating() bool
- func (m *MariaDB) IsWaitingForStorageResize() bool
- func (m *MariaDB) MariadbDatabaseKey() types.NamespacedName
- func (m *MariaDB) MariadbGrantKey() types.NamespacedName
- func (m *MariaDB) MariadbSysGrantKey() types.NamespacedName
- func (m *MariaDB) MariadbSysUserKey() types.NamespacedName
- func (m *MariaDB) MariadbUserKey() types.NamespacedName
- func (m *MariaDB) MaxScaleKey() types.NamespacedName
- func (m *MariaDB) MetricsConfigSecretKeyRef() GeneratedSecretKeyRef
- func (m *MariaDB) MetricsKey() types.NamespacedName
- func (m *MariaDB) MetricsPasswordSecretKeyRef() GeneratedSecretKeyRef
- func (m *MariaDB) MyCnfConfigMapKeyRef() ConfigMapKeySelector
- func (m *MariaDB) PVCKey(name string, index int) types.NamespacedName
- func (m *MariaDB) PasswordSecretKeyRef() GeneratedSecretKeyRef
- func (m *MariaDB) PhysicalBackupInitJobKey(podIndex int) types.NamespacedName
- func (m *MariaDB) PhysicalBackupStagingPVCKey() types.NamespacedName
- func (m *MariaDB) PrimaryConnectioneKey() types.NamespacedName
- func (m *MariaDB) PrimaryServiceKey() types.NamespacedName
- func (m *MariaDB) RecoveryJobKey(podName string) types.NamespacedName
- func (m *MariaDB) ReplConfigMapKeyRef() ConfigMapKeySelector
- func (m *MariaDB) Replication() Replication
- func (m *MariaDB) RestoreKey() types.NamespacedName
- func (m *MariaDB) RootPasswordSecretKeyRef() GeneratedSecretKeyRef
- func (m *MariaDB) SecondaryConnectioneKey() types.NamespacedName
- func (m *MariaDB) SecondaryServiceKey() types.NamespacedName
- func (m *MariaDB) SetDefaults(env *environment.OperatorEnv) error
- func (m *MariaDB) TLSCABundleSecretKeyRef() SecretKeySelector
- func (m *MariaDB) TLSClientCASecretKey() types.NamespacedName
- func (m *MariaDB) TLSClientCertSecretKey() types.NamespacedName
- func (m *MariaDB) TLSClientNames() []string
- func (m *MariaDB) TLSConfigMapKeyRef() ConfigMapKeySelector
- func (m *MariaDB) TLSServerCASecretKey() types.NamespacedName
- func (m *MariaDB) TLSServerCertSecretKey() types.NamespacedName
- func (m *MariaDB) TLSServerDNSNames() []string
- type MariaDBList
- type MariaDBMaxScaleSpec
- type MariaDBRef
- type MariaDBSpec
- type MariaDBStatus
- type MariaDBTLSStatus
- type MariadbMetrics
- type MaxScale
- func (m *MaxScale) APIUrl() string
- func (m *MaxScale) AdminPasswordSecretKeyRef() GeneratedSecretKeyRef
- func (m *MaxScale) AreMetricsEnabled() bool
- func (m *MaxScale) AuthClientPasswordSecretKeyRef() GeneratedSecretKeyRef
- func (m *MaxScale) AuthClientUserKey() LocalObjectReference
- func (m *MaxScale) AuthMonitorPasswordSecretKeyRef() GeneratedSecretKeyRef
- func (m *MaxScale) AuthMonitorUserKey() LocalObjectReference
- func (m *MaxScale) AuthServerPasswordSecretKeyRef() GeneratedSecretKeyRef
- func (m *MaxScale) AuthServerUserKey() LocalObjectReference
- func (m *MaxScale) AuthSyncPasswordSecretKeyRef() GeneratedSecretKeyRef
- func (m *MaxScale) AuthSyncUserKey() LocalObjectReference
- func (m *MaxScale) ConfigSecretKeyRef() GeneratedSecretKeyRef
- func (m *MaxScale) ConnectionKey() types.NamespacedName
- func (in *MaxScale) DeepCopy() *MaxScale
- func (in *MaxScale) DeepCopyInto(out *MaxScale)
- func (in *MaxScale) DeepCopyObject() runtime.Object
- func (m *MaxScale) DefaultPort() (*int32, error)
- func (m *MaxScale) GuiServiceKey() types.NamespacedName
- func (m *MaxScale) IndexerFuncForFieldPath(fieldPath string) (client.IndexerFunc, error)
- func (m *MaxScale) InternalServiceKey() types.NamespacedName
- func (m *MaxScale) IsBeingDeleted() bool
- func (m *MaxScale) IsHAEnabled() bool
- func (m *MaxScale) IsReady() bool
- func (m *MaxScale) IsReplicationSSLEnabled() bool
- func (m *MaxScale) IsSuspended() bool
- func (m *MaxScale) IsTLSEnabled() bool
- func (m *MaxScale) ListenerIDs() []string
- func (m *MaxScale) ListenerIndex() ds.Index[MaxScaleListener]
- func (m *MaxScale) Listeners() []MaxScaleListener
- func (m *MaxScale) MetricsConfigSecretKeyRef() GeneratedSecretKeyRef
- func (m *MaxScale) MetricsKey() types.NamespacedName
- func (m *MaxScale) MetricsPasswordSecretKeyRef() GeneratedSecretKeyRef
- func (m *MaxScale) PodAPIUrl(podIndex int) string
- func (m *MaxScale) ServerIDs() []string
- func (m *MaxScale) ServerIndex() ds.Index[MaxScaleServer]
- func (m *MaxScale) ServiceForListener(listener string) (string, error)
- func (m *MaxScale) ServiceIDs() []string
- func (m *MaxScale) ServiceIndex() ds.Index[MaxScaleService]
- func (m *MaxScale) SetDefaults(env *environment.OperatorEnv, mariadb *MariaDB)
- func (m *MaxScale) ShouldVerifyPeerCertificate() bool
- func (m *MaxScale) ShouldVerifyPeerHost() bool
- func (m *MaxScale) TLSAdminCASecretKey() types.NamespacedName
- func (m *MaxScale) TLSAdminCertSecretKey() types.NamespacedName
- func (m *MaxScale) TLSAdminDNSNames() []string
- func (m *MaxScale) TLSCABundleSecretKeyRef() SecretKeySelector
- func (m *MaxScale) TLSListenerCASecretKey() types.NamespacedName
- func (m *MaxScale) TLSListenerCertSecretKey() types.NamespacedName
- func (m *MaxScale) TLSListenerDNSNames() []string
- func (m *MaxScale) TLSServerCASecretKey() types.NamespacedName
- func (m *MaxScale) TLSServerCertSecretKey() types.NamespacedName
- type MaxScaleAdmin
- type MaxScaleAuth
- type MaxScaleConfig
- type MaxScaleConfigSync
- type MaxScaleConfigSyncStatus
- type MaxScaleList
- type MaxScaleListener
- type MaxScaleMetrics
- type MaxScaleMonitor
- type MaxScalePodTemplate
- type MaxScaleResourceStatus
- type MaxScaleServer
- type MaxScaleServerStatus
- type MaxScaleService
- type MaxScaleSpec
- type MaxScaleStatus
- type MaxScaleTLS
- type MaxScaleTLSStatus
- type Metadata
- type MonitorModule
- type NFSVolumeSource
- type NodeAffinity
- type NodeSelector
- type NodeSelectorRequirement
- type NodeSelectorTerm
- type ObjectFieldSelector
- type ObjectReference
- type PasswordPlugin
- type PersistentVolumeClaimSpec
- type PersistentVolumeClaimVolumeSource
- type PhysicalBackup
- func (in *PhysicalBackup) DeepCopy() *PhysicalBackup
- func (in *PhysicalBackup) DeepCopyInto(out *PhysicalBackup)
- func (in *PhysicalBackup) DeepCopyObject() runtime.Object
- func (b *PhysicalBackup) IsComplete() bool
- func (b *PhysicalBackup) SetDefaults(mariadb *MariaDB)
- func (b *PhysicalBackup) StagingPVCKey() types.NamespacedName
- func (b *PhysicalBackup) StoragePVCKey() types.NamespacedName
- func (b *PhysicalBackup) Validate() error
- func (b *PhysicalBackup) Volume() (StorageVolumeSource, error)
- type PhysicalBackupList
- type PhysicalBackupPodTemplate
- func (in *PhysicalBackupPodTemplate) DeepCopy() *PhysicalBackupPodTemplate
- func (in *PhysicalBackupPodTemplate) DeepCopyInto(out *PhysicalBackupPodTemplate)
- func (p *PhysicalBackupPodTemplate) ServiceAccountKey(objMeta metav1.ObjectMeta) types.NamespacedName
- func (p *PhysicalBackupPodTemplate) SetDefaults(objMeta, mariadbObjMeta metav1.ObjectMeta)
- type PhysicalBackupSchedule
- type PhysicalBackupSpec
- type PhysicalBackupStatus
- type PhysicalBackupStorage
- type PhysicalBackupVolumeSnapshot
- type PodAffinityTerm
- type PodAntiAffinity
- type PodDisruptionBudget
- type PodSecurityContext
- type PodTemplate
- type PreferredSchedulingTerm
- type PrimaryGalera
- type PrimaryReplication
- type Probe
- type ProbeHandler
- type ReplicaReplication
- type Replication
- type ReplicationSpec
- type ReplicationState
- type ReplicationStatus
- type ResourceRequirements
- type Restore
- type RestoreList
- type RestoreSource
- func (in *RestoreSource) DeepCopy() *RestoreSource
- func (in *RestoreSource) DeepCopyInto(out *RestoreSource)
- func (r *RestoreSource) IsDefaulted() bool
- func (r *RestoreSource) SetDefaults(restore *Restore)
- func (r *RestoreSource) SetDefaultsWithBackup(backup *Backup) error
- func (r *RestoreSource) TargetRecoveryTimeOrDefault() time.Time
- func (r *RestoreSource) Validate() error
- type RestoreSpec
- type RestoreStatus
- type S3
- type SQLTemplate
- type SST
- type Schedule
- type SecretKeySelector
- type SecretTemplate
- type SecretVolumeSource
- type SecurityContext
- type ServiceMonitor
- type ServicePort
- type ServiceRouter
- type ServiceTemplate
- type SqlJob
- type SqlJobList
- type SqlJobSpec
- type SqlJobStatus
- type Storage
- type StorageVolumeSource
- type SuspendTemplate
- type TCPSocketAction
- type TLS
- type TLSRequirements
- type TLSS3
- type TopologySpreadConstraint
- type TypedLocalObjectReference
- type UpdateStrategy
- type UpdateType
- type User
- func (u *User) AccountName() string
- func (u *User) CleanupPolicy() *CleanupPolicy
- func (in *User) DeepCopy() *User
- func (in *User) DeepCopyInto(out *User)
- func (in *User) DeepCopyObject() runtime.Object
- func (u *User) HostnameOrDefault() string
- func (u *User) IndexerFuncForFieldPath(fieldPath string) (client.IndexerFunc, error)
- func (u *User) IsBeingDeleted() bool
- func (u *User) IsReady() bool
- func (u *User) MariaDBRef() *MariaDBRef
- func (u *User) RequeueInterval() *metav1.Duration
- func (u *User) RetryInterval() *metav1.Duration
- func (u *User) UsernameOrDefault() string
- type UserList
- type UserSpec
- type UserStatus
- type Volume
- type VolumeClaimTemplate
- type VolumeMount
- type VolumeSource
- type WaitPoint
- type WeightedPodAffinityTerm
Constants ¶
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" // ConditionTypeInitialized indicates that the cluster has been successfully initialized. ConditionTypeInitialized string = "Initialized" ConditionReasonStatefulSetNotReady string = "StatefulSetNotReady" ConditionReasonStatefulSetReady string = "StatefulSetReady" ConditionReasonRestoreBackup string = "RestoreBackup" ConditionReasonRestorePhysicalBackup string = "RestorePhysicalBackup" 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" ConditionReasonInitError string = "InitError" 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" ConditionReasonJobNotComplete string = "JobNotComplete" ConditionReasonSnapshotComplete string = "SnapshotComplete" ConditionReasonSnapshotSuspended string = "SnapshotSuspended" ConditionReasonSnapshotFailed string = "SnapshotFailed" ConditionReasonSnapshotInProgress string = "SnapshotInProgress" ConditionReasonSnapshotNotComplete string = "SnapshotNotComplete" ConditionReasonCronJobScheduled string = "CronJobScheduled" ConditionReasonCronJobFailed string = "CronJobScheduled" ConditionReasonCronJobRunning string = "CronJobRunning" ConditionReasonCronJobSuccess string = "CronJobSuccess" ConditionReasonConnectionFailed string = "ConnectionFailed" ConditionReasonCreated string = "Created" ConditionReasonHealthy string = "Healthy" ConditionReasonFailed string = "Failed" )
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" // ReasonJobScheduled indicates that a Job has been scheduled. ReasonJobScheduled = "JobScheduled" // ReasonVolumeSnapshotCreated indicates that a VolumeSnapshot has been scheduled. ReasonVolumeSnapshotCreated = "VolumeSnapshotCreated" // ReasonMariaDBNotReady indicates that the MariaDB resource is not ready. ReasonMariaDBNotReady = "MariaDBNotReady" // ReasonMariaDBInitError indicates that an error has occurred during the MariaDB instance initialization. ReasonMariaDBInitError = "MariaDBInitError" )
const ( // BackupKind is the kind name of Backup BackupKind = "Backup" // PhysicalBackupKind is the kind name of PhysicalBackup PhysicalBackupKind = "PhysicalBackup" )
Variables ¶
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 )
var ( // DefaultPhysicalBackupMaxRetention defines the default maximum PhysicalBackup retetion policy. DefaultPhysicalBackupMaxRetention = metav1.Duration{Duration: 30 * 24 * time.Hour} // DefaultPhysicalBackupTimeout defines the default maximum duration of a PhysicalBackup job or snapshot. DefaultPhysicalBackupTimeout = metav1.Duration{Duration: 1 * time.Hour} )
var CronParser = cron.NewParser( cron.Minute | cron.Hour | cron.Dom | cron.Month | cron.Dow, )
var ( // DefaultReplicationSpec provides sensible defaults for the ReplicationSpec. DefaultReplicationSpec = ReplicationSpec{ Primary: &PrimaryReplication{ PodIndex: ptr.To(0), AutomaticFailover: ptr.To(true), AutomaticFailoverDelay: ptr.To(metav1.Duration{}), }, 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(1), ProbesEnabled: ptr.To(false), } )
Functions ¶
func IndexConnection ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
InternalServiceName defines the name for the internal headless Service
func IsValidPhysicalBackup ¶
IsValidPhysicalBackup determines whether a PhysicalBackup name is valid
Types ¶
type Affinity ¶
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.33/#affinity-v1-core.
func (*Affinity) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Affinity.
func (*Affinity) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (Affinity) ToKubernetesType ¶
type AffinityConfig ¶
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 ¶
func (in *AffinityConfig) DeepCopy() *AffinityConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AffinityConfig.
func (*AffinityConfig) DeepCopyInto ¶
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 ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Backup.
func (*Backup) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Backup) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Backup) IsComplete ¶
func (*Backup) SetDefaults ¶
func (*Backup) StagingPVCKey ¶
func (b *Backup) StagingPVCKey() types.NamespacedName
func (*Backup) StoragePVCKey ¶
func (b *Backup) StoragePVCKey() types.NamespacedName
func (*Backup) Volume ¶
func (b *Backup) Volume() (StorageVolumeSource, error)
type BackupContentType ¶
type BackupContentType string
BackupContentType defines the backup content type.
const ( // BackupContentTypeLogical represents a logical backup created using mariadb-dump. BackupContentTypeLogical BackupContentType = "Logical" // BackupContentTypePhysical represents a physical backup created using mariadb-backup. BackupContentTypePhysical BackupContentType = "Physical" )
func (BackupContentType) Validate ¶
func (b BackupContentType) Validate() 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 ¶
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 ¶
func (in *BackupStagingStorage) DeepCopy() *BackupStagingStorage
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupStagingStorage.
func (*BackupStagingStorage) DeepCopyInto ¶
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 ¶
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 ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BasicAuth.
func (*BasicAuth) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BasicAuth) SetDefaults ¶
SetDefaults set reasonable defaults
type BootstrapFrom ¶
type BootstrapFrom struct { // BackupRef is reference to a backup object. If the Kind is not specified, a logical Backup is assumed. // This field takes precedence over S3 and Volume sources. // +optional // +operator-sdk:csv:customresourcedefinitions:type=spec BackupRef *TypedLocalObjectReference `json:"backupRef,omitempty" webhook:"inmutableinit"` // VolumeSnapshotRef is a reference to a VolumeSnapshot object. // This field takes precedence over S3 and Volume sources. // +optional // +operator-sdk:csv:customresourcedefinitions:type=spec VolumeSnapshotRef *LocalObjectReference `json:"volumeSnapshotRef,omitempty" webhook:"inmutableinit"` // BackupContentType is the backup content type available in the source to bootstrap from. // It is inferred based on the BackupRef and VolumeSnapshotRef fields. If inference is not possible, it defaults to Logical. // Set this field explicitly when using physical backups from S3 or Volume sources. // +optional // +kubebuilder:validation:Enum=Logical;Physical // +operator-sdk:csv:customresourcedefinitions:type=spec BackupContentType BackupContentType `json:"backupContentType,omitempty" webhook:"inmutableinit"` // S3 defines the configuration to restore backups from a S3 compatible storage. // This field takes precedence over the Volume source. // +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 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"` // RestoreJob defines additional properties for the Job used to perform the restoration. // +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 ¶
func (in *BootstrapFrom) DeepCopy() *BootstrapFrom
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BootstrapFrom.
func (*BootstrapFrom) DeepCopyInto ¶
func (in *BootstrapFrom) DeepCopyInto(out *BootstrapFrom)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BootstrapFrom) IsDefaulted ¶
func (b *BootstrapFrom) IsDefaulted() bool
func (*BootstrapFrom) RestoreSource ¶
func (b *BootstrapFrom) RestoreSource() (*RestoreSource, error)
func (*BootstrapFrom) SetDefaults ¶
func (b *BootstrapFrom) SetDefaults(mariadb *MariaDB)
func (*BootstrapFrom) SetDefaultsWithPhysicalBackup ¶
func (b *BootstrapFrom) SetDefaultsWithPhysicalBackup(physicalBackup *PhysicalBackup) error
func (*BootstrapFrom) SetDefaultsWithVolumeSnapshotRef ¶
func (b *BootstrapFrom) SetDefaultsWithVolumeSnapshotRef(ref *LocalObjectReference)
func (*BootstrapFrom) TargetRecoveryTimeOrDefault ¶
func (b *BootstrapFrom) TargetRecoveryTimeOrDefault() time.Time
func (*BootstrapFrom) Validate ¶
func (b *BootstrapFrom) Validate() error
type CSIVolumeSource ¶
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.33/#csivolumesource-v1-core.
func (*CSIVolumeSource) DeepCopy ¶
func (in *CSIVolumeSource) DeepCopy() *CSIVolumeSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIVolumeSource.
func (*CSIVolumeSource) DeepCopyInto ¶
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 ¶
func (v CSIVolumeSource) ToKubernetesType() corev1.CSIVolumeSource
type CertificateStatus ¶
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 ¶
func (in *CertificateStatus) DeepCopy() *CertificateStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateStatus.
func (*CertificateStatus) DeepCopyInto ¶
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 ¶
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 ¶
func (c CleanupPolicy) Validate() error
Validate returns an error if the CleanupPolicy is not valid.
type CompressAlgorithm ¶
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 CompressionFromExtension ¶
func CompressionFromExtension(ext string) (CompressAlgorithm, error)
func (CompressAlgorithm) Extension ¶
func (c CompressAlgorithm) Extension() (string, error)
func (CompressAlgorithm) Validate ¶
func (c CompressAlgorithm) Validate() error
type ConfigMapKeySelector ¶
type ConfigMapKeySelector struct { LocalObjectReference `json:",inline"` Key string `json:"key"` }
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.33/#configmapkeyselector-v1-core. +structType=atomic
func (*ConfigMapKeySelector) DeepCopy ¶
func (in *ConfigMapKeySelector) DeepCopy() *ConfigMapKeySelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapKeySelector.
func (*ConfigMapKeySelector) DeepCopyInto ¶
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 ¶
func (s ConfigMapKeySelector) ToKubernetesType() corev1.ConfigMapKeySelector
type ConfigMapVolumeSource ¶
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.33/#configmapvolumesource-v1-core.
func (*ConfigMapVolumeSource) DeepCopy ¶
func (in *ConfigMapVolumeSource) DeepCopy() *ConfigMapVolumeSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapVolumeSource.
func (*ConfigMapVolumeSource) DeepCopyInto ¶
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 ¶
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 ¶
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 ¶
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 ¶
func (m *ConnectionList) ListItems() []client.Object
ListItems gets a copy of the Items slice.
type ConnectionRefs ¶
ConnectionRefs contains the resolved references of a Connection.
func (*ConnectionRefs) DeepCopy ¶
func (in *ConnectionRefs) DeepCopy() *ConnectionRefs
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConnectionRefs.
func (*ConnectionRefs) DeepCopyInto ¶
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 ¶
func (r *ConnectionRefs) Host(c *Connection) (*string, error)
Host returns the host address to connect to.
func (*ConnectionRefs) Port ¶
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 ¶
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"` // Resources 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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Container.
func (*Container) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ContainerTemplate ¶
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"` // Resources 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 ¶
func (in *ContainerTemplate) DeepCopy() *ContainerTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerTemplate.
func (*ContainerTemplate) DeepCopyInto ¶
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 ¶
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 ¶
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 ¶
func (in *CronJobTemplate) DeepCopy() *CronJobTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJobTemplate.
func (*CronJobTemplate) DeepCopyInto ¶
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 ¶
func (d *Database) CleanupPolicy() *CleanupPolicy
func (*Database) DatabaseNameOrDefault ¶
func (*Database) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Database.
func (*Database) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Database) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Database) IsBeingDeleted ¶
func (*Database) MariaDBRef ¶
func (d *Database) MariaDBRef() *MariaDBRef
func (*Database) RequeueInterval ¶
func (*Database) RetryInterval ¶
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 ¶
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.33/#emptydirvolumesource-v1-core.
func (*EmptyDirVolumeSource) DeepCopy ¶
func (in *EmptyDirVolumeSource) DeepCopy() *EmptyDirVolumeSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EmptyDirVolumeSource.
func (*EmptyDirVolumeSource) DeepCopyInto ¶
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 ¶
func (v EmptyDirVolumeSource) ToKubernetesType() corev1.EmptyDirVolumeSource
type EnvFromSource ¶
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.33/#envfromsource-v1-core.
func (*EnvFromSource) DeepCopy ¶
func (in *EnvFromSource) DeepCopy() *EnvFromSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvFromSource.
func (*EnvFromSource) DeepCopyInto ¶
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 ¶
func (e EnvFromSource) ToKubernetesType() corev1.EnvFromSource
type EnvVar ¶
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.33/#envvarsource-v1-core.
func (*EnvVar) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvVar.
func (*EnvVar) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (EnvVar) ToKubernetesType ¶
type EnvVarSource ¶
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.33/#envvarsource-v1-core.
func (*EnvVarSource) DeepCopy ¶
func (in *EnvVarSource) DeepCopy() *EnvVarSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvVarSource.
func (*EnvVarSource) DeepCopyInto ¶
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 ¶
func (e EnvVarSource) ToKubernetesType() corev1.EnvVarSource
type ExecAction ¶
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.33/#execaction-v1-core.
func (*ExecAction) DeepCopy ¶
func (in *ExecAction) DeepCopy() *ExecAction
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecAction.
func (*ExecAction) DeepCopyInto ¶
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 ¶
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"` // Resources 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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Exporter.
func (*Exporter) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Galera ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Galera.
func (*Galera) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Galera) SetDefaults ¶
func (g *Galera) SetDefaults(mdb *MariaDB, env *environment.OperatorEnv) error
SetDefaults sets reasonable defaults.
type GaleraAgent ¶
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 ¶
func (in *GaleraAgent) DeepCopy() *GaleraAgent
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GaleraAgent.
func (*GaleraAgent) DeepCopyInto ¶
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 ¶
func (r *GaleraAgent) SetDefaults(mariadb *MariaDB, env *environment.OperatorEnv) error
SetDefaults sets reasonable defaults.
func (*GaleraAgent) Validate ¶
func (r *GaleraAgent) Validate() error
Validate determines if a Galera Agent object is valid.
type GaleraBootstrapStatus ¶
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 ¶
func (in *GaleraBootstrapStatus) DeepCopy() *GaleraBootstrapStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GaleraBootstrapStatus.
func (*GaleraBootstrapStatus) DeepCopyInto ¶
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 ¶
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 ¶
func (in *GaleraConfig) DeepCopy() *GaleraConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GaleraConfig.
func (*GaleraConfig) DeepCopyInto ¶
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 ¶
func (g *GaleraConfig) SetDefaults()
SetDefaults sets reasonable defaults.
type GaleraInit ¶
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 ¶
func (in *GaleraInit) DeepCopy() *GaleraInit
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GaleraInit.
func (*GaleraInit) DeepCopyInto ¶
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 ¶
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"` // Resources 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 ¶
func (in *GaleraInitJob) DeepCopy() *GaleraInitJob
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GaleraInitJob.
func (*GaleraInitJob) DeepCopyInto ¶
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 ¶
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 ¶
func (in *GaleraRecovery) DeepCopy() *GaleraRecovery
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GaleraRecovery.
func (*GaleraRecovery) DeepCopyInto ¶
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 ¶
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 ¶
func (g *GaleraRecovery) SetDefaults(mdb *MariaDB)
SetDefaults sets reasonable defaults.
func (*GaleraRecovery) Validate ¶
func (g *GaleraRecovery) Validate(mdb *MariaDB) error
Validate determines whether a GaleraRecovery is valid.
type GaleraRecoveryJob ¶
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"` // Resources 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:booleanSwitch"} PodAffinity *bool `json:"podAffinity,omitempty"` }
GaleraRecoveryJob defines a Job used to be used to recover the Galera cluster.
func (*GaleraRecoveryJob) DeepCopy ¶
func (in *GaleraRecoveryJob) DeepCopy() *GaleraRecoveryJob
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GaleraRecoveryJob.
func (*GaleraRecoveryJob) DeepCopyInto ¶
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 ¶
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 ¶
func (in *GaleraRecoveryStatus) DeepCopy() *GaleraRecoveryStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GaleraRecoveryStatus.
func (*GaleraRecoveryStatus) DeepCopyInto ¶
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 ¶
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 ¶
func (in *GaleraSpec) DeepCopy() *GaleraSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GaleraSpec.
func (*GaleraSpec) DeepCopyInto ¶
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 ¶
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 ¶
func (in *GeneratedSecretKeyRef) DeepCopy() *GeneratedSecretKeyRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GeneratedSecretKeyRef.
func (*GeneratedSecretKeyRef) DeepCopyInto ¶
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 ¶
func (*Grant) CleanupPolicy ¶
func (g *Grant) CleanupPolicy() *CleanupPolicy
func (*Grant) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Grant.
func (*Grant) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Grant) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Grant) HostnameOrDefault ¶
func (*Grant) IndexerFuncForFieldPath ¶
func (g *Grant) IndexerFuncForFieldPath(fieldPath string) (client.IndexerFunc, error)
IndexerFuncForFieldPath returns an indexer function for a given field path.
func (*Grant) IsBeingDeleted ¶
func (*Grant) MariaDBRef ¶
func (g *Grant) MariaDBRef() *MariaDBRef
func (*Grant) RequeueInterval ¶
func (*Grant) RetryInterval ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GrantList.
func (*GrantList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*GrantList) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*GrantList) ListItems ¶
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"` // 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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GrantSpec.
func (*GrantSpec) DeepCopyInto ¶
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"` // CurrentPrivileges is the list of current privileges used in the Grant. // It allows to detect the divergence from the desired privileges. // +optional // +operator-sdk:csv:customresourcedefinitions:type=status CurrentPrivileges []string `json:"currentPrivileges"` }
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 ¶
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 ¶
MariaDBFormat formats the Gtid so it can be used in MariaDB config files.
type HTTPGetAction ¶
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.33/#httpgetaction-v1-core.
func (*HTTPGetAction) DeepCopy ¶
func (in *HTTPGetAction) DeepCopy() *HTTPGetAction
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPGetAction.
func (*HTTPGetAction) DeepCopyInto ¶
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 ¶
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 ¶
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.33/#hostpathvolumesource-v1-core
func (*HostPathVolumeSource) DeepCopy ¶
func (in *HostPathVolumeSource) DeepCopy() *HostPathVolumeSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostPathVolumeSource.
func (*HostPathVolumeSource) DeepCopyInto ¶
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 ¶
func (v HostPathVolumeSource) ToKubernetesType() corev1.HostPathVolumeSource
type Job ¶
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"` // 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"` // Resources 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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Job.
func (*Job) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Job) SetDefaults ¶
func (j *Job) SetDefaults(mariadbObjMeta metav1.ObjectMeta)
SetDefaults sets reasonable defaults.
type JobContainerTemplate ¶
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"` // Resources 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 ¶
func (in *JobContainerTemplate) DeepCopy() *JobContainerTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobContainerTemplate.
func (*JobContainerTemplate) DeepCopyInto ¶
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 ¶
func (j *JobContainerTemplate) FromContainerTemplate(ctpl *ContainerTemplate)
FromContainerTemplate sets the ContainerTemplate fields in the current JobContainerTemplate.
type JobPodTemplate ¶
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 ¶
func (in *JobPodTemplate) DeepCopy() *JobPodTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobPodTemplate.
func (*JobPodTemplate) DeepCopyInto ¶
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 ¶
func (j *JobPodTemplate) FromPodTemplate(ptpl *PodTemplate)
FromPodTemplate sets the PodTemplate fields in the current JobPodTemplate.
func (*JobPodTemplate) ServiceAccountKey ¶
func (j *JobPodTemplate) ServiceAccountKey(objMeta metav1.ObjectMeta) types.NamespacedName
ServiceAccountKey defines the key for the ServiceAccount object.
func (*JobPodTemplate) SetDefaults ¶
func (j *JobPodTemplate) SetDefaults(objMeta, mariadbObjMeta metav1.ObjectMeta)
SetDefaults sets reasonable defaults.
type KubernetesAuth ¶
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 ¶
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 ¶
func (in *KubernetesAuth) DeepCopy() *KubernetesAuth
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesAuth.
func (*KubernetesAuth) DeepCopyInto ¶
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 ¶
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.33/#labelselector-v1-meta
func (*LabelSelector) DeepCopy ¶
func (in *LabelSelector) DeepCopy() *LabelSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LabelSelector.
func (*LabelSelector) DeepCopyInto ¶
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 ¶
func (s LabelSelector) ToKubernetesType() metav1.LabelSelector
type LabelSelectorRequirement ¶
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.33/#labelselectorrequirement-v1-meta
func (*LabelSelectorRequirement) DeepCopy ¶
func (in *LabelSelectorRequirement) DeepCopy() *LabelSelectorRequirement
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LabelSelectorRequirement.
func (*LabelSelectorRequirement) DeepCopyInto ¶
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 ¶
func (s LabelSelectorRequirement) ToKubernetesType() metav1.LabelSelectorRequirement
type LocalObjectReference ¶
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.33/#localobjectreference-v1-core.
func (*LocalObjectReference) DeepCopy ¶
func (in *LocalObjectReference) DeepCopy() *LocalObjectReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalObjectReference.
func (*LocalObjectReference) DeepCopyInto ¶
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 ¶
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 ¶
func (m *MariaDB) AgentAuthSecretKeyRef() GeneratedSecretKeyRef
AgentAuthSecretKeyRef defines the Secret key selector for the agent password
func (*MariaDB) AreMetricsEnabled ¶
AreMetricsEnabled indicates whether the MariaDB instance has metrics enabled
func (*MariaDB) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MariaDB.
func (*MariaDB) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MariaDB) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*MariaDB) DefaultConfigMapKeyRef ¶
func (m *MariaDB) DefaultConfigMapKeyRef() ConfigMapKeySelector
DefaultConfigMapKeyRef defines the key selector for the default my.cnf ConfigMap.
func (*MariaDB) GetAutomaticFailoverDelay ¶
GetAutomaticFailoverDelay returns the duration of the automatic failover delay.
func (*MariaDB) HasConfiguredReplica ¶
HasConfiguredReplica indicates whether the cluster has a configured replica.
func (*MariaDB) HasGaleraConfiguredCondition ¶
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 ¶
HasGaleraNotReadyCondition indicates whether the MariaDB object has a non GaleraReady status condition. This means that the Galera cluster is not healthy.
func (*MariaDB) HasGaleraReadyCondition ¶
HasGaleraReadyCondition indicates whether the MariaDB object has a GaleraReady status condition. This means that the Galera cluster is healthy.
func (*MariaDB) HasPendingUpdate ¶
HasPendingUpdate indicates that MariaDB has a pending update.
func (*MariaDB) HasRestoredBackup ¶
HasRestoredBackup indicates whether the MariaDB instance has restored a Backup
func (*MariaDB) IndexerFuncForFieldPath ¶
func (m *MariaDB) IndexerFuncForFieldPath(fieldPath string) (client.IndexerFunc, error)
nolint:gocyclo IndexerFuncForFieldPath returns an indexer function for a given field path.
func (*MariaDB) InitError ¶
HasInitError indicates that the MariaDB instance has an initialization error.
func (*MariaDB) InitKey ¶
func (m *MariaDB) InitKey() types.NamespacedName
InitKey defines the keys for the init objects.
func (*MariaDB) InternalServiceKey ¶
func (m *MariaDB) InternalServiceKey() types.NamespacedName
InternalServiceKey defines the key for the internal headless Service
func (*MariaDB) IsConfiguredReplica ¶
IsConfiguredReplica indicates whether the given pod is a configured replica.
func (*MariaDB) IsEphemeralStorageEnabled ¶
IsEphemeralStorageEnabled indicates whether the MariaDB instance has ephemeral storage enabled
func (*MariaDB) IsGaleraEnabled ¶
IsHAEnabled indicates whether the MariaDB instance has Galera enabled
func (*MariaDB) IsGaleraInitialized ¶
IsGaleraInitialized indicates that the Galera init Job has successfully completed.
func (*MariaDB) IsGaleraInitializing ¶
IsGaleraInitializing indicates that the Galera init Job is running.
func (*MariaDB) IsHAEnabled ¶
IsHAEnabled indicates whether the MariaDB instance has HA enabled
func (*MariaDB) IsInitialUserEnabled ¶
IsInitialUserEnabled indicates whether the initial User is enabled
func (*MariaDB) IsInitialized ¶
IsGaleraInitialized indicates that the MariaDB instance has been successfully initialized.
func (*MariaDB) IsInitializing ¶
IsGaleraInitialized indicates that the MariaDB instance is being initialized.
func (*MariaDB) IsMaxScaleEnabled ¶
IsMaxScaleEnabled indicates that a MaxScale instance is forwarding traffic to this MariaDB instance
func (*MariaDB) IsResizingStorage ¶
IsResizingStorage indicates whether the MariaDB instance is resizing storage
func (*MariaDB) IsRestoringBackup ¶
IsRestoringBackup indicates whether the MariaDB instance is restoring backup
func (*MariaDB) IsRootPasswordDefined ¶
IsRootPasswordDefined indicates whether the MariaDB instance has a root password defined
func (*MariaDB) IsRootPasswordEmpty ¶
IsRootPasswordEmpty indicates whether the MariaDB instance has an empty root password
func (*MariaDB) IsSuspended ¶
IsSuspended whether a MariaDB is suspended.
func (*MariaDB) IsSwitchingPrimary ¶
IsSwitchingPrimary indicates whether the primary is being switched.
func (*MariaDB) IsTLSEnabled ¶
IsTLSEnabled indicates whether TLS is enabled
func (*MariaDB) IsTLSForGaleraSSTEnabled ¶
IsTLSForGaleraSSTEnabled indicates whether TLS for Galera SSTs is enabled.
func (*MariaDB) IsTLSRequired ¶
IsTLSRequired indicates whether TLS is enabled and must be enforced for all connections.
func (*MariaDB) IsUpdating ¶
IsUpdating indicates that a MariaDB update is in progress.
func (*MariaDB) IsWaitingForStorageResize ¶
IsResizingStorage indicates whether the MariaDB instance is waiting for storage resize
func (*MariaDB) MariadbDatabaseKey ¶
func (m *MariaDB) MariadbDatabaseKey() types.NamespacedName
MariadbDatabaseKey defines the key for the initial database
func (*MariaDB) MariadbGrantKey ¶
func (m *MariaDB) MariadbGrantKey() types.NamespacedName
MariadbGrantKey defines the key for the initial grant
func (*MariaDB) MariadbSysGrantKey ¶
func (m *MariaDB) MariadbSysGrantKey() types.NamespacedName
MariadbSysGrantKey defines the key for the 'mariadb.sys' Grant resource.
func (*MariaDB) MariadbSysUserKey ¶
func (m *MariaDB) MariadbSysUserKey() types.NamespacedName
MariadbSysUserKey defines the key for the 'mariadb.sys' User resource.
func (*MariaDB) MariadbUserKey ¶
func (m *MariaDB) MariadbUserKey() types.NamespacedName
MariadbUserKey defines the key for the initial user
func (*MariaDB) MaxScaleKey ¶
func (m *MariaDB) MaxScaleKey() types.NamespacedName
MaxScaleKey defines the key for the MaxScale resource.
func (*MariaDB) MetricsConfigSecretKeyRef ¶
func (m *MariaDB) MetricsConfigSecretKeyRef() GeneratedSecretKeyRef
MetricsConfigSecretKeyRef defines the key selector for the metrics Secret configuration
func (*MariaDB) MetricsKey ¶
func (m *MariaDB) MetricsKey() types.NamespacedName
MetricsKey defines the key for the metrics related resources
func (*MariaDB) MetricsPasswordSecretKeyRef ¶
func (m *MariaDB) MetricsPasswordSecretKeyRef() GeneratedSecretKeyRef
MetricsPasswordSecretKeyRef defines the key selector for for the password to be used by the metrics user
func (*MariaDB) MyCnfConfigMapKeyRef ¶
func (m *MariaDB) MyCnfConfigMapKeyRef() ConfigMapKeySelector
MyCnfConfigMapKeyRef defines the key selector for the my.cnf ConfigMap.
func (*MariaDB) PVCKey ¶
func (m *MariaDB) PVCKey(name string, index int) types.NamespacedName
PVCKey defines the PVC keys.
func (*MariaDB) PasswordSecretKeyRef ¶
func (m *MariaDB) PasswordSecretKeyRef() GeneratedSecretKeyRef
PasswordSecretKeyRef defines the key selector for the initial user password Secret.
func (*MariaDB) PhysicalBackupInitJobKey ¶
func (m *MariaDB) PhysicalBackupInitJobKey(podIndex int) types.NamespacedName
PhysicalBackupInitJobKey defines the keys for the PhysicalBackup init Job objects.
func (*MariaDB) PhysicalBackupStagingPVCKey ¶
func (m *MariaDB) PhysicalBackupStagingPVCKey() types.NamespacedName
PhysicalBackupStagingPVCKey defines the key for the PhysicalBackup staging PVC object.
func (*MariaDB) PrimaryConnectioneKey ¶
func (m *MariaDB) PrimaryConnectioneKey() types.NamespacedName
PrimaryConnectioneKey defines the key for the primary Connection
func (*MariaDB) PrimaryServiceKey ¶
func (m *MariaDB) PrimaryServiceKey() types.NamespacedName
PrimaryServiceKey defines the key for the primary Service
func (*MariaDB) RecoveryJobKey ¶
func (m *MariaDB) RecoveryJobKey(podName string) types.NamespacedName
RecoveryJobKey defines the key for a Galera recovery Job
func (*MariaDB) ReplConfigMapKeyRef ¶
func (m *MariaDB) ReplConfigMapKeyRef() ConfigMapKeySelector
ConfigMapKeySelector defines the key selector for the ConfigMap used for replication healthchecks.
func (*MariaDB) Replication ¶
func (m *MariaDB) Replication() Replication
Replication with defaulting accessor
func (*MariaDB) RestoreKey ¶
func (m *MariaDB) RestoreKey() types.NamespacedName
RestoreKey defines the key for the Restore resource used to bootstrap.
func (*MariaDB) RootPasswordSecretKeyRef ¶
func (m *MariaDB) RootPasswordSecretKeyRef() GeneratedSecretKeyRef
RootPasswordSecretKeyRef defines the key selector for the root password Secret.
func (*MariaDB) SecondaryConnectioneKey ¶
func (m *MariaDB) SecondaryConnectioneKey() types.NamespacedName
SecondaryConnectioneKey defines the key for the secondary Connection
func (*MariaDB) SecondaryServiceKey ¶
func (m *MariaDB) SecondaryServiceKey() types.NamespacedName
SecondaryServiceKey defines the key for the secondary Service
func (*MariaDB) SetDefaults ¶
func (m *MariaDB) SetDefaults(env *environment.OperatorEnv) error
nolint:gocyclo SetDefaults sets reasonable defaults.
func (*MariaDB) TLSCABundleSecretKeyRef ¶
func (m *MariaDB) TLSCABundleSecretKeyRef() SecretKeySelector
TLSCABundleSecretKeyRef defines the key selector for the TLS Secret trust bundle
func (*MariaDB) TLSClientCASecretKey ¶
func (m *MariaDB) TLSClientCASecretKey() types.NamespacedName
TLSClientCASecretKey defines the key for the TLS client CA.
func (*MariaDB) TLSClientCertSecretKey ¶
func (m *MariaDB) TLSClientCertSecretKey() types.NamespacedName
TLSClientCertSecretKey defines the key for the TLS client cert.
func (*MariaDB) TLSClientNames ¶
TLSClientNames are the names used by client TLS certificates.
func (*MariaDB) TLSConfigMapKeyRef ¶
func (m *MariaDB) TLSConfigMapKeyRef() ConfigMapKeySelector
TLSConfigMapKeyRef defines the key selector for the TLS ConfigMap
func (*MariaDB) TLSServerCASecretKey ¶
func (m *MariaDB) TLSServerCASecretKey() types.NamespacedName
TLSServerCASecretKey defines the key for the TLS server CA.
func (*MariaDB) TLSServerCertSecretKey ¶
func (m *MariaDB) TLSServerCertSecretKey() types.NamespacedName
TLSServerCertSecretKey defines the key for the TLS server cert.
func (*MariaDB) TLSServerDNSNames ¶
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 ¶
func (m *MariaDBList) ListItems() []client.Object
ListItems gets a copy of the Items slice.
type MariaDBMaxScaleSpec ¶
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 ¶
func (in *MariaDBMaxScaleSpec) DeepCopy() *MariaDBMaxScaleSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MariaDBMaxScaleSpec.
func (*MariaDBMaxScaleSpec) DeepCopyInto ¶
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"` // CurrentPrimaryFailingSince is the timestamp of the moment when the primary became not ready. // +optional // +operator-sdk:csv:customresourcedefinitions:type=status CurrentPrimaryFailingSince *metav1.Time `json:"currentPrimaryFailingSince,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 ¶
func (s *MariaDBStatus) UpdateCurrentPrimary(mariadb *MariaDB, index int)
UpdateCurrentPrimary updates the current primary status.
type MariaDBTLSStatus ¶
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 ¶
func (in *MariaDBTLSStatus) DeepCopy() *MariaDBTLSStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MariaDBTLSStatus.
func (*MariaDBTLSStatus) DeepCopyInto ¶
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 ¶
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 ¶
func (in *MariadbMetrics) DeepCopy() *MariadbMetrics
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MariadbMetrics.
func (*MariadbMetrics) DeepCopyInto ¶
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 ¶
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 ¶
APIUrl returns the URL of the admin API pointing to the Kubernetes Service.
func (*MaxScale) AdminPasswordSecretKeyRef ¶
func (m *MaxScale) AdminPasswordSecretKeyRef() GeneratedSecretKeyRef
AdminPasswordSecretKeyRef defines the Secret key selector for the admin password
func (*MaxScale) AreMetricsEnabled ¶
AreMetricsEnabled indicates whether the MariaDB instance has metrics enabled
func (*MaxScale) AuthClientPasswordSecretKeyRef ¶
func (m *MaxScale) AuthClientPasswordSecretKeyRef() GeneratedSecretKeyRef
AuthClientPasswordSecretKeyRef defines the Secret key selector for the client password
func (*MaxScale) AuthClientUserKey ¶
func (m *MaxScale) AuthClientUserKey() LocalObjectReference
AuthClientUserKey defines the key for the client User
func (*MaxScale) AuthMonitorPasswordSecretKeyRef ¶
func (m *MaxScale) AuthMonitorPasswordSecretKeyRef() GeneratedSecretKeyRef
AuthClientPasswordSecretKeyRef defines the Secret key selector for the monitor password
func (*MaxScale) AuthMonitorUserKey ¶
func (m *MaxScale) AuthMonitorUserKey() LocalObjectReference
AuthClientUserKey defines the key for the monitor User
func (*MaxScale) AuthServerPasswordSecretKeyRef ¶
func (m *MaxScale) AuthServerPasswordSecretKeyRef() GeneratedSecretKeyRef
AuthClientPasswordSecretKeyRef defines the Secret key selector for the server password
func (*MaxScale) AuthServerUserKey ¶
func (m *MaxScale) AuthServerUserKey() LocalObjectReference
AuthClientUserKey defines the key for the monitor User
func (*MaxScale) AuthSyncPasswordSecretKeyRef ¶
func (m *MaxScale) AuthSyncPasswordSecretKeyRef() GeneratedSecretKeyRef
AuthSyncPasswordSecretKeyRef defines the Secret key selector for the config sync password
func (*MaxScale) AuthSyncUserKey ¶
func (m *MaxScale) AuthSyncUserKey() LocalObjectReference
AuthSyncUserKey defines the key for the config sync User
func (*MaxScale) ConfigSecretKeyRef ¶
func (m *MaxScale) ConfigSecretKeyRef() GeneratedSecretKeyRef
ConfigSecretKeyRef defines the Secret key selector for the configuration
func (*MaxScale) ConnectionKey ¶
func (m *MaxScale) ConnectionKey() types.NamespacedName
ConnectionKey defines the key for the Connection
func (*MaxScale) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MaxScale.
func (*MaxScale) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MaxScale) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*MaxScale) DefaultPort ¶
DefaultPort returns the default port.
func (*MaxScale) GuiServiceKey ¶
func (m *MaxScale) GuiServiceKey() types.NamespacedName
GuiServiceKey defines the key for the GUI Service
func (*MaxScale) IndexerFuncForFieldPath ¶
func (m *MaxScale) IndexerFuncForFieldPath(fieldPath string) (client.IndexerFunc, error)
nolint:gocyclo IndexerFuncForFieldPath returns an indexer function for a given field path.
func (*MaxScale) InternalServiceKey ¶
func (m *MaxScale) InternalServiceKey() types.NamespacedName
InternalServiceKey defines the key for the internal headless Service
func (*MaxScale) IsBeingDeleted ¶
IsBeingDeleted indicates that MaxScale has been marked for deletion
func (*MaxScale) IsHAEnabled ¶
IsHAEnabled indicated whether high availability is enabled.
func (*MaxScale) IsReplicationSSLEnabled ¶
IsReplicationSSLEnabled indicates whether TLS for replication should be enabled
func (*MaxScale) IsSuspended ¶
IsSuspended whether a MaxScale is suspended.
func (*MaxScale) IsTLSEnabled ¶
IsTLSEnabled indicates whether TLS is enabled
func (*MaxScale) ListenerIDs ¶
ListenerIDs returns the IDs of the listeners.
func (*MaxScale) ListenerIndex ¶
func (m *MaxScale) ListenerIndex() ds.Index[MaxScaleListener]
ListenerIndex returns the listeners indexed by ID.
func (*MaxScale) Listeners ¶
func (m *MaxScale) Listeners() []MaxScaleListener
Listeners returns the listeners
func (*MaxScale) MetricsConfigSecretKeyRef ¶
func (m *MaxScale) MetricsConfigSecretKeyRef() GeneratedSecretKeyRef
MetricsConfigSecretKeyRef defines the key selector for the metrics Secret configuration
func (*MaxScale) MetricsKey ¶
func (m *MaxScale) MetricsKey() types.NamespacedName
MetricsKey defines the key for the metrics related resources
func (*MaxScale) MetricsPasswordSecretKeyRef ¶
func (m *MaxScale) MetricsPasswordSecretKeyRef() GeneratedSecretKeyRef
MetricsPasswordSecretKeyRef defines the Secret key selector for the metrics password
func (*MaxScale) ServerIndex ¶
func (m *MaxScale) ServerIndex() ds.Index[MaxScaleServer]
ServerIDs returns the servers indexed by ID.
func (*MaxScale) ServiceForListener ¶
ServiceForListener finds the service for a given listener
func (*MaxScale) ServiceIDs ¶
ServiceIDs returns the IDs of the services.
func (*MaxScale) ServiceIndex ¶
func (m *MaxScale) ServiceIndex() ds.Index[MaxScaleService]
ServiceIndex returns the services indexed by ID.
func (*MaxScale) SetDefaults ¶
func (m *MaxScale) SetDefaults(env *environment.OperatorEnv, mariadb *MariaDB)
SetDefaults sets default values.
func (*MaxScale) ShouldVerifyPeerCertificate ¶
ShouldVerifyPeerCertificate indicates whether peer certificate should be verified
func (*MaxScale) ShouldVerifyPeerHost ¶
ShouldVerifyPeerHost indicates whether peer host should be verified
func (*MaxScale) TLSAdminCASecretKey ¶
func (m *MaxScale) TLSAdminCASecretKey() types.NamespacedName
TLSServerCASecretKey defines the key for the TLS admin CA.
func (*MaxScale) TLSAdminCertSecretKey ¶
func (m *MaxScale) TLSAdminCertSecretKey() types.NamespacedName
TLSAdminCertSecretKey defines the key for the TLS admin cert.
func (*MaxScale) TLSAdminDNSNames ¶
TLSAdminDNSNames are the Service DNS names used by admin TLS certificates.
func (*MaxScale) TLSCABundleSecretKeyRef ¶
func (m *MaxScale) TLSCABundleSecretKeyRef() SecretKeySelector
TLSCABundleSecretKeyRef defines the key selector for the TLS Secret trust bundle
func (*MaxScale) TLSListenerCASecretKey ¶
func (m *MaxScale) TLSListenerCASecretKey() types.NamespacedName
TLSListenerCASecretKey defines the key for the TLS listener CA.
func (*MaxScale) TLSListenerCertSecretKey ¶
func (m *MaxScale) TLSListenerCertSecretKey() types.NamespacedName
TLSListenerCertSecretKey defines the key for the TLS listener cert.
func (*MaxScale) TLSListenerDNSNames ¶
TLSListenerDNSNames are the Service DNS names used by listener TLS certificates.
func (*MaxScale) TLSServerCASecretKey ¶
func (m *MaxScale) TLSServerCASecretKey() types.NamespacedName
TLSServerCASecretKey defines the key for the TLS MariaDB server CA.
func (*MaxScale) TLSServerCertSecretKey ¶
func (m *MaxScale) TLSServerCertSecretKey() types.NamespacedName
TLSServerCertSecretKey defines the key for the TLS MariaDB server cert.
type MaxScaleAdmin ¶
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 ¶
func (in *MaxScaleAdmin) DeepCopy() *MaxScaleAdmin
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MaxScaleAdmin.
func (*MaxScaleAdmin) DeepCopyInto ¶
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 ¶
func (m *MaxScaleAdmin) SetDefaults(mxs *MaxScale)
SetDefaults sets default values.
type MaxScaleAuth ¶
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 ¶
func (in *MaxScaleAuth) DeepCopy() *MaxScaleAuth
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MaxScaleAuth.
func (*MaxScaleAuth) DeepCopyInto ¶
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 ¶
func (m *MaxScaleAuth) SetDefaults(mxs *MaxScale)
SetDefaults sets default values.
type MaxScaleConfig ¶
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 ¶
func (in *MaxScaleConfig) DeepCopy() *MaxScaleConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MaxScaleConfig.
func (*MaxScaleConfig) DeepCopyInto ¶
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 ¶
func (m *MaxScaleConfig) SetDefaults(mxs *MaxScale)
type MaxScaleConfigSync ¶
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 ¶
func (in *MaxScaleConfigSync) DeepCopy() *MaxScaleConfigSync
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MaxScaleConfigSync.
func (*MaxScaleConfigSync) DeepCopyInto ¶
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 ¶
type MaxScaleConfigSyncStatus struct { MaxScaleVersion int `json:"maxScaleVersion"` DatabaseVersion int `json:"databaseVersion"` }
func (*MaxScaleConfigSyncStatus) DeepCopy ¶
func (in *MaxScaleConfigSyncStatus) DeepCopy() *MaxScaleConfigSyncStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MaxScaleConfigSyncStatus.
func (*MaxScaleConfigSyncStatus) DeepCopyInto ¶
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 ¶
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 ¶
func (in *MaxScaleList) DeepCopy() *MaxScaleList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MaxScaleList.
func (*MaxScaleList) DeepCopyInto ¶
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 ¶
func (in *MaxScaleList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*MaxScaleList) ListItems ¶
func (m *MaxScaleList) ListItems() []client.Object
ListItems gets a copy of the Items slice.
type MaxScaleListener ¶
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 ¶
func (in *MaxScaleListener) DeepCopy() *MaxScaleListener
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MaxScaleListener.
func (*MaxScaleListener) DeepCopyInto ¶
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 ¶
func (m *MaxScaleListener) SetDefaults(svc *MaxScaleService)
SetDefaults sets default values.
type MaxScaleMetrics ¶
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 ¶
func (in *MaxScaleMetrics) DeepCopy() *MaxScaleMetrics
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MaxScaleMetrics.
func (*MaxScaleMetrics) DeepCopyInto ¶
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 ¶
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 supported: // 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 ¶
func (in *MaxScaleMonitor) DeepCopy() *MaxScaleMonitor
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MaxScaleMonitor.
func (*MaxScaleMonitor) DeepCopyInto ¶
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 ¶
func (m *MaxScaleMonitor) SetDefaults(mxs *MaxScale)
SetCondition sets a status condition to MaxScale
type MaxScalePodTemplate ¶
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 ¶
func (in *MaxScalePodTemplate) DeepCopy() *MaxScalePodTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MaxScalePodTemplate.
func (*MaxScalePodTemplate) DeepCopyInto ¶
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 ¶
func (p *MaxScalePodTemplate) ServiceAccountKey(objMeta metav1.ObjectMeta) types.NamespacedName
ServiceAccountKey defines the key for the ServiceAccount object.
func (*MaxScalePodTemplate) SetDefaults ¶
func (p *MaxScalePodTemplate) SetDefaults(objMeta metav1.ObjectMeta)
SetDefaults sets reasonable defaults.
type MaxScaleResourceStatus ¶
MaxScaleResourceStatus indicates whether the resource is in a given state.
func (*MaxScaleResourceStatus) DeepCopy ¶
func (in *MaxScaleResourceStatus) DeepCopy() *MaxScaleResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MaxScaleResourceStatus.
func (*MaxScaleResourceStatus) DeepCopyInto ¶
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 ¶
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 ¶
func (in *MaxScaleServer) DeepCopy() *MaxScaleServer
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MaxScaleServer.
func (*MaxScaleServer) DeepCopyInto ¶
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 ¶
func (m *MaxScaleServer) SetDefaults()
SetDefaults sets default values.
type MaxScaleServerStatus ¶
MaxScaleAPIStatus is the state of the servers in the MaxScale API.
func (*MaxScaleServerStatus) DeepCopy ¶
func (in *MaxScaleServerStatus) DeepCopy() *MaxScaleServerStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MaxScaleServerStatus.
func (*MaxScaleServerStatus) DeepCopyInto ¶
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 ¶
func (s *MaxScaleServerStatus) InMaintenance() bool
InMaintenance indicates whether the current server is in maintenance state.
func (*MaxScaleServerStatus) IsMaster ¶
func (s *MaxScaleServerStatus) IsMaster() bool
IsMaster indicates whether the current server is in Master state.
func (*MaxScaleServerStatus) IsReady ¶
func (s *MaxScaleServerStatus) IsReady() bool
IsReady indicates whether the current server is in ready state.
type MaxScaleService ¶
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 supported: // 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 ¶
func (in *MaxScaleService) DeepCopy() *MaxScaleService
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MaxScaleService.
func (*MaxScaleService) DeepCopyInto ¶
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 ¶
func (m *MaxScaleService) SetDefaults()
SetDefaults sets default values.
type MaxScaleSpec ¶
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 ¶
func (in *MaxScaleSpec) DeepCopy() *MaxScaleSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MaxScaleSpec.
func (*MaxScaleSpec) DeepCopyInto ¶
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 ¶
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 ¶
func (in *MaxScaleStatus) DeepCopy() *MaxScaleStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MaxScaleStatus.
func (*MaxScaleStatus) DeepCopyInto ¶
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 ¶
func (s *MaxScaleStatus) GetPrimaryServer() *string
GetPrimaryServer obtains the current primary server.
func (*MaxScaleStatus) SetCondition ¶
func (s *MaxScaleStatus) SetCondition(condition metav1.Condition)
SetCondition sets a status condition to MaxScale
type MaxScaleTLS ¶
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 ¶
func (in *MaxScaleTLS) DeepCopy() *MaxScaleTLS
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MaxScaleTLS.
func (*MaxScaleTLS) DeepCopyInto ¶
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 ¶
func (m *MaxScaleTLS) SetDefaults(mdb *MariaDB)
SetDefaults sets reasonable defaults.
type MaxScaleTLSStatus ¶
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 ¶
func (in *MaxScaleTLSStatus) DeepCopy() *MaxScaleTLSStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MaxScaleTLSStatus.
func (*MaxScaleTLSStatus) DeepCopyInto ¶
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 ¶
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 ¶
MergeMetadata merges multiple Metadata instances into one
func (*Metadata) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Metadata.
func (*Metadata) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MonitorModule ¶
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 ¶
func (m MonitorModule) Validate() error
Validate determines whether a MonitorModule is valid.
type NFSVolumeSource ¶
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.33/#nfsvolumesource-v1-core.
func (*NFSVolumeSource) DeepCopy ¶
func (in *NFSVolumeSource) DeepCopy() *NFSVolumeSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NFSVolumeSource.
func (*NFSVolumeSource) DeepCopyInto ¶
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 ¶
func (v NFSVolumeSource) ToKubernetesType() corev1.NFSVolumeSource
type NodeAffinity ¶
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.33/#nodeaffinity-v1-core
func (*NodeAffinity) DeepCopy ¶
func (in *NodeAffinity) DeepCopy() *NodeAffinity
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeAffinity.
func (*NodeAffinity) DeepCopyInto ¶
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 ¶
func (p NodeAffinity) ToKubernetesType() corev1.NodeAffinity
type NodeSelector ¶
type NodeSelector struct { // +listType=atomic NodeSelectorTerms []NodeSelectorTerm `json:"nodeSelectorTerms"` }
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.33/#nodeselector-v1-core
func (*NodeSelector) DeepCopy ¶
func (in *NodeSelector) DeepCopy() *NodeSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSelector.
func (*NodeSelector) DeepCopyInto ¶
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 ¶
func (p NodeSelector) ToKubernetesType() corev1.NodeSelector
type NodeSelectorRequirement ¶
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.33/#nodeselectorrequirement-v1-core
func (*NodeSelectorRequirement) DeepCopy ¶
func (in *NodeSelectorRequirement) DeepCopy() *NodeSelectorRequirement
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSelectorRequirement.
func (*NodeSelectorRequirement) DeepCopyInto ¶
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 ¶
func (s NodeSelectorRequirement) ToKubernetesType() corev1.NodeSelectorRequirement
type NodeSelectorTerm ¶
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.33/#nodeselectorterm-v1-core
func (*NodeSelectorTerm) DeepCopy ¶
func (in *NodeSelectorTerm) DeepCopy() *NodeSelectorTerm
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSelectorTerm.
func (*NodeSelectorTerm) DeepCopyInto ¶
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 ¶
func (s NodeSelectorTerm) ToKubernetesType() corev1.NodeSelectorTerm
type ObjectFieldSelector ¶
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.33/#objectfieldselector-v1-core. +structType=atomic
func (*ObjectFieldSelector) DeepCopy ¶
func (in *ObjectFieldSelector) DeepCopy() *ObjectFieldSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectFieldSelector.
func (*ObjectFieldSelector) DeepCopyInto ¶
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 ¶
func (s ObjectFieldSelector) ToKubernetesType() corev1.ObjectFieldSelector
type ObjectReference ¶
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.33/#objectreference-v1-core.
func (*ObjectReference) DeepCopy ¶
func (in *ObjectReference) DeepCopy() *ObjectReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectReference.
func (*ObjectReference) DeepCopyInto ¶
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 ¶
func (r ObjectReference) ToKubernetesType() corev1.ObjectReference
type PasswordPlugin ¶
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 ¶
func (in *PasswordPlugin) DeepCopy() *PasswordPlugin
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PasswordPlugin.
func (*PasswordPlugin) DeepCopyInto ¶
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 ¶
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.33/#persistentvolumeclaimspec-v1-core.
func (*PersistentVolumeClaimSpec) DeepCopy ¶
func (in *PersistentVolumeClaimSpec) DeepCopy() *PersistentVolumeClaimSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaimSpec.
func (*PersistentVolumeClaimSpec) DeepCopyInto ¶
func (in *PersistentVolumeClaimSpec) DeepCopyInto(out *PersistentVolumeClaimSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (PersistentVolumeClaimSpec) ToKubernetesType ¶
func (p PersistentVolumeClaimSpec) ToKubernetesType() corev1.PersistentVolumeClaimSpec
type PersistentVolumeClaimVolumeSource ¶
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.33/#persistentvolumeclaimvolumesource-v1-core.
func (*PersistentVolumeClaimVolumeSource) DeepCopy ¶
func (in *PersistentVolumeClaimVolumeSource) DeepCopy() *PersistentVolumeClaimVolumeSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaimVolumeSource.
func (*PersistentVolumeClaimVolumeSource) DeepCopyInto ¶
func (in *PersistentVolumeClaimVolumeSource) DeepCopyInto(out *PersistentVolumeClaimVolumeSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (PersistentVolumeClaimVolumeSource) ToKubernetesType ¶
func (v PersistentVolumeClaimVolumeSource) ToKubernetesType() corev1.PersistentVolumeClaimVolumeSource
type PhysicalBackup ¶
type PhysicalBackup struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec PhysicalBackupSpec `json:"spec,omitempty"` Status PhysicalBackupStatus `json:"status,omitempty"` }
PhysicalBackup is the Schema for the physicalbackups API. It is used to define physical backup jobs and its storage.
func (*PhysicalBackup) DeepCopy ¶
func (in *PhysicalBackup) DeepCopy() *PhysicalBackup
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PhysicalBackup.
func (*PhysicalBackup) DeepCopyInto ¶
func (in *PhysicalBackup) DeepCopyInto(out *PhysicalBackup)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PhysicalBackup) DeepCopyObject ¶
func (in *PhysicalBackup) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*PhysicalBackup) IsComplete ¶
func (b *PhysicalBackup) IsComplete() bool
func (*PhysicalBackup) SetDefaults ¶
func (b *PhysicalBackup) SetDefaults(mariadb *MariaDB)
func (*PhysicalBackup) StagingPVCKey ¶
func (b *PhysicalBackup) StagingPVCKey() types.NamespacedName
func (*PhysicalBackup) StoragePVCKey ¶
func (b *PhysicalBackup) StoragePVCKey() types.NamespacedName
func (*PhysicalBackup) Validate ¶
func (b *PhysicalBackup) Validate() error
func (*PhysicalBackup) Volume ¶
func (b *PhysicalBackup) Volume() (StorageVolumeSource, error)
type PhysicalBackupList ¶
type PhysicalBackupList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []PhysicalBackup `json:"items"` }
PhysicalBackupList contains a list of PhysicalBackup.
func (*PhysicalBackupList) DeepCopy ¶
func (in *PhysicalBackupList) DeepCopy() *PhysicalBackupList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PhysicalBackupList.
func (*PhysicalBackupList) DeepCopyInto ¶
func (in *PhysicalBackupList) DeepCopyInto(out *PhysicalBackupList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PhysicalBackupList) DeepCopyObject ¶
func (in *PhysicalBackupList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*PhysicalBackupList) ListItems ¶
func (m *PhysicalBackupList) ListItems() []client.Object
ListItems gets a copy of the Items slice.
type PhysicalBackupPodTemplate ¶
type PhysicalBackupPodTemplate 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"` // 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"` }
PhysicalBackupPodTemplate defines a template to configure Container objects that run in a PhysicalBackup.
func (*PhysicalBackupPodTemplate) DeepCopy ¶
func (in *PhysicalBackupPodTemplate) DeepCopy() *PhysicalBackupPodTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PhysicalBackupPodTemplate.
func (*PhysicalBackupPodTemplate) DeepCopyInto ¶
func (in *PhysicalBackupPodTemplate) DeepCopyInto(out *PhysicalBackupPodTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PhysicalBackupPodTemplate) ServiceAccountKey ¶
func (p *PhysicalBackupPodTemplate) ServiceAccountKey(objMeta metav1.ObjectMeta) types.NamespacedName
ServiceAccountKey defines the key for the ServiceAccount object.
func (*PhysicalBackupPodTemplate) SetDefaults ¶
func (p *PhysicalBackupPodTemplate) SetDefaults(objMeta, mariadbObjMeta metav1.ObjectMeta)
SetDefaults sets reasonable defaults.
type PhysicalBackupSchedule ¶
type PhysicalBackupSchedule struct { // Cron is a cron expression that defines the schedule. // +kubebuilder:validation:Required // +operator-sdk:csv:customresourcedefinitions:type=spec Cron string `json:"cron" webhook:"inmutable"` // 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"` // Immediate indicates whether the first backup should be taken immediately after creating the PhysicalBackup. // +optional // +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"} Immediate *bool `json:"immediate,omitempty"` }
PhysicalBackupSchedule defines when the PhysicalBackup will be taken.
func (*PhysicalBackupSchedule) DeepCopy ¶
func (in *PhysicalBackupSchedule) DeepCopy() *PhysicalBackupSchedule
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PhysicalBackupSchedule.
func (*PhysicalBackupSchedule) DeepCopyInto ¶
func (in *PhysicalBackupSchedule) DeepCopyInto(out *PhysicalBackupSchedule)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PhysicalBackupSchedule) Validate ¶
func (s *PhysicalBackupSchedule) Validate() error
Validate determines whether a PhysicalBackupSchedule is valid.
type PhysicalBackupSpec ¶
type PhysicalBackupSpec struct { // JobContainerTemplate defines templates to configure Container objects. // +operator-sdk:csv:customresourcedefinitions:type=spec JobContainerTemplate `json:",inline"` // PhysicalBackupPodTemplate defines templates to configure Pod objects. // +operator-sdk:csv:customresourcedefinitions:type=spec PhysicalBackupPodTemplate `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 PhysicalBackup 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 PhysicalBackupStorage `json:"storage" webhook:"inmutable"` // Schedule defines when the PhysicalBackup will be taken. // +optional // +operator-sdk:csv:customresourcedefinitions:type=spec Schedule *PhysicalBackupSchedule `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"` // Timeout defines the maximum duration of a PhysicalBackup job or snapshot. // If this duration is exceeded, the job or snapshot is considered expired and is deleted by the operator. // A new job or snapshot will then be created according to the schedule. // It defaults to 1 hour. // +optional // +operator-sdk:csv:customresourcedefinitions:type=spec Timeout *metav1.Duration `json:"timeout,omitempty"` // PodAffinity indicates whether the Jobs should run in the same Node as the MariaDB Pods to be able to attach the PVC. // It defaults to true. // +optional // +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"} PodAffinity *bool `json:"podAffinity,omitempty"` // BackoffLimit defines the maximum number of attempts to successfully take a PhysicalBackup. // +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 PhysicalBackup 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"` // SuccessfulJobsHistoryLimit defines the maximum number of successful Jobs to be displayed. It defaults to 5. // +optional // +kubebuilder:validation:Minimum=0 // +operator-sdk:csv:customresourcedefinitions:type=spec SuccessfulJobsHistoryLimit *int32 `json:"successfulJobsHistoryLimit,omitempty"` }
PhysicalBackupSpec defines the desired state of PhysicalBackup.
func (*PhysicalBackupSpec) DeepCopy ¶
func (in *PhysicalBackupSpec) DeepCopy() *PhysicalBackupSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PhysicalBackupSpec.
func (*PhysicalBackupSpec) DeepCopyInto ¶
func (in *PhysicalBackupSpec) DeepCopyInto(out *PhysicalBackupSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PhysicalBackupStatus ¶
type PhysicalBackupStatus struct { // Conditions for the PhysicalBackup object. // +optional // +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors={"urn:alm:descriptor:io.kubernetes.conditions"} Conditions []metav1.Condition `json:"conditions,omitempty"` // LastScheduleCheckTime is the last time that the schedule was checked. // +optional // +operator-sdk:csv:customresourcedefinitions:type=status LastScheduleCheckTime *metav1.Time `json:"lastScheduleCheckTime,omitempty"` // LastScheduleTime is the last time that a backup was scheduled. // +optional // +operator-sdk:csv:customresourcedefinitions:type=status LastScheduleTime *metav1.Time `json:"lastScheduleTime,omitempty"` // NextScheduleTime is the next time that a backup will be scheduled. // +optional // +operator-sdk:csv:customresourcedefinitions:type=status NextScheduleTime *metav1.Time `json:"nextScheduleTime,omitempty"` }
PhysicalBackupStatus defines the observed state of PhysicalBackup.
func (*PhysicalBackupStatus) DeepCopy ¶
func (in *PhysicalBackupStatus) DeepCopy() *PhysicalBackupStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PhysicalBackupStatus.
func (*PhysicalBackupStatus) DeepCopyInto ¶
func (in *PhysicalBackupStatus) DeepCopyInto(out *PhysicalBackupStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PhysicalBackupStatus) SetCondition ¶
func (b *PhysicalBackupStatus) SetCondition(condition metav1.Condition)
type PhysicalBackupStorage ¶
type PhysicalBackupStorage 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"` // VolumeSnapshot is a Kubernetes VolumeSnapshot specification. // +optional // +operator-sdk:csv:customresourcedefinitions:type=spec VolumeSnapshot *PhysicalBackupVolumeSnapshot `json:"volumeSnapshot,omitempty"` }
PhysicalBackupStorage defines the storage for physical backups.
func (*PhysicalBackupStorage) DeepCopy ¶
func (in *PhysicalBackupStorage) DeepCopy() *PhysicalBackupStorage
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PhysicalBackupStorage.
func (*PhysicalBackupStorage) DeepCopyInto ¶
func (in *PhysicalBackupStorage) DeepCopyInto(out *PhysicalBackupStorage)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PhysicalBackupStorage) Validate ¶
func (b *PhysicalBackupStorage) Validate() error
type PhysicalBackupVolumeSnapshot ¶
type PhysicalBackupVolumeSnapshot struct { // Metadata is extra metadata to the added to the VolumeSnapshot objects. // +optional // +operator-sdk:csv:customresourcedefinitions:type=spec Metadata *Metadata `json:"metadata,omitempty"` // VolumeSnapshotClassName is the VolumeSnapshot class to be used to take snapshots. // +kubebuilder:validation:Required // +operator-sdk:csv:customresourcedefinitions:type=spec VolumeSnapshotClassName string `json:"volumeSnapshotClassName"` }
PhysicalBackupVolumeSnapshot defines parameters for the VolumeSnapshots used as physical backups.
func (*PhysicalBackupVolumeSnapshot) DeepCopy ¶
func (in *PhysicalBackupVolumeSnapshot) DeepCopy() *PhysicalBackupVolumeSnapshot
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PhysicalBackupVolumeSnapshot.
func (*PhysicalBackupVolumeSnapshot) DeepCopyInto ¶
func (in *PhysicalBackupVolumeSnapshot) DeepCopyInto(out *PhysicalBackupVolumeSnapshot)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodAffinityTerm ¶
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.33/#podaffinityterm-v1-core.
func (*PodAffinityTerm) DeepCopy ¶
func (in *PodAffinityTerm) DeepCopy() *PodAffinityTerm
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodAffinityTerm.
func (*PodAffinityTerm) DeepCopyInto ¶
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 ¶
func (p PodAffinityTerm) ToKubernetesType() corev1.PodAffinityTerm
type PodAntiAffinity ¶
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.33/#podantiaffinity-v1-core.
func (*PodAntiAffinity) DeepCopy ¶
func (in *PodAntiAffinity) DeepCopy() *PodAntiAffinity
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodAntiAffinity.
func (*PodAntiAffinity) DeepCopyInto ¶
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 ¶
func (p PodAntiAffinity) ToKubernetesType() corev1.PodAntiAffinity
type PodDisruptionBudget ¶
type PodDisruptionBudget struct { // MinAvailable defines the number of minimum available Pods. // +optional // +operator-sdk:csv:customresourcedefinitions:type=spec MinAvailable *intstr.IntOrString `json:"minAvailable,omitempty"` // +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 ¶
func (in *PodDisruptionBudget) DeepCopy() *PodDisruptionBudget
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudget.
func (*PodDisruptionBudget) DeepCopyInto ¶
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 ¶
func (p *PodDisruptionBudget) Validate() error
type PodSecurityContext ¶
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.33/#podsecuritycontext-v1-core
func (*PodSecurityContext) DeepCopy ¶
func (in *PodSecurityContext) DeepCopy() *PodSecurityContext
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSecurityContext.
func (*PodSecurityContext) DeepCopyInto ¶
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 ¶
func (s PodSecurityContext) ToKubernetesType() corev1.PodSecurityContext
type PodTemplate ¶
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 ¶
func (in *PodTemplate) DeepCopy() *PodTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodTemplate.
func (*PodTemplate) DeepCopyInto ¶
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 ¶
func (p *PodTemplate) ServiceAccountKey(objMeta metav1.ObjectMeta) types.NamespacedName
ServiceAccountKey defines the key for the ServiceAccount object.
func (*PodTemplate) SetDefaults ¶
func (p *PodTemplate) SetDefaults(objMeta metav1.ObjectMeta)
SetDefaults sets reasonable defaults.
type PreferredSchedulingTerm ¶
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.33/#preferredschedulingterm-v1-core
func (*PreferredSchedulingTerm) DeepCopy ¶
func (in *PreferredSchedulingTerm) DeepCopy() *PreferredSchedulingTerm
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PreferredSchedulingTerm.
func (*PreferredSchedulingTerm) DeepCopyInto ¶
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 ¶
func (p PreferredSchedulingTerm) ToKubernetesType() corev1.PreferredSchedulingTerm
type PrimaryGalera ¶
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 ¶
func (in *PrimaryGalera) DeepCopy() *PrimaryGalera
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrimaryGalera.
func (*PrimaryGalera) DeepCopyInto ¶
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 ¶
func (r *PrimaryGalera) SetDefaults()
SetDefaults sets reasonable defaults.
type PrimaryReplication ¶
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"` // AutomaticFailoverDelay indicates the duration before performing an automatic primary failover. By default, no extra delay is added. // +optional // +operator-sdk:csv:customresourcedefinitions:type=spec AutomaticFailoverDelay *metav1.Duration `json:"automaticFailoverDelay,omitempty"` }
PrimaryReplication is the replication configuration for the primary node.
func (*PrimaryReplication) DeepCopy ¶
func (in *PrimaryReplication) DeepCopy() *PrimaryReplication
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrimaryReplication.
func (*PrimaryReplication) DeepCopyInto ¶
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 ¶
func (r *PrimaryReplication) FillWithDefaults()
FillWithDefaults fills the current PrimaryReplication object with DefaultReplicationSpec. This enables having minimal PrimaryReplication objects and provides sensible defaults.
type Probe ¶
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.33/#probe-v1-core.
func (*Probe) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Probe.
func (*Probe) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (Probe) ToKubernetesType ¶
type ProbeHandler ¶
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.33/#probe-v1-core.
func (*ProbeHandler) DeepCopy ¶
func (in *ProbeHandler) DeepCopy() *ProbeHandler
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProbeHandler.
func (*ProbeHandler) DeepCopyInto ¶
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 ¶
func (p ProbeHandler) ToKubernetesType() corev1.ProbeHandler
type ReplicaReplication ¶
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 ¶
func (in *ReplicaReplication) DeepCopy() *ReplicaReplication
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaReplication.
func (*ReplicaReplication) DeepCopyInto ¶
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 ¶
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 ¶
func (r *ReplicaReplication) Validate() error
Validate returns an error if the ReplicaReplication is not valid.
type Replication ¶
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 ¶
func (in *Replication) DeepCopy() *Replication
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Replication.
func (*Replication) DeepCopyInto ¶
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 ¶
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 after how many events the binary log is synchronized to the disk. // The default is 1, flushing the binary log to disk after every write, which trades off performance for consistency. See: https://mariadb.com/docs/server/ha-and-performance/standard-replication/replication-and-binary-log-system-variables#sync_binlog // +optional // +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"} SyncBinlog *int `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 ¶
func (in *ReplicationSpec) DeepCopy() *ReplicationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationSpec.
func (*ReplicationSpec) DeepCopyInto ¶
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 ¶
func (r *ReplicationSpec) FillWithDefaults()
FillWithDefaults fills the current ReplicationSpec object with DefaultReplicationSpec. This enables having minimal ReplicationSpec objects and provides sensible defaults.
type ReplicationState ¶
type ReplicationState string
const ( ReplicationStateMaster ReplicationState = "Master" ReplicationStateSlave ReplicationState = "Slave" ReplicationStateNotConfigured ReplicationState = "NotConfigured" )
type ReplicationStatus ¶
type ReplicationStatus map[string]ReplicationState
func (ReplicationStatus) DeepCopy ¶
func (in ReplicationStatus) DeepCopy() ReplicationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationStatus.
func (ReplicationStatus) DeepCopyInto ¶
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) HasConfiguredReplica ¶
func (r ReplicationStatus) HasConfiguredReplica() bool
func (ReplicationStatus) IsConfiguredReplica ¶
func (r ReplicationStatus) IsConfiguredReplica(podName string) bool
type ResourceRequirements ¶
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.33/#resourcerequirements-v1-core.
func (*ResourceRequirements) DeepCopy ¶
func (in *ResourceRequirements) DeepCopy() *ResourceRequirements
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceRequirements.
func (*ResourceRequirements) DeepCopyInto ¶
func (in *ResourceRequirements) DeepCopyInto(out *ResourceRequirements)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (ResourceRequirements) ToKubernetesType ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Restore.
func (*Restore) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Restore) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Restore) IsComplete ¶
func (*Restore) SetDefaults ¶
func (*Restore) StagingPVCKey ¶
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 logical backup.
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 ¶
func (r *RestoreSource) IsDefaulted() bool
func (*RestoreSource) SetDefaults ¶
func (r *RestoreSource) SetDefaults(restore *Restore)
func (*RestoreSource) SetDefaultsWithBackup ¶
func (r *RestoreSource) SetDefaultsWithBackup(backup *Backup) error
func (*RestoreSource) TargetRecoveryTimeOrDefault ¶
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 ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new S3.
func (*S3) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SQLTemplate ¶
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 ¶
func (in *SQLTemplate) DeepCopy() *SQLTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SQLTemplate.
func (*SQLTemplate) DeepCopyInto ¶
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 ¶
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.
func (SST) MariaDBFormat ¶
MariaDBFormat formats the SST so it can be used in Galera config files.
type Schedule ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Schedule.
func (*Schedule) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecretKeySelector ¶
type SecretKeySelector struct { LocalObjectReference `json:",inline"` Key string `json:"key"` }
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.33/#secretkeyselector-v1-core. +structType=atomic
func (*SecretKeySelector) DeepCopy ¶
func (in *SecretKeySelector) DeepCopy() *SecretKeySelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretKeySelector.
func (*SecretKeySelector) DeepCopyInto ¶
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 ¶
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 ¶
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.33/#secretvolumesource-v1-core.
func (*SecretVolumeSource) DeepCopy ¶
func (in *SecretVolumeSource) DeepCopy() *SecretVolumeSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretVolumeSource.
func (*SecretVolumeSource) DeepCopyInto ¶
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 ¶
func (v SecretVolumeSource) ToKubernetesType() corev1.SecretVolumeSource
type SecurityContext ¶
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.33/#securitycontext-v1-core.
func (*SecurityContext) DeepCopy ¶
func (in *SecurityContext) DeepCopy() *SecurityContext
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityContext.
func (*SecurityContext) DeepCopyInto ¶
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 ¶
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 ¶
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.33/#serviceport-v1-core
func (*ServicePort) DeepCopy ¶
func (in *ServicePort) DeepCopy() *ServicePort
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServicePort.
func (*ServicePort) DeepCopyInto ¶
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 ¶
func (r ServicePort) ToKubernetesType() corev1.ServicePort
type ServiceRouter ¶
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 ¶
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 ¶
func (in *ServiceTemplate) DeepCopy() *ServiceTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceTemplate.
func (*ServiceTemplate) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SqlJob.
func (*SqlJob) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SqlJob) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*SqlJob) IsComplete ¶
func (*SqlJob) SetDefaults ¶
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 ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Storage.
func (*Storage) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StorageVolumeSource ¶
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.33/#volume-v1-core.
func (*StorageVolumeSource) DeepCopy ¶
func (in *StorageVolumeSource) DeepCopy() *StorageVolumeSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageVolumeSource.
func (*StorageVolumeSource) DeepCopyInto ¶
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 ¶
func (v StorageVolumeSource) ToKubernetesType() corev1.VolumeSource
type SuspendTemplate ¶
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 ¶
func (in *SuspendTemplate) DeepCopy() *SuspendTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SuspendTemplate.
func (*SuspendTemplate) DeepCopyInto ¶
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 ¶
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.33/#tcpsocketaction-v1-core.
func (*TCPSocketAction) DeepCopy ¶
func (in *TCPSocketAction) DeepCopy() *TCPSocketAction
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TCPSocketAction.
func (*TCPSocketAction) DeepCopyInto ¶
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 ¶
func (e TCPSocketAction) ToKubernetesType() corev1.TCPSocketAction
type TLS ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLS.
func (*TLS) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TLSRequirements ¶
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 ¶
func (in *TLSRequirements) DeepCopy() *TLSRequirements
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSRequirements.
func (*TLSRequirements) DeepCopyInto ¶
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 ¶
func (u *TLSRequirements) Validate() error
Validate ensures that TLSRequirements provides legit options.
type TLSS3 ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSS3.
func (*TLSS3) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TopologySpreadConstraint ¶
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.33/#topologyspreadconstraint-v1-core.
func (*TopologySpreadConstraint) DeepCopy ¶
func (in *TopologySpreadConstraint) DeepCopy() *TopologySpreadConstraint
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopologySpreadConstraint.
func (*TopologySpreadConstraint) DeepCopyInto ¶
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 ¶
func (t TopologySpreadConstraint) ToKubernetesType() corev1.TopologySpreadConstraint
type TypedLocalObjectReference ¶
type TypedLocalObjectReference struct { // Name of the referent. // +optional // +operator-sdk:csv:customresourcedefinitions:type=spec Name string `json:"name,omitempty"` // Kind of the referent. // +optional // +operator-sdk:csv:customresourcedefinitions:type=spec Kind string `json:"kind,omitempty"` }
TypedLocalObjectReference is a reference to a specific object type.
func (*TypedLocalObjectReference) DeepCopy ¶
func (in *TypedLocalObjectReference) DeepCopy() *TypedLocalObjectReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TypedLocalObjectReference.
func (*TypedLocalObjectReference) DeepCopyInto ¶
func (in *TypedLocalObjectReference) DeepCopyInto(out *TypedLocalObjectReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*TypedLocalObjectReference) LocalReference ¶
func (r *TypedLocalObjectReference) LocalReference() *LocalObjectReference
LocalReference returns a Kubernetes LocalObjectReference.
type UpdateStrategy ¶
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 ¶
func (in *UpdateStrategy) DeepCopy() *UpdateStrategy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpdateStrategy.
func (*UpdateStrategy) DeepCopyInto ¶
func (in *UpdateStrategy) DeepCopyInto(out *UpdateStrategy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*UpdateStrategy) SetDefaults ¶
func (u *UpdateStrategy) SetDefaults()
SetDefaults sets reasonable defaults.
type UpdateType ¶
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 ¶
func (*User) CleanupPolicy ¶
func (u *User) CleanupPolicy() *CleanupPolicy
func (*User) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new User.
func (*User) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*User) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*User) HostnameOrDefault ¶
func (*User) IndexerFuncForFieldPath ¶
func (u *User) IndexerFuncForFieldPath(fieldPath string) (client.IndexerFunc, error)
IndexerFuncForFieldPath returns an indexer function for a given field path.
func (*User) IsBeingDeleted ¶
func (*User) MariaDBRef ¶
func (u *User) MariaDBRef() *MariaDBRef
func (*User) RequeueInterval ¶
func (*User) RetryInterval ¶
func (*User) UsernameOrDefault ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserList.
func (*UserList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*UserList) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserSpec.
func (*UserSpec) DeepCopyInto ¶
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 ¶
type Volume struct { Name string `json:"name"` VolumeSource `json:",inline"` }
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.33/#volume-v1-core.
func (*Volume) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Volume.
func (*Volume) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (Volume) ToKubernetesType ¶
type VolumeClaimTemplate ¶
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 ¶
func (in *VolumeClaimTemplate) DeepCopy() *VolumeClaimTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeClaimTemplate.
func (*VolumeClaimTemplate) DeepCopyInto ¶
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 ¶
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.33/#volumemount-v1-core.
func (*VolumeMount) DeepCopy ¶
func (in *VolumeMount) DeepCopy() *VolumeMount
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeMount.
func (*VolumeMount) DeepCopyInto ¶
func (in *VolumeMount) DeepCopyInto(out *VolumeMount)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (VolumeMount) ToKubernetesType ¶
func (v VolumeMount) ToKubernetesType() corev1.VolumeMount
type VolumeSource ¶
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.33/#volume-v1-core.
func (*VolumeSource) DeepCopy ¶
func (in *VolumeSource) DeepCopy() *VolumeSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSource.
func (*VolumeSource) DeepCopyInto ¶
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 ¶
func (v VolumeSource) ToKubernetesType() corev1.VolumeSource
type WaitPoint ¶
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 ¶
MariaDBFormat formats the WaitPoint so it can be used in MariaDB config files.
type WeightedPodAffinityTerm ¶
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.33/#weightedpodaffinityterm-v1-core.
func (*WeightedPodAffinityTerm) DeepCopy ¶
func (in *WeightedPodAffinityTerm) DeepCopy() *WeightedPodAffinityTerm
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WeightedPodAffinityTerm.
func (*WeightedPodAffinityTerm) DeepCopyInto ¶
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 ¶
func (p WeightedPodAffinityTerm) ToKubernetesType() corev1.WeightedPodAffinityTerm
Source Files
¶
- backup_keys.go
- backup_types.go
- base_types.go
- condition_types.go
- connection_indexes.go
- connection_types.go
- database_types.go
- event_types.go
- grant_indexes.go
- grant_types.go
- groupversion_info.go
- kubernetes_affinity_types.go
- kubernetes_types.go
- kubernetes_volume_types.go
- mariadb_galera_types.go
- mariadb_indexes.go
- mariadb_keys.go
- mariadb_replication_types.go
- mariadb_types.go
- maxscale_indexes.go
- maxscale_keys.go
- maxscale_types.go
- physicalbackup_keys.go
- physicalbackup_types.go
- restore_keys.go
- restore_types.go
- sqljob_types.go
- user_indexes.go
- user_types.go
- zz_generated.deepcopy.go