v1alpha1

package
v1.16.1 Latest Latest
Warning

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

Go to latest
Published: Jul 8, 2026 License: Apache-2.0 Imports: 29 Imported by: 11

Documentation

Overview

Package v1alpha1 ...

Package v1alpha1 ...

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

Index

Constants

View Source
const (
	// ReadOnlyFinalizer is the finalizer for marking the resource as read-only.
	// User cannot delete resources marked by this finalizer directly.
	ReadOnlyFinalizer = "everest.percona.com/readonly-protection"

	// InUseResourceFinalizer is the finalizer for marking the resource as "in-use"
	// and prevents deletion of the resource.
	InUseResourceFinalizer = "everest.percona.com/in-use-protection"
)
View Source
const (
	// AppStateUnknown is an unknown state.
	AppStateUnknown AppState = "unknown"
	// AppStateCreating is used when the db did not start to initialize yet.
	AppStateCreating AppState = "creating"
	// AppStateInit is a initializing state.
	AppStateInit AppState = "initializing"
	// AppStatePaused is a paused state.
	AppStatePaused AppState = "paused"
	// AppStateReady is a ready state.
	AppStateReady AppState = "ready"
	// AppStateError is an error state.
	AppStateError AppState = "error"
	// AppStateRestoring is a restoring state.
	AppStateRestoring AppState = "restoring"
	// AppStateDeleting is a deleting state.
	AppStateDeleting AppState = "deleting"
	// AppStateUpgrading is an upgrading state.
	AppStateUpgrading AppState = "upgrading"
	// AppStateResizingVolumes is the state when PVCs are being resized.
	AppStateResizingVolumes = "resizingVolumes"
	// AppStateImporting is the state when a data import job is being executed for the cluster.
	AppStateImporting AppState = "importing"
	// AppStateNew represents a newly created cluster that has not yet been reconciled.
	AppStateNew AppState = ""

	// Deprecated: ExposeTypeInternal is an internal expose type. Please use ExposeTypeClusterIP instead
	ExposeTypeInternal ExposeType = "internal"
	// Deprecated: ExposeTypeExternal is an external expose type. Please use ExposeTypeLoadBalancer instead
	ExposeTypeExternal ExposeType = "external"

	// ExposeTypeClusterIP is the ClusterIP expose type.
	ExposeTypeClusterIP ExposeType = "ClusterIP"
	// ExposeTypeLoadBalancer is the LoadBalancer expose type.
	ExposeTypeLoadBalancer ExposeType = "LoadBalancer"
	// ExposeTypeNodePort is the NodePort expose type.
	ExposeTypeNodePort ExposeType = "NodePort"

	// ProxyTypeMongos is a mongos proxy type.
	ProxyTypeMongos ProxyType = "mongos"
	// ProxyTypeHAProxy is a HAProxy proxy type.
	ProxyTypeHAProxy ProxyType = "haproxy"
	// ProxyTypeProxySQL is a ProxySQL proxy type.
	ProxyTypeProxySQL ProxyType = "proxysql"
	// ProxyTypePGBouncer is a PGBouncer proxy type.
	ProxyTypePGBouncer ProxyType = "pgbouncer"
)
View Source
const (
	// ConditionTypeCannotResizeVolume is a condition type that indicates that the volume cannot be resized.
	ConditionTypeCannotResizeVolume = "CannotResizeVolume"
	// ConditionTypeVolumeResizeFailed is a condition type that indicates that the volume resize failed.
	ConditionTypeVolumeResizeFailed = "VolumeResizeFailed"
	// ConditionTypeImportFailed is a condition type that indicates that the data import failed.
	ConditionTypeImportFailed = "ImportFailed"
)
View Source
const (
	// ReasonStorageClassDoesNotSupportExpansion is a reason for condition ConditionTypeCannotExpandStorage
	// when the storage class does not support volume expansion.
	ReasonStorageClassDoesNotSupportExpansion = "StorageClassDoesNotSupportExpansion"
	// ReasonCannotShrinkVolume is a reason for condition ConditionTypeCannotResizeVolume
	// when the volume cannot be shrunk.
	ReasonCannotShrinkVolume = "CannotShrinkVolume"
	// ReasonVolumeResizeFailed is a reason for condition ConditionTypeVolumeResizeFailed
	// when the volume resize failed.
	ReasonVolumeResizeFailed = "VolumeResizeFailed"
	// ReasonDataImportJobFailed is a reason for condition ConditionTypeImportFailed.
	ReasonDataImportJobFailed = "DataImportJobFailed"
)
View Source
const (
	DateFormat      = "2006-01-02T15:04:05Z"
	DateFormatSpace = "2006-01-02 15:04:05"
)

DateFormat is the date format used in the user input.

View Source
const (
	// DBEngineStateNotInstalled represents the state of engine when underlying operator is not installed.
	DBEngineStateNotInstalled EngineState = "not installed"
	// DBEngineStateInstalling represents the state of engine when underlying operator is installing.
	DBEngineStateInstalling EngineState = "installing"
	// DBEngineStateInstalled represents the state of engine when underlying operator is installed.
	DBEngineStateInstalled EngineState = "installed"
	// DBEngineStateUpgrading represents the state of engine when underlying operator is upgrading.
	DBEngineStateUpgrading EngineState = "upgrading"

	// DatabaseEnginePXC represents engine type for PXC clusters.
	DatabaseEnginePXC EngineType = "pxc"
	// DatabaseEnginePSMDB represents engine type for PSMDB clusters.
	DatabaseEnginePSMDB EngineType = "psmdb"
	// DatabaseEnginePostgresql represents engine type for Postgresql clusters.
	DatabaseEnginePostgresql EngineType = "postgresql"

	// DBEngineComponentRecommended represents recommended component status.
	DBEngineComponentRecommended ComponentStatus = "recommended"
	// DBEngineComponentAvailable represents available component status.
	DBEngineComponentAvailable ComponentStatus = "available"
	// DBEngineComponentUnavailable represents unavailable component status.
	DBEngineComponentUnavailable ComponentStatus = "unavailable"
	// DBEngineComponentUnsupported represents unsupported component status.
	DBEngineComponentUnsupported ComponentStatus = "unsupported"
)
View Source
const (
	// PMMMonitoringType represents monitoring via PMM.
	PMMMonitoringType MonitoringType = "pmm"
	// MonitoringConfigCredentialsSecretUsernameKey is the credentials secret's key that contains the username.
	MonitoringConfigCredentialsSecretUsernameKey = "username"
	// MonitoringConfigCredentialsSecretAPIKeyKey is the credentials secret's key that contains the API key.
	MonitoringConfigCredentialsSecretAPIKeyKey = "apiKey"

	// PMM2ClientImage is the image for PMM2 client.
	PMM2ClientImage = "percona/pmm-client:2"
	// PMM3ClientImage is the image for PMM3 client.
	PMM3ClientImage = "percona/pmm-client:3"
)
View Source
const (
	// DBBackupStorageProtectionFinalizer must be set on DatabaseClusterBackup to ensure that storage is NOT cleaned up.
	// By default, this finalizer is not set, and the storage is cleaned up when the backup is deleted.
	DBBackupStorageProtectionFinalizer = "everest.percona.com/dbb-storage-protection"
)
View Source
const (
	// DatabaseOperatorUpgradeLockAnnotation is an annotation set on the database engine.
	// If present, the value should contain the timestamp of when the lock was set.
	// Everest operator automatically removes this annotation (lock) after 5mins.
	// This is done to ensure that the namespace/engine is not locked indefinitely in case an upgrade fails.
	DatabaseOperatorUpgradeLockAnnotation = "everest.percona.com/upgrade-lock"
)

Variables

View Source
var (
	MemorySmallSize  = resource.MustParse("2G")
	MemoryMediumSize = resource.MustParse("8G")
	MemoryLargeSize  = resource.MustParse("32G")
)

Prefefined database engine sizes based on memory.

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

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

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var ErrSchemaValidationFailure = errors.New("schema validation failed")

ErrSchemaValidationFailure is returned when the parameters do not conform to the DataImporter schema defined in .spec.config.

Functions

This section is empty.

Types

type AffinityConfig

type AffinityConfig struct {
	// PXC is the affinity configuration for the PXC DB clusters.
	PXC *PXCAffinityConfig `json:"pxc,omitempty"`
	// PostgreSQL is the affinity configuration for the PostgreSQL DB clusters.
	PostgreSQL *PostgreSQLAffinityConfig `json:"postgresql,omitempty"`
	// PSMDB is the affinity configuration for the PSMDB DB clusters.
	PSMDB *PSMDBAffinityConfig `json:"psmdb,omitempty"`
}

AffinityConfig is a configuration for the affinity settings depending on the engine type. Only one of the fields should be set.

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.

type AppState

type AppState string

AppState is used to represent cluster's state.

func (AppState) WithCreatingState

func (s AppState) WithCreatingState() AppState

WithCreatingState transforms empty and unknown states to a single AppStateCreating. The upstream operators have the different statuses when a cluster is being created - pxc - "unknown", psmdb - "", pg does not have any empty status. Everest maps the DB status 1:1, and there is no point so far to create a separate mapping for each upstream operator separately only because we want to unify AppStateCreating.

type Applier

type Applier interface {
	Paused(paused bool)
	AllowUnsafeConfig()
	Engine() error
	EngineFeatures() error
	Proxy() error
	DataSource() error
	DataImport() error
	Monitoring() error
	PodSchedulingPolicy() error
	Backup() error
	Metadata() error
	ResetDefaults() error
}

Applier provides methods for specifying how to apply a DatabaseCluster CR onto the CR(s) provided by the underlying DB operators (e.g. PerconaXtraDBCluster, PerconaServerMongoDB, PerconaPGCluster, etc.)

+kubebuilder:object:generate=false

type Backup

type Backup struct {
	// Enabled is a flag to enable backups
	// Deprecated. Please use db.spec.backup.schedules[].enabled to control each schedule separately and db.spec.backup.pitr.enabled to control PITR.
	Enabled bool `json:"enabled,omitempty"`
	// Schedules is a list of backup schedules
	Schedules []BackupSchedule `json:"schedules,omitempty"`
	// PITR is the configuration of the point in time recovery
	PITR PITRSpec `json:"pitr,omitempty"`
}

Backup is the backup configuration.

func (*Backup) DeepCopy

func (in *Backup) DeepCopy() *Backup

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

func (*Backup) DeepCopyInto

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

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

type BackupSchedule

type BackupSchedule struct {
	// Enabled is a flag to enable the schedule
	Enabled bool `json:"enabled"`
	// Name is the name of the schedule
	Name string `json:"name"`
	// RetentionCopies is the number of backup copies to retain
	RetentionCopies int32 `json:"retentionCopies,omitempty"`
	// Schedule is the cron schedule
	Schedule string `json:"schedule"`
	// BackupStorageName is the name of the BackupStorage CR that defines the
	// storage location.
	// The BackupStorage must be created in the same namespace as the DatabaseCluster.
	BackupStorageName string `json:"backupStorageName"`
}

BackupSchedule is the backup schedule configuration.

func (*BackupSchedule) DeepCopy

func (in *BackupSchedule) DeepCopy() *BackupSchedule

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

func (*BackupSchedule) DeepCopyInto

func (in *BackupSchedule) DeepCopyInto(out *BackupSchedule)

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

type BackupSource

type BackupSource struct {
	// Path is the path to the backup file/directory.
	// +kubebuilder:validation:Required
	Path string `json:"path"`
	// BackupStorageName is the name of the BackupStorage used for storing backups.
	// The BackupStorage must be created in the same namespace as the DatabaseCluster.
	// +kubebuilder:validation:Required
	BackupStorageName string `json:"backupStorageName"`
}

BackupSource represents settings of a source where to get a backup to run restoration.

func (*BackupSource) DeepCopy

func (in *BackupSource) DeepCopy() *BackupSource

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

func (*BackupSource) DeepCopyInto

func (in *BackupSource) DeepCopyInto(out *BackupSource)

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

type BackupState

type BackupState string

BackupState is used to represent the backup's state.

const (
	BackupNew       BackupState = ""
	BackupStarting  BackupState = "Starting"
	BackupRunning   BackupState = "Running"
	BackupFailed    BackupState = "Failed"
	BackupSucceeded BackupState = "Succeeded"
	BackupDeleting  BackupState = "Deleting"
)

Known Backup states.

func GetDBBackupState

func GetDBBackupState(upstreamBkp client.Object) BackupState

GetDBBackupState returns the backup state from the upstream backup object.

type BackupStorage

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

	Spec BackupStorageSpec `json:"spec,omitempty"`
	// +kubebuilder:default={"inUse": false}
	Status BackupStorageStatus `json:"status,omitempty"`
}

BackupStorage is the Schema for the backupstorages API.

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) DeepCopyObject

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

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

func (*BackupStorage) DeleteUsedNamespace

func (b *BackupStorage) DeleteUsedNamespace(namespace string) bool

DeleteUsedNamespace deletes the namespace from the usedNamespaces list.

func (*BackupStorage) UpdateNamespacesList

func (b *BackupStorage) UpdateNamespacesList(namespace string) bool

UpdateNamespacesList updates the list of namespaces that use the backupStorage.

type BackupStorageList

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

BackupStorageList contains a list of BackupStorage.

func (*BackupStorageList) DeepCopy

func (in *BackupStorageList) DeepCopy() *BackupStorageList

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

func (*BackupStorageList) DeepCopyInto

func (in *BackupStorageList) DeepCopyInto(out *BackupStorageList)

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

func (*BackupStorageList) DeepCopyObject

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

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

type BackupStorageProviderSpec

type BackupStorageProviderSpec struct {
	// A container name is a valid DNS name that conforms to the Azure naming rules.
	ContainerName string `json:"containerName,omitempty"`

	Bucket            string `json:"bucket,omitempty"`
	Prefix            string `json:"prefix,omitempty"`
	CredentialsSecret string `json:"credentialsSecret"`
	Region            string `json:"region,omitempty"`
	EndpointURL       string `json:"endpointUrl,omitempty"`

	// STANDARD, NEARLINE, COLDLINE, ARCHIVE for GCP
	// Hot (Frequently accessed or modified data), Cool (Infrequently accessed or modified data), Archive (Rarely accessed or modified data) for Azure.
	StorageClass string `json:"storageClass,omitempty"`
}

BackupStorageProviderSpec represents set of settings to configure cloud provider.

func (*BackupStorageProviderSpec) DeepCopy

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

func (*BackupStorageProviderSpec) DeepCopyInto

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

type BackupStorageSpec

type BackupStorageSpec struct {
	// Type is a type of backup storage.
	// +kubebuilder:validation:Enum=s3;azure
	Type BackupStorageType `json:"type"`
	// Bucket is a name of bucket.
	Bucket string `json:"bucket"`
	// Region is a region where the bucket is located.
	Region string `json:"region,omitempty"`
	// EndpointURL is an endpoint URL of backup storage.
	EndpointURL string `json:"endpointURL,omitempty"`
	// VerifyTLS is set to ensure TLS/SSL verification.
	// If unspecified, the default value is true.
	//
	// +kubebuilder:default:=true
	VerifyTLS *bool `json:"verifyTLS,omitempty"`
	// ForcePathStyle is set to use path-style URLs.
	// If unspecified, the default value is false.
	//
	// +kubebuilder:default:=false
	ForcePathStyle *bool `json:"forcePathStyle,omitempty"`

	// Description stores description of a backup storage.
	Description string `json:"description,omitempty"`
	// CredentialsSecretName is the name of the secret with credentials.
	CredentialsSecretName string `json:"credentialsSecretName"`
	// AllowedNamespaces is the list of namespaces where the operator will copy secrets provided in the CredentialsSecretsName.
	//
	// Deprecated: BackupStorages are now used only in the namespaces where they are created.
	AllowedNamespaces []string `json:"allowedNamespaces,omitempty"`
}

BackupStorageSpec defines the desired state of BackupStorage.

func (*BackupStorageSpec) DeepCopy

func (in *BackupStorageSpec) DeepCopy() *BackupStorageSpec

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

func (*BackupStorageSpec) DeepCopyInto

func (in *BackupStorageSpec) DeepCopyInto(out *BackupStorageSpec)

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

type BackupStorageStatus

type BackupStorageStatus struct {
	// Deprecated: BackupStorages are now used only in the namespaces where they are created.
	UsedNamespaces map[string]bool `json:"usedNamespaces,omitempty"`
	// InUse is a flag that indicates if any DB cluster uses the backup storage.
	// +kubebuilder:default=false
	InUse bool `json:"inUse,omitempty"`
	// LastObservedGeneration is the most recent generation observed for this BackupStorage.
	LastObservedGeneration int64 `json:"lastObservedGeneration,omitempty"`
}

BackupStorageStatus defines the observed state of BackupStorage.

func (*BackupStorageStatus) DeepCopy

func (in *BackupStorageStatus) DeepCopy() *BackupStorageStatus

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

func (*BackupStorageStatus) DeepCopyInto

func (in *BackupStorageStatus) DeepCopyInto(out *BackupStorageStatus)

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

type BackupStorageType

type BackupStorageType string

BackupStorageType is a type of backup storage.

const (
	// BackupStorageTypeS3 is a type of S3 object storage.
	BackupStorageTypeS3 BackupStorageType = "s3"
	// BackupStorageTypeAzure is a type of azure blob storage.
	BackupStorageTypeAzure BackupStorageType = "azure"
)

type Component

type Component struct {
	Critical  bool            `json:"critical,omitempty"`
	ImageHash string          `json:"imageHash,omitempty"`
	ImagePath string          `json:"imagePath,omitempty"`
	Status    ComponentStatus `json:"status,omitempty"`
}

Component contains information of the database engine component. Database Engine component can be database engine, database proxy or tools image path.

func (*Component) DeepCopy

func (in *Component) DeepCopy() *Component

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

func (*Component) DeepCopyInto

func (in *Component) DeepCopyInto(out *Component)

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

type ComponentStatus

type ComponentStatus string

ComponentStatus represents status of the database engine component.

type ComponentsMap

type ComponentsMap map[string]*Component

ComponentsMap is a map of database engine components.

func (ComponentsMap) BestVersion

func (c ComponentsMap) BestVersion() string

BestVersion returns the best version for the components map. In case no versions are found, it returns an empty string.

func (ComponentsMap) DeepCopy

func (in ComponentsMap) DeepCopy() ComponentsMap

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

func (ComponentsMap) DeepCopyInto

func (in ComponentsMap) DeepCopyInto(out *ComponentsMap)

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

func (ComponentsMap) FilterStatus

func (c ComponentsMap) FilterStatus(statuses ...ComponentStatus) ComponentsMap

FilterStatus returns a new ComponentsMap with components filtered by status.

func (ComponentsMap) GetAllowedVersionsSorted

func (c ComponentsMap) GetAllowedVersionsSorted() []string

GetAllowedVersionsSorted returns a sorted slice of allowed versions. An allowed version is a version whose status is either recommended or available. Allowed versions are sorted by status, with recommended versions first, followed by available versions. Versions with the same status are sorted by version in descending order. Most recent version is first.

func (ComponentsMap) GetSortedVersions

func (c ComponentsMap) GetSortedVersions() []string

GetSortedVersions returns a sorted slice of versions. Versions are sorted in descending order. Most recent version is first.

type ConfigServer

type ConfigServer struct {
	// Replicas is the amount of configServers
	// +kubebuilder:validation:Minimum:=1
	Replicas int32 `json:"replicas"`
}

ConfigServer represents the sharding configuration server settings.

func (*ConfigServer) DeepCopy

func (in *ConfigServer) DeepCopy() *ConfigServer

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

func (*ConfigServer) DeepCopyInto

func (in *ConfigServer) DeepCopyInto(out *ConfigServer)

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

type DataImportJob

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

	Spec   DataImportJobSpec   `json:"spec,omitempty"`
	Status DataImportJobStatus `json:"status,omitempty"`
}

DataImportJob is the schema for the dataimportjobs API.

func (*DataImportJob) DeepCopy

func (in *DataImportJob) DeepCopy() *DataImportJob

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

func (*DataImportJob) DeepCopyInto

func (in *DataImportJob) DeepCopyInto(out *DataImportJob)

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

func (*DataImportJob) DeepCopyObject

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

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

type DataImportJobList

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

DataImportJobList contains a list of DataImportJob. +kubebuilder:object:root=true

func (*DataImportJobList) DeepCopy

func (in *DataImportJobList) DeepCopy() *DataImportJobList

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

func (*DataImportJobList) DeepCopyInto

func (in *DataImportJobList) DeepCopyInto(out *DataImportJobList)

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

func (*DataImportJobList) DeepCopyObject

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

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

type DataImportJobS3Source

type DataImportJobS3Source struct {
	// Bucket is the name of the S3 bucket.
	// +kubebuilder:validation:Required
	Bucket string `json:"bucket,omitempty"`
	// Region is the region of the S3 bucket.
	// +kubebuilder:validation:Required
	Region string `json:"region,omitempty"`
	// EndpointURL is an endpoint URL of backup storage.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="isURL(self)",message="endpointURL must be a valid URL"
	EndpointURL string `json:"endpointURL,omitempty"`
	// VerifyTLS is set to ensure TLS/SSL verification.
	// If unspecified, the default value is true.
	//
	// +kubebuilder:default:=true
	VerifyTLS *bool `json:"verifyTLS,omitempty"`
	// ForcePathStyle is set to use path-style URLs.
	// If unspecified, the default value is false.
	//
	// +kubebuilder:default:=false
	ForcePathStyle *bool `json:"forcePathStyle,omitempty"`
	// CredentialsSecreName is the reference to the secret containing the S3 credentials.
	// The Secret must contain the keys `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`.
	// +kubebuilder:validation:Required
	CredentialsSecretName string `json:"credentialsSecretName,omitempty"`

	// AccessKeyID allows specifying the S3 access key ID inline.
	// It is provided as a write-only input field for convenience.
	// When this field is set, a webhook writes this value in the Secret specified by `credentialsSecretName`
	// and empties this field.
	// This field is not stored in the API.
	// +optional
	AccessKeyID string `json:"accessKeyId,omitempty"`
	// SecretAccessKey allows specifying the S3 secret access key inline.
	// It is provided as a write-only input field for convenience.
	// When this field is set, a webhook writes this value in the Secret specified by `credentialsSecretName`
	// and empties this field.
	// This field is not stored in the API.
	// +optional
	SecretAccessKey string `json:"secretAccessKey,omitempty"`
}

DataImportJobS3Source defines the S3 source for the data import job.

func (*DataImportJobS3Source) DeepCopy

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

func (*DataImportJobS3Source) DeepCopyInto

func (in *DataImportJobS3Source) DeepCopyInto(out *DataImportJobS3Source)

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

type DataImportJobSource

type DataImportJobSource struct {
	// S3 contains the S3 information for the data import.
	// +optional
	S3 *DataImportJobS3Source `json:"s3,omitempty"`
	// Path is the path to the directory to import the data from.
	// This may be a path to a file or a directory, depending on the data importer.
	// Only absolute file paths are allowed. Leading and trailing '/' are optional.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self.matches('^/?([^/]+(/[^/]+)*)/?$')",message="path must be an absolute file or directory path"
	Path string `json:"path,omitempty"`
}

DataImportJobSource defines the source of the data to import.

func (*DataImportJobSource) DeepCopy

func (in *DataImportJobSource) DeepCopy() *DataImportJobSource

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

func (*DataImportJobSource) DeepCopyInto

func (in *DataImportJobSource) DeepCopyInto(out *DataImportJobSource)

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

type DataImportJobSpec

type DataImportJobSpec struct {
	// TargetClusterName is the reference to the target cluster.
	// +kubebuilder:validation:Required
	TargetClusterName      string `json:"targetClusterName,omitempty"`
	*DataImportJobTemplate `json:",inline"`
}

DataImportJobSpec defines the desired state of DataImportJob.

func (*DataImportJobSpec) DeepCopy

func (in *DataImportJobSpec) DeepCopy() *DataImportJobSpec

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

func (*DataImportJobSpec) DeepCopyInto

func (in *DataImportJobSpec) DeepCopyInto(out *DataImportJobSpec)

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

type DataImportJobState

type DataImportJobState string

DataImportJobState is a type representing the state of a data import job.

const (
	// DataImportJobStatePending indicates that the data import job is pending.
	DataImportJobStatePending DataImportJobState = "Pending"
	// DataImportJobStateRunning indicates that the data import job is currently running.
	DataImportJobStateRunning DataImportJobState = "Running"
	// DataImportJobStateSucceeded indicates that the data import job has completed successfully.
	DataImportJobStateSucceeded DataImportJobState = "Succeeded"
	// DataImportJobStateFailed indicates that the data import job has failed.
	// Once the job is in this phase, it cannot be retried.
	DataImportJobStateFailed DataImportJobState = "Failed"
	// DataImportJobStateError indicates that the data import job has encountered an error.
	// This phase is used for transient errors that may allow the job to be retried.
	DataImportJobStateError DataImportJobState = "Error"
)

type DataImportJobStatus

type DataImportJobStatus struct {
	// StartedAt is the time when the data import job started.
	StartedAt *metav1.Time `json:"startedAt,omitempty"`
	// CompletedAt is the time when the data import job completed successfully.
	CompletedAt *metav1.Time `json:"completedAt,omitempty"`
	// LastObservedGeneration is the last observed generation of the data import job.
	LastObservedGeneration int64 `json:"lastObservedGeneration,omitempty"`
	// State is the current state of the data import job.
	State DataImportJobState `json:"state,omitempty"`
	// Message is the message of the data import job.
	Message string `json:"message,omitempty"`
	// JobName is the reference to the job that is running the data import.
	// +optional
	JobName string `json:"jobName,omitempty"`
}

DataImportJobStatus defines the observed state of DataImportJob.

func (*DataImportJobStatus) DeepCopy

func (in *DataImportJobStatus) DeepCopy() *DataImportJobStatus

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

func (*DataImportJobStatus) DeepCopyInto

func (in *DataImportJobStatus) DeepCopyInto(out *DataImportJobStatus)

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

type DataImportJobTemplate

type DataImportJobTemplate struct {
	// DataImporterName is the data importer to use for the import.
	// +kubebuilder:validation:Required
	DataImporterName string `json:"dataImporterName,omitempty"`
	// Source is the source of the data to import.
	// +kubebuilder:validation:Required
	Source *DataImportJobSource `json:"source,omitempty"`
	// Config defines the configuration for the data import job.
	// These options are specific to the DataImporter being used and must conform to
	// the schema defined in the DataImporter's .spec.config.openAPIV3Schema.
	// +kubebuilder:pruning:PreserveUnknownFields
	// +optional
	Config *runtime.RawExtension `json:"config,omitempty"`
}

DataImportJobTemplate defines a shared template for the data import job.

func (*DataImportJobTemplate) DeepCopy

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

func (*DataImportJobTemplate) DeepCopyInto

func (in *DataImportJobTemplate) DeepCopyInto(out *DataImportJobTemplate)

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

type DataImporter

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

	Spec   DataImporterSpec   `json:"spec,omitempty"`
	Status DataImporterStatus `json:"status,omitempty"`
}

DataImporter defines a reusable strategy for importing data into a DatabaseCluster.

func (*DataImporter) DeepCopy

func (in *DataImporter) DeepCopy() *DataImporter

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

func (*DataImporter) DeepCopyInto

func (in *DataImporter) DeepCopyInto(out *DataImporter)

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

func (*DataImporter) DeepCopyObject

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

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

type DataImporterConfig

type DataImporterConfig struct {
	// OpenAPIV3Schema is the OpenAPI v3 schema of the data importer.
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Schemaless
	// +optional
	OpenAPIV3Schema *apiextensionsv1.JSONSchemaProps `json:"openAPIV3Schema,omitempty"`
}

DataImporterConfig contains additional configuration defined for the data importer.

func (*DataImporterConfig) DeepCopy

func (in *DataImporterConfig) DeepCopy() *DataImporterConfig

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

func (*DataImporterConfig) DeepCopyInto

func (in *DataImporterConfig) DeepCopyInto(out *DataImporterConfig)

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

func (*DataImporterConfig) Validate

func (cfg *DataImporterConfig) Validate(params *runtime.RawExtension) error

Validate the config for the data importer.

type DataImporterDatabaseClusterConstraints

type DataImporterDatabaseClusterConstraints struct {
	// RequiredFields contains a list of fields that must be set in the DatabaseCluster spec.
	// Each key is a JSON path expressions that points to a field in the DatabaseCluster spec.
	// For example, ".spec.engine.type" or ".spec.dataSource.dataImport.config.someField".
	// +optional
	RequiredFields []string `json:"requiredFields,omitempty"`
}

DataImporterDatabaseClusterConstraints defines compatibility requirements and prerequisites that must be satisfied by a DatabaseCluster before this data importer can be used with it.

func (*DataImporterDatabaseClusterConstraints) DeepCopy

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

func (*DataImporterDatabaseClusterConstraints) DeepCopyInto

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

type DataImporterJobSpec

type DataImporterJobSpec struct {
	// Image is the image of the data importer.
	Image string `json:"image,omitempty"`
	// Command is the command to run the data importer.
	// +optional
	Command []string `json:"command,omitempty"`
}

DataImporterJobSpec defines the specification for the Kubernetes job.

func (*DataImporterJobSpec) DeepCopy

func (in *DataImporterJobSpec) DeepCopy() *DataImporterJobSpec

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

func (*DataImporterJobSpec) DeepCopyInto

func (in *DataImporterJobSpec) DeepCopyInto(out *DataImporterJobSpec)

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

type DataImporterList

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

DataImporterList contains a list of DataImporter. +kubebuilder:object:root=true

func (*DataImporterList) DeepCopy

func (in *DataImporterList) DeepCopy() *DataImporterList

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

func (*DataImporterList) DeepCopyInto

func (in *DataImporterList) DeepCopyInto(out *DataImporterList)

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

func (*DataImporterList) DeepCopyObject

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

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

type DataImporterSpec

type DataImporterSpec struct {
	// DisplayName is a human-readable name for the data importer.
	DisplayName string `json:"displayName,omitempty"`
	// Description is the description of the data importer.
	Description string `json:"description,omitempty"`
	// SupportedEngines is the list of engines that the data importer supports.
	SupportedEngines EngineList `json:"supportedEngines,omitempty"`
	// Config contains additional configuration defined for the data importer.
	Config DataImporterConfig `json:"config,omitempty"`
	// JobSpec is the specification of the data importer job.
	JobSpec DataImporterJobSpec `json:"jobSpec,omitempty"`
	// DatabaseClusterConstraints defines compatibility requirements and prerequisites that must be satisfied
	// by a DatabaseCluster before this data importer can be used with it. This allows the data importer to
	// express specific requirements about the database configuration needed for successful import operations,
	// such as required database fields, specific engine configurations, or other database properties.
	// When a DatabaseCluster references this data importer, the operator will validate the DatabaseCluster
	// against these constraints before proceeding with the import operation.
	// +optional
	DatabaseClusterConstraints DataImporterDatabaseClusterConstraints `json:"databaseClusterConstraints,omitempty"`
	// Permissions defines the permissions required by the data importer.
	// These permissions are used to generate a Role for the data importer job.
	// +optional
	Permissions []rbacv1.PolicyRule `json:"permissions,omitempty"`
	// ClusterPermissions defines the cluster-wide permissions required by the data importer.
	// These permissions are used to generate a ClusterRole for the data importer job.
	// +optional
	ClusterPermissions []rbacv1.PolicyRule `json:"clusterPermissions,omitempty"`
}

DataImporterSpec defines the specification of a DataImporter.

func (*DataImporterSpec) DeepCopy

func (in *DataImporterSpec) DeepCopy() *DataImporterSpec

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

func (*DataImporterSpec) DeepCopyInto

func (in *DataImporterSpec) DeepCopyInto(out *DataImporterSpec)

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

type DataImporterStatus

type DataImporterStatus struct{}

DataImporterStatus defines the status of the DataImporter.

func (*DataImporterStatus) DeepCopy

func (in *DataImporterStatus) DeepCopy() *DataImporterStatus

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

func (*DataImporterStatus) DeepCopyInto

func (in *DataImporterStatus) DeepCopyInto(out *DataImporterStatus)

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

type DataSource

type DataSource struct {
	// DBClusterBackupName is the name of the DB cluster backup to restore from
	DBClusterBackupName string `json:"dbClusterBackupName,omitempty"`
	// BackupSource is the backup source to restore from
	BackupSource *BackupSource `json:"backupSource,omitempty"`
	// PITR is the point-in-time recovery configuration
	PITR *PITR `json:"pitr,omitempty"`
	// DataImport allows importing data from an external backup source.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message=".spec.dataSource.dataImport is immutable"
	DataImport *DataImportJobTemplate `json:"dataImport,omitempty"`
}

DataSource is the data source configuration.

func (*DataSource) DeepCopy

func (in *DataSource) DeepCopy() *DataSource

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

func (*DataSource) DeepCopyInto

func (in *DataSource) DeepCopyInto(out *DataSource)

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

func (*DataSource) IntoDBRestoreDataSource

func (in *DataSource) IntoDBRestoreDataSource() DatabaseClusterRestoreDataSource

IntoDBRestoreDataSource converts the DataSource into a DatabaseClusterRestoreDataSource.

type DatabaseCluster

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

	Spec   DatabaseClusterSpec   `json:"spec,omitempty"`
	Status DatabaseClusterStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:shortName=db;dbc;dbcluster +kubebuilder:printcolumn:name="Size",type="string",JSONPath=".status.size" +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.ready" +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.status" +kubebuilder:printcolumn:name="Hostname",type="string",JSONPath=".status.hostname" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:validation:XValidation:rule="!has(self.?status.recommendedCRVersion) || self.spec.engine.version == oldSelf.spec.engine.version",message="engine version may not be updated when a CRVersion update is pending"

DatabaseCluster is the Schema for the databaseclusters API.

func (*DatabaseCluster) CanRestoreFromBackup added in v1.11.0

func (dbc *DatabaseCluster) CanRestoreFromBackup() bool

CanRestoreFromBackup returns true if the cluster can be restored from a backup in the current state.

func (*DatabaseCluster) DeepCopy

func (in *DatabaseCluster) DeepCopy() *DatabaseCluster

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

func (*DatabaseCluster) DeepCopyInto

func (in *DatabaseCluster) DeepCopyInto(out *DatabaseCluster)

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

func (*DatabaseCluster) DeepCopyObject

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

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

type DatabaseClusterBackup

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

	Spec   DatabaseClusterBackupSpec   `json:"spec,omitempty"`
	Status DatabaseClusterBackupStatus `json:"status,omitempty"`
}

DatabaseClusterBackup is the Schema for the databaseclusterbackups API.

func (*DatabaseClusterBackup) DeepCopy

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

func (*DatabaseClusterBackup) DeepCopyInto

func (in *DatabaseClusterBackup) DeepCopyInto(out *DatabaseClusterBackup)

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

func (*DatabaseClusterBackup) DeepCopyObject

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

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

func (*DatabaseClusterBackup) HasCompleted

func (b *DatabaseClusterBackup) HasCompleted() bool

HasCompleted returns true if the backup has completed.

func (*DatabaseClusterBackup) HasFailed

func (b *DatabaseClusterBackup) HasFailed() bool

HasFailed returns true if the backup has failed.

func (*DatabaseClusterBackup) HasSucceeded

func (b *DatabaseClusterBackup) HasSucceeded() bool

HasSucceeded returns true if the backup has succeeded.

func (*DatabaseClusterBackup) IsInProgress added in v1.11.0

func (b *DatabaseClusterBackup) IsInProgress() bool

IsInProgress returns true if the backup process is in progress.

type DatabaseClusterBackupList

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

DatabaseClusterBackupList contains a list of DatabaseClusterBackup.

func (*DatabaseClusterBackupList) DeepCopy

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

func (*DatabaseClusterBackupList) DeepCopyInto

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

func (*DatabaseClusterBackupList) DeepCopyObject

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

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

type DatabaseClusterBackupSpec

type DatabaseClusterBackupSpec struct {
	// DBClusterName is the original database cluster name.
	DBClusterName string `json:"dbClusterName"`
	// BackupStorageName is the name of the BackupStorage used for backups.
	// The BackupStorage must be created in the same namespace as the DatabaseCluster.
	BackupStorageName string `json:"backupStorageName"`
}

DatabaseClusterBackupSpec defines the desired state of DatabaseClusterBackup.

func (*DatabaseClusterBackupSpec) DeepCopy

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

func (*DatabaseClusterBackupSpec) DeepCopyInto

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

type DatabaseClusterBackupStatus

type DatabaseClusterBackupStatus struct {
	// Size is the size of the backup.
	Size *string `json:"size,omitempty"`
	// Created is the timestamp of the upstream backup's creation.
	CreatedAt *metav1.Time `json:"created,omitempty"`
	// Completed is the time when the job was completed.
	CompletedAt *metav1.Time `json:"completed,omitempty"`
	// State is the DatabaseBackup state.
	State BackupState `json:"state,omitempty"`
	// Destination is the full path to the backup.
	Destination *string `json:"destination,omitempty"`
	// Gaps identifies if there are gaps detected in the PITR logs
	Gaps bool `json:"gaps"`
	// LatestRestorableTime is the latest time that can be used for PITR restore
	LatestRestorableTime *metav1.Time `json:"latestRestorableTime,omitempty"`
	// InUse is a flag that indicates if this restore resource is being used to restore DB cluster from backup.
	// +kubebuilder:default=false
	InUse bool `json:"inUse,omitempty"`
}

DatabaseClusterBackupStatus defines the observed state of DatabaseClusterBackup.

func (*DatabaseClusterBackupStatus) DeepCopy

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

func (*DatabaseClusterBackupStatus) DeepCopyInto

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

type DatabaseClusterList

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

DatabaseClusterList contains a list of DatabaseCluster.

func (*DatabaseClusterList) DeepCopy

func (in *DatabaseClusterList) DeepCopy() *DatabaseClusterList

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

func (*DatabaseClusterList) DeepCopyInto

func (in *DatabaseClusterList) DeepCopyInto(out *DatabaseClusterList)

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

func (*DatabaseClusterList) DeepCopyObject

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

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

type DatabaseClusterRestore

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

	Spec   DatabaseClusterRestoreSpec   `json:"spec,omitempty"`
	Status DatabaseClusterRestoreStatus `json:"status,omitempty"`
}

DatabaseClusterRestore is the Schema for the databaseclusterrestores API.

func (*DatabaseClusterRestore) DeepCopy

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

func (*DatabaseClusterRestore) DeepCopyInto

func (in *DatabaseClusterRestore) DeepCopyInto(out *DatabaseClusterRestore)

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

func (*DatabaseClusterRestore) DeepCopyObject

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

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

func (*DatabaseClusterRestore) IsComplete

func (r *DatabaseClusterRestore) IsComplete() bool

IsComplete indicates if the restoration process is complete (regardless successful or not).

func (*DatabaseClusterRestore) IsInProgress

func (r *DatabaseClusterRestore) IsInProgress() bool

IsInProgress indicates if the restoration process is in progress.

type DatabaseClusterRestoreDataSource

type DatabaseClusterRestoreDataSource struct {
	// DBClusterBackupName is the name of the DB cluster backup to restore from.
	// Shall be set either this field or BackupSource.
	// +kubebuilder:validation:Optional
	DBClusterBackupName string `json:"dbClusterBackupName,omitempty"`
	// BackupSource is the backup source to restore from.
	// Shall be set either this field or DBClusterBackupName.
	// +kubebuilder:validation:Optional
	BackupSource *BackupSource `json:"backupSource,omitempty"`
	// PITR is the point-in-time recovery configuration.
	// May be set in addition to DBClusterBackupName or BackupSource to perform PITR restore.
	// +kubebuilder:validation:Optional
	PITR *PITR `json:"pitr,omitempty"`
}

DatabaseClusterRestoreDataSource defines a data source for restoration.

func (*DatabaseClusterRestoreDataSource) DeepCopy

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

func (*DatabaseClusterRestoreDataSource) DeepCopyInto

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

func (*DatabaseClusterRestoreDataSource) IntoDataSource

func (in *DatabaseClusterRestoreDataSource) IntoDataSource() *DataSource

IntoDataSource converts the DatabaseClusterRestoreDataSource into a DataSource.

type DatabaseClusterRestoreList

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

DatabaseClusterRestoreList contains a list of DatabaseClusterRestore.

func (*DatabaseClusterRestoreList) DeepCopy

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

func (*DatabaseClusterRestoreList) DeepCopyInto

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

func (*DatabaseClusterRestoreList) DeepCopyObject

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

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

type DatabaseClusterRestoreSpec

type DatabaseClusterRestoreSpec struct {
	// DBClusterName defines the target database cluster name that needs to be restored from backup.
	// +kubebuilder:validation:Required
	DBClusterName string `json:"dbClusterName"`
	// DataSource defines a data source for restoration.
	// +kubebuilder:validation:Required
	DataSource DatabaseClusterRestoreDataSource `json:"dataSource"`
}

DatabaseClusterRestoreSpec defines the desired state of DatabaseClusterRestore.

func (*DatabaseClusterRestoreSpec) DeepCopy

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

func (*DatabaseClusterRestoreSpec) DeepCopyInto

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

type DatabaseClusterRestoreStatus

type DatabaseClusterRestoreStatus struct {
	State       RestoreState `json:"state,omitempty"`
	CompletedAt *metav1.Time `json:"completed,omitempty"`
	Message     string       `json:"message,omitempty"`
	// InUse is a flag that indicates if this restore resource is being used to restore DB cluster from backup.
	// +kubebuilder:default=false
	InUse bool `json:"inUse,omitempty"`
}

DatabaseClusterRestoreStatus defines the observed state of DatabaseClusterRestore.

func (*DatabaseClusterRestoreStatus) DeepCopy

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

func (*DatabaseClusterRestoreStatus) DeepCopyInto

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

type DatabaseClusterSpec

type DatabaseClusterSpec struct {
	// Paused is a flag to stop the cluster
	Paused bool `json:"paused,omitempty"`
	// AllowUnsafeConfiguration field used to ensure that the user can create configurations unfit for production use.
	//
	// Deprecated: AllowUnsafeConfiguration will not be supported in the future releases.
	AllowUnsafeConfiguration bool `json:"allowUnsafeConfiguration,omitempty"`
	// Engine is the database engine specification
	Engine Engine `json:"engine"`
	// Proxy is the proxy specification. If not set, an appropriate
	// proxy specification will be applied for the given engine. A
	// common use case for setting this field is to control the
	// external access to the database cluster.
	Proxy Proxy `json:"proxy,omitempty"`
	// DataSource defines a data source for bootstraping a new cluster
	DataSource *DataSource `json:"dataSource,omitempty"`
	// Backup is the backup specification
	Backup Backup `json:"backup,omitempty"`
	// Monitoring is the monitoring configuration
	Monitoring *Monitoring `json:"monitoring,omitempty"`
	// Sharding is the sharding configuration. PSMDB-only
	Sharding *Sharding `json:"sharding,omitempty"`
	// PodSchedulingPolicyName is the name of the PodSchedulingPolicy CR that defines rules for DB cluster pods allocation across the cluster.
	PodSchedulingPolicyName string `json:"podSchedulingPolicyName,omitempty"`
	// EngineFeatures represents configuration of additional features for the database engine.
	EngineFeatures *EngineFeatures `json:"engineFeatures,omitempty"`
}

DatabaseClusterSpec defines the desired state of DatabaseCluster.

func (*DatabaseClusterSpec) DeepCopy

func (in *DatabaseClusterSpec) DeepCopy() *DatabaseClusterSpec

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

func (*DatabaseClusterSpec) DeepCopyInto

func (in *DatabaseClusterSpec) DeepCopyInto(out *DatabaseClusterSpec)

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

type DatabaseClusterStatus

type DatabaseClusterStatus struct {
	// ObservedGeneration is the most recent generation observed for this DatabaseCluster.
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
	// Status is the status of the cluster
	Status AppState `json:"status,omitempty"`
	// Hostname is the hostname where the cluster can be reached
	Hostname string `json:"hostname,omitempty"`
	// Port is the port where the cluster can be reached
	Port int32 `json:"port,omitempty"`
	// Ready is the number of ready pods
	Ready int32 `json:"ready,omitempty"`
	// Size is the total number of pods
	Size int32 `json:"size,omitempty"`
	// Message is extra information about the cluster
	Message string `json:"message,omitempty"`
	// ActiveStorage is the storage used in cluster (psmdb only)
	ActiveStorage string `json:"activeStorage,omitempty"`
	// CRVersion is the observed version of the CR used with the underlying operator.
	CRVersion string `json:"crVersion,omitempty"`
	// RecommendedCRVersion indicates the target version that the underlying CR should be updated to.
	// When this field is set, it means the CR is running an outdated version and requires an update.
	// The following restrictions apply until the CR is updated to the recommended version:
	// - The operator cannot be upgraded
	// - The database engine version (.spec.engine.version) cannot be modified
	// This field is unset when the CR is already running at the latest recommended version.
	RecommendedCRVersion *string `json:"recommendedCRVersion,omitempty"`
	// Details provides full status of the upstream cluster as a plain text.
	Details string `json:"details,omitempty"`
	// DataImportJobName refers to the DataImportJob that is used to import data into the cluster.
	// This is set only when .spec.dataSource.dataImport is set.
	// +optional
	DataImportJobName *string `json:"dataImportJobName,omitempty"`
	// Conditions contains the observed conditions of the DatabaseCluster.
	Conditions     []metav1.Condition    `json:"conditions,omitempty"`
	EngineFeatures *EngineFeaturesStatus `json:"engineFeatures,omitempty"`
}

DatabaseClusterStatus defines the observed state of DatabaseCluster.

func (*DatabaseClusterStatus) DeepCopy

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

func (*DatabaseClusterStatus) DeepCopyInto

func (in *DatabaseClusterStatus) DeepCopyInto(out *DatabaseClusterStatus)

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

type DatabaseEngine

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

	Spec   DatabaseEngineSpec   `json:"spec,omitempty"`
	Status DatabaseEngineStatus `json:"status,omitempty"`
}

DatabaseEngine is the Schema for the databaseengines API.

func (*DatabaseEngine) BestBackupVersion

func (d *DatabaseEngine) BestBackupVersion(engineVersion string) string

BestBackupVersion returns the best backup version for a given engine version.

func (*DatabaseEngine) BestEngineVersion

func (d *DatabaseEngine) BestEngineVersion() string

BestEngineVersion returns the best engine version for the database engine.

func (*DatabaseEngine) DeepCopy

func (in *DatabaseEngine) DeepCopy() *DatabaseEngine

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

func (*DatabaseEngine) DeepCopyInto

func (in *DatabaseEngine) DeepCopyInto(out *DatabaseEngine)

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

func (*DatabaseEngine) DeepCopyObject

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

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

type DatabaseEngineList

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

DatabaseEngineList contains a list of DatabaseEngine.

func (*DatabaseEngineList) DeepCopy

func (in *DatabaseEngineList) DeepCopy() *DatabaseEngineList

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

func (*DatabaseEngineList) DeepCopyInto

func (in *DatabaseEngineList) DeepCopyInto(out *DatabaseEngineList)

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

func (*DatabaseEngineList) DeepCopyObject

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

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

func (*DatabaseEngineList) EngineTypes

func (del *DatabaseEngineList) EngineTypes() []EngineType

EngineTypes returns the names of all database engines in the list.

func (*DatabaseEngineList) Get

func (del *DatabaseEngineList) Get(dbEngineName EngineType) (DatabaseEngine, bool)

Get checks if the list contains the specified db engine and returns it.

type DatabaseEngineSpec

type DatabaseEngineSpec struct {
	Type            EngineType `json:"type"`
	AllowedVersions []string   `json:"allowedVersions,omitempty"`
	// SecretKeys contains the definition of the various Secrets that
	// the given DBEngine supports.
	// This information acts like metadata for the Everest UI to guide the users
	// in filling out the correct Secret keys for their clusters.
	// +optional
	SecretKeys SecretKeys `json:"secretKeys,omitempty"`
}

DatabaseEngineSpec is a spec for a database engine.

func (*DatabaseEngineSpec) DeepCopy

func (in *DatabaseEngineSpec) DeepCopy() *DatabaseEngineSpec

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

func (*DatabaseEngineSpec) DeepCopyInto

func (in *DatabaseEngineSpec) DeepCopyInto(out *DatabaseEngineSpec)

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

type DatabaseEngineStatus

type DatabaseEngineStatus struct {
	State                   EngineState       `json:"status,omitempty"`
	OperatorVersion         string            `json:"operatorVersion,omitempty"`
	AvailableVersions       Versions          `json:"availableVersions,omitempty"`
	PendingOperatorUpgrades []OperatorUpgrade `json:"pendingOperatorUpgrades,omitempty"`

	// OperatorUpgrade contains the status of the operator upgrade.
	OperatorUpgrade *OperatorUpgradeStatus `json:"operatorUpgrade,omitempty"`
}

DatabaseEngineStatus defines the observed state of DatabaseEngine.

func (*DatabaseEngineStatus) DeepCopy

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

func (*DatabaseEngineStatus) DeepCopyInto

func (in *DatabaseEngineStatus) DeepCopyInto(out *DatabaseEngineStatus)

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

func (*DatabaseEngineStatus) GetNextUpgradeVersion

func (s *DatabaseEngineStatus) GetNextUpgradeVersion() string

GetNextUpgradeVersion gets the next version of the operator to upgrade to.

func (*DatabaseEngineStatus) GetPendingUpgrade

func (s *DatabaseEngineStatus) GetPendingUpgrade(targetVersion string) *OperatorUpgrade

GetPendingUpgrade gets a reference to the pending OperatorUpgrade for the given targetVersion.

type Engine

type Engine struct {
	// Type is the engine type
	// +kubebuilder:validation:Enum:=pxc;postgresql;psmdb
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message=".spec.engine.type cannot be changed"
	Type EngineType `json:"type"`
	// Version is the engine version
	Version string `json:"version,omitempty"`
	// Replicas is the number of engine replicas
	// +kubebuilder:validation:Minimum:=1
	Replicas int32 `json:"replicas,omitempty"`
	// Storage is the engine storage configuration
	Storage Storage `json:"storage"`
	// Resources are the resource limits for each engine replica.
	// If not set, resource limits are not imposed
	Resources Resources `json:"resources,omitempty"`
	// Config is the engine configuration
	Config string `json:"config,omitempty"`
	// UserSecretsName is the name of the secret containing the user secrets
	UserSecretsName string `json:"userSecretsName,omitempty"`
	// CRVersion is the desired version of the CR to use with the
	// underlying operator.
	// If unspecified, everest-operator will use the same version as the operator.
	//
	// NOTE: Updating this property post installation may lead to a restart of the cluster.
	// +optional
	CRVersion *string `json:"crVersion,omitempty"`
}

Engine is the engine configuration.

func (*Engine) DeepCopy

func (in *Engine) DeepCopy() *Engine

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

func (*Engine) DeepCopyInto

func (in *Engine) DeepCopyInto(out *Engine)

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

func (*Engine) Size

func (e *Engine) Size() EngineSize

Size returns the size of the engine.

type EngineFeatures

type EngineFeatures struct {
	// PSMDB represents additional features for the PSMDB engine.
	PSMDB *PSMDBEngineFeatures `json:"psmdb,omitempty"`
}

EngineFeatures represents configuration of additional features for the database engine.

func (*EngineFeatures) DeepCopy

func (in *EngineFeatures) DeepCopy() *EngineFeatures

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

func (*EngineFeatures) DeepCopyInto

func (in *EngineFeatures) DeepCopyInto(out *EngineFeatures)

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

type EngineFeaturesStatus

type EngineFeaturesStatus struct {
	// PSMDB represents additional features statuses for the PSMDB engine.
	PSMDB *PSMDBEngineFeaturesStatus `json:"psmdb,omitempty"`
}

EngineFeaturesStatus represents additional features statuses for the database engine.

func (*EngineFeaturesStatus) DeepCopy

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

func (*EngineFeaturesStatus) DeepCopyInto

func (in *EngineFeaturesStatus) DeepCopyInto(out *EngineFeaturesStatus)

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

type EngineList

type EngineList []EngineType

EngineList is a type alias for a list of EngineType.

func (EngineList) DeepCopy

func (in EngineList) DeepCopy() EngineList

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

func (EngineList) DeepCopyInto

func (in EngineList) DeepCopyInto(out *EngineList)

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

func (EngineList) Has

func (e EngineList) Has(engine EngineType) bool

Has checks if the list contains the specified engine.

type EngineSize

type EngineSize string

EngineSize is used to represent the size of a database engine based on memory.

const (
	// EngineSizeSmall represents a small engine size.
	EngineSizeSmall EngineSize = "small"
	// EngineSizeMedium represents a medium engine size.
	EngineSizeMedium EngineSize = "medium"
	// EngineSizeLarge represents a large engine size.
	EngineSizeLarge EngineSize = "large"
)

type EngineState

type EngineState string

EngineState represents state of engine in a k8s cluster.

type EngineType

type EngineType string

EngineType stands for the supported database engines. Right now it's only pxc and psmdb. However, it can be ps, pg and any other source.

type Expose

type Expose struct {
	// Type is the expose type, can be ClusterIP, LoadBalancer, NodePort. The types internal and external are deprecated.
	// +kubebuilder:validation:Enum:=internal;external;ClusterIP;LoadBalancer;NodePort
	// +kubebuilder:default:=ClusterIP
	Type ExposeType `json:"type,omitempty"`
	// IPSourceRanges is the list of IP source ranges (CIDR notation)
	// to allow access from. If not set, there is no limitations
	IPSourceRanges []IPSourceRange `json:"ipSourceRanges,omitempty"`
	// LoadBalancerConfigName is the name of load balancer config if applied
	LoadBalancerConfigName string `json:"loadBalancerConfigName,omitempty"`
}

Expose is the expose configuration.

func (*Expose) DeepCopy

func (in *Expose) DeepCopy() *Expose

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

func (*Expose) DeepCopyInto

func (in *Expose) DeepCopyInto(out *Expose)

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

func (*Expose) IPSourceRangesStringArray

func (e *Expose) IPSourceRangesStringArray() []string

IPSourceRangesStringArray returns []string of IPSource ranges. It also calls toCIDR function to convert IP addresses to the correct CIDR notation.

type ExposeType

type ExposeType string

ExposeType is the expose type.

func (ExposeType) DeprecationWarning added in v1.11.0

func (t ExposeType) DeprecationWarning() string

func (ExposeType) Normalize added in v1.11.0

func (t ExposeType) Normalize() ExposeType

type IPSourceRange

type IPSourceRange string

IPSourceRange represents IP addresses in CIDR notation or without a netmask.

type LoadBalancerConfig

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

	Spec LoadBalancerConfigSpec `json:"spec,omitempty"`
	// +kubebuilder:default={"inUse": false}
	Status LoadBalancerConfigStatus `json:"status,omitempty"`
}

LoadBalancerConfig is the Schema for the Load Balancer Config API.

func (*LoadBalancerConfig) DeepCopy

func (in *LoadBalancerConfig) DeepCopy() *LoadBalancerConfig

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

func (*LoadBalancerConfig) DeepCopyInto

func (in *LoadBalancerConfig) DeepCopyInto(out *LoadBalancerConfig)

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

func (*LoadBalancerConfig) DeepCopyObject

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

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

type LoadBalancerConfigList

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

LoadBalancerConfigList contains a list of LoadBalancerConfig.

func (*LoadBalancerConfigList) DeepCopy

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

func (*LoadBalancerConfigList) DeepCopyInto

func (in *LoadBalancerConfigList) DeepCopyInto(out *LoadBalancerConfigList)

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

func (*LoadBalancerConfigList) DeepCopyObject

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

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

type LoadBalancerConfigSpec

type LoadBalancerConfigSpec struct {
	// Annotations key-value pairs to apply as annotations to the load balancer
	Annotations map[string]string `json:"annotations,omitempty"`
}

LoadBalancerConfigSpec defines the desired state of LoadBalancerConfig.

func (*LoadBalancerConfigSpec) DeepCopy

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

func (*LoadBalancerConfigSpec) DeepCopyInto

func (in *LoadBalancerConfigSpec) DeepCopyInto(out *LoadBalancerConfigSpec)

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

type LoadBalancerConfigStatus

type LoadBalancerConfigStatus struct {
	// InUse is a flag that indicates if the config is used by any DB cluster.
	// +kubebuilder:default=false
	InUse bool `json:"inUse,omitempty"`
	// LastObservedGeneration is the most recent generation observed for this LoadBalancerConfig.
	LastObservedGeneration int64 `json:"lastObservedGeneration,omitempty"`
}

LoadBalancerConfigStatus defines the observed state of LoadBalancerConfig.

func (*LoadBalancerConfigStatus) DeepCopy

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

func (*LoadBalancerConfigStatus) DeepCopyInto

func (in *LoadBalancerConfigStatus) DeepCopyInto(out *LoadBalancerConfigStatus)

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

type LoadBalancerType

type LoadBalancerType string

LoadBalancerType contains supported loadbalancers. It can be proxysql or haproxy for PXC clusters, mongos for PSMDB clusters or pgbouncer for Postgresql clusters.

type Monitoring

type Monitoring struct {
	// MonitoringConfigName is the name of a monitoringConfig CR.
	// The MonitoringConfig must be created in the same namespace as the DatabaseCluster.
	MonitoringConfigName string `json:"monitoringConfigName,omitempty"`
	// Resources defines resource limitations for the monitoring.
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`
}

Monitoring is the monitoring configuration.

func (*Monitoring) DeepCopy

func (in *Monitoring) DeepCopy() *Monitoring

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

func (*Monitoring) DeepCopyInto

func (in *Monitoring) DeepCopyInto(out *Monitoring)

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

type MonitoringConfig

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

	Spec MonitoringConfigSpec `json:"spec,omitempty"`
	// +kubebuilder:default={"inUse": false}
	Status MonitoringConfigStatus `json:"status,omitempty"`
}

MonitoringConfig is the Schema for the monitoringconfigs API.

func (*MonitoringConfig) DeepCopy

func (in *MonitoringConfig) DeepCopy() *MonitoringConfig

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

func (*MonitoringConfig) DeepCopyInto

func (in *MonitoringConfig) DeepCopyInto(out *MonitoringConfig)

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

func (*MonitoringConfig) DeepCopyObject

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

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

func (*MonitoringConfig) GetPMMServerVersion

func (m *MonitoringConfig) GetPMMServerVersion(ctx context.Context, credentialsSecret *corev1.Secret) (PMMServerVersion, error)

type MonitoringConfigList

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

MonitoringConfigList contains a list of MonitoringConfig.

func (*MonitoringConfigList) DeepCopy

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

func (*MonitoringConfigList) DeepCopyInto

func (in *MonitoringConfigList) DeepCopyInto(out *MonitoringConfigList)

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

func (*MonitoringConfigList) DeepCopyObject

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

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

type MonitoringConfigSpec

type MonitoringConfigSpec struct {
	// Type is type of monitoring.
	// +kubebuilder:validation:Enum=pmm
	Type MonitoringType `json:"type"`
	// CredentialsSecretName is the name of the secret with credentials.
	CredentialsSecretName string `json:"credentialsSecretName"`
	// AllowedNamespaces is the list of namespaces where the operator will copy secrets provided in the CredentialsSecretsName.
	AllowedNamespaces []string `json:"allowedNamespaces,omitempty"`
	// PMM is configuration for the PMM monitoring type.
	PMM PMMConfig `json:"pmm,omitempty"`
	// VerifyTLS is set to ensure TLS/SSL verification.
	// If unspecified, the default value is true.
	//
	// +kubebuilder:default:=true
	VerifyTLS *bool `json:"verifyTLS,omitempty"`
}

MonitoringConfigSpec defines the desired state of MonitoringConfig.

func (*MonitoringConfigSpec) DeepCopy

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

func (*MonitoringConfigSpec) DeepCopyInto

func (in *MonitoringConfigSpec) DeepCopyInto(out *MonitoringConfigSpec)

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

type MonitoringConfigStatus

type MonitoringConfigStatus struct {
	// InUse is a flag that indicates if any DB cluster uses the monitoring config.
	// +kubebuilder:default=false
	InUse bool `json:"inUse,omitempty"`
	// LastObservedGeneration is the most recent generation observed for this MonitoringConfig.
	LastObservedGeneration int64 `json:"lastObservedGeneration,omitempty"`
	// PMMServerVersion shows PMM server version
	PMMServerVersion PMMServerVersion `json:"pmmServerVersion,omitempty"`
}

MonitoringConfigStatus defines the observed state of MonitoringConfig.

func (*MonitoringConfigStatus) DeepCopy

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

func (*MonitoringConfigStatus) DeepCopyInto

func (in *MonitoringConfigStatus) DeepCopyInto(out *MonitoringConfigStatus)

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

type MonitoringType

type MonitoringType string

MonitoringType is a type of monitoring.

type OperatorUpgrade

type OperatorUpgrade struct {
	// TargetVersion is the version to which the operator should be upgraded.
	TargetVersion string `json:"targetVersion,omitempty"`
	// InstallPlanRef is a reference to the InstallPlan object created for the operator upgrade.
	//
	// We do not recommended approving this InstallPlan directly from the Kubernetes API.
	// This is because this InstallPlan may also upgrade other operators in the namespace and that
	// can have unintended consequences.
	// This behaviour is not a bug from Everest, but an unfortunate limitation of OLM.
	// We suggest using the Everest API/UI to handle operator upgrades, which will perform a series
	// of checks and safely upgrade all operators in the namespace.
	InstallPlanRef corev1.LocalObjectReference `json:"installPlanRef,omitempty"`
}

OperatorUpgrade contains the information about the operator upgrade.

func (*OperatorUpgrade) DeepCopy

func (in *OperatorUpgrade) DeepCopy() *OperatorUpgrade

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

func (*OperatorUpgrade) DeepCopyInto

func (in *OperatorUpgrade) DeepCopyInto(out *OperatorUpgrade)

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

type OperatorUpgradeStatus

type OperatorUpgradeStatus struct {
	OperatorUpgrade `json:",inline"`
	Phase           UpgradePhase `json:"phase,omitempty"`
	StartedAt       *metav1.Time `json:"startedAt,omitempty"`
	Message         string       `json:"message,omitempty"`
}

OperatorUpgradeStatus contains the status of the operator upgrade.

func (*OperatorUpgradeStatus) DeepCopy

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

func (*OperatorUpgradeStatus) DeepCopyInto

func (in *OperatorUpgradeStatus) DeepCopyInto(out *OperatorUpgradeStatus)

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

type PITR

type PITR struct {
	// Type is the type of recovery.
	// +kubebuilder:validation:Enum:=date;latest
	// +kubebuilder:default:=date
	Type PITRType `json:"type,omitempty"`
	// Date is the UTC date to recover to. The accepted format: "2006-01-02T15:04:05Z".
	Date *RestoreDate `json:"date,omitempty"`
}

PITR represents a specification to configure point in time recovery for a database backup/restore.

func (*PITR) DeepCopy

func (in *PITR) DeepCopy() *PITR

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

func (*PITR) DeepCopyInto

func (in *PITR) DeepCopyInto(out *PITR)

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

type PITRSpec

type PITRSpec struct {
	// Enabled is a flag to enable PITR
	Enabled bool `json:"enabled"`
	// BackupStorageName is the name of the BackupStorage where the PITR is enabled
	// The BackupStorage must be created in the same namespace as the DatabaseCluster.
	BackupStorageName *string `json:"backupStorageName,omitempty"`
	// UploadIntervalSec number of seconds between the binlogs uploads
	UploadIntervalSec *int `json:"uploadIntervalSec,omitempty"`
}

PITRSpec represents a specification to configure point in time recovery for a database backup/restore.

func (*PITRSpec) DeepCopy

func (in *PITRSpec) DeepCopy() *PITRSpec

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

func (*PITRSpec) DeepCopyInto

func (in *PITRSpec) DeepCopyInto(out *PITRSpec)

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

type PITRType

type PITRType string

PITRType represents type of Point-in-time recovery.

const (
	// PITRTypeDate is Point-in-time recovery type based on the specific date.
	PITRTypeDate PITRType = "date"
	// PITRTypeLatest is Point-in-time recovery type based on the latest date.
	PITRTypeLatest PITRType = "latest"
)

type PMMConfig

type PMMConfig struct {
	// URL is url to the monitoring instance.
	URL string `json:"url"`
	// Image is a Docker image name to use for deploying PMM client. Defaults to using the latest version.
	Image string `json:"image"`
}

PMMConfig is configuration of the PMM monitoring type.

func (*PMMConfig) CreatePMMApiKey

func (c *PMMConfig) CreatePMMApiKey(
	ctx context.Context,
	apiKeyName, user, password string,
	skipTLSVerify bool,
) (string, error)

CreatePMMApiKey creates a new API key in PMM by using the provided username and password.

func (*PMMConfig) DeepCopy

func (in *PMMConfig) DeepCopy() *PMMConfig

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

func (*PMMConfig) DeepCopyInto

func (in *PMMConfig) DeepCopyInto(out *PMMConfig)

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

type PMMServerVersion

type PMMServerVersion string

func (*PMMServerVersion) DefaultPMMClientImage

func (v *PMMServerVersion) DefaultPMMClientImage() string

func (*PMMServerVersion) PMMSecretKeyName

func (v *PMMServerVersion) PMMSecretKeyName(engineType EngineType) string

PMMSecretKeyName returns the key name that should be used in the PMM secret depending on engine and auth type

func (*PMMServerVersion) UsesLegacyAuth

func (v *PMMServerVersion) UsesLegacyAuth() bool

UsesLegacyAuth returns true if the instance uses legacy auth (PMM2) otherwise it returns false

type PSMDBAffinityConfig

type PSMDBAffinityConfig struct {
	// Engine is the affinity configuration for the DB Engine pods.
	Engine *corev1.Affinity `json:"engine,omitempty"`
	// Proxy is the affinity configuration for the DB Proxy pods.
	Proxy *corev1.Affinity `json:"proxy,omitempty"`
	// ConfigServer is the affinity configuration for the DB Config Server pods.
	ConfigServer *corev1.Affinity `json:"configServer,omitempty"`
}

PSMDBAffinityConfig contains Affinity configurations for PSMDB Engine, Proxy and Config Server pods.

func (*PSMDBAffinityConfig) DeepCopy

func (in *PSMDBAffinityConfig) DeepCopy() *PSMDBAffinityConfig

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

func (*PSMDBAffinityConfig) DeepCopyInto

func (in *PSMDBAffinityConfig) DeepCopyInto(out *PSMDBAffinityConfig)

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

type PSMDBEngineFeatures

type PSMDBEngineFeatures struct {
	// SplitHorizonDNSConfigName is the name of a SplitHorizonDNSConfig CR.
	// The SplitHorizonDNSConfig must be created in the same namespace as the DatabaseCluster.
	SplitHorizonDNSConfigName string `json:"splitHorizonDnsConfigName,omitempty"`
}

PSMDBEngineFeatures represents additional features for the PSMDB engine.

func (*PSMDBEngineFeatures) DeepCopy

func (in *PSMDBEngineFeatures) DeepCopy() *PSMDBEngineFeatures

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

func (*PSMDBEngineFeatures) DeepCopyInto

func (in *PSMDBEngineFeatures) DeepCopyInto(out *PSMDBEngineFeatures)

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

type PSMDBEngineFeaturesStatus

type PSMDBEngineFeaturesStatus struct {
	// SplitHorizon status of SplitHorizon feature.
	SplitHorizon *enginefeatureseverestv1alpha1.SplitHorizonStatus `json:"splitHorizon,omitempty"`
}

PSMDBEngineFeaturesStatus represents additional features statuses for the PSMDB engine.

func (*PSMDBEngineFeaturesStatus) DeepCopy

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

func (*PSMDBEngineFeaturesStatus) DeepCopyInto

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

type PXCAffinityConfig

type PXCAffinityConfig struct {
	// Engine is the affinity configuration for the DB Engine pods.
	Engine *corev1.Affinity `json:"engine,omitempty"`
	// Proxy is the affinity configuration for the DB Proxy pods.
	Proxy *corev1.Affinity `json:"proxy,omitempty"`
}

PXCAffinityConfig contains Affinity configurations for PXC Engine and Proxy pods.

func (*PXCAffinityConfig) DeepCopy

func (in *PXCAffinityConfig) DeepCopy() *PXCAffinityConfig

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

func (*PXCAffinityConfig) DeepCopyInto

func (in *PXCAffinityConfig) DeepCopyInto(out *PXCAffinityConfig)

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

type PodSchedulingPolicy

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

	Spec PodSchedulingPolicySpec `json:"spec,omitempty"`
	// +kubebuilder:default={"inUse": false}
	Status PodSchedulingPolicyStatus `json:"status,omitempty"`
}

PodSchedulingPolicy is the Schema for the Pod Scheduling Policy API.

func (*PodSchedulingPolicy) DeepCopy

func (in *PodSchedulingPolicy) DeepCopy() *PodSchedulingPolicy

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

func (*PodSchedulingPolicy) DeepCopyInto

func (in *PodSchedulingPolicy) DeepCopyInto(out *PodSchedulingPolicy)

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

func (*PodSchedulingPolicy) DeepCopyObject

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

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

func (*PodSchedulingPolicy) HasRules

func (psp *PodSchedulingPolicy) HasRules() bool

HasRules returns true in case policy as at least 1 affinity rule.

type PodSchedulingPolicyList

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

PodSchedulingPolicyList contains a list of PodSchedulingPolicy.

func (*PodSchedulingPolicyList) DeepCopy

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

func (*PodSchedulingPolicyList) DeepCopyInto

func (in *PodSchedulingPolicyList) DeepCopyInto(out *PodSchedulingPolicyList)

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

func (*PodSchedulingPolicyList) DeepCopyObject

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

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

type PodSchedulingPolicySpec

type PodSchedulingPolicySpec struct {
	// EngineType is type of DB engine that this policy can be applied to.
	// +kubebuilder:validation:Enum=pxc;postgresql;psmdb
	EngineType EngineType `json:"engineType"`
	// AffinityConfig is a configuration for the affinity settings depending on the engine type.
	AffinityConfig *AffinityConfig `json:"affinityConfig,omitempty"`
}

PodSchedulingPolicySpec defines the desired state of PodSchedulingPolicy.

func (*PodSchedulingPolicySpec) DeepCopy

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

func (*PodSchedulingPolicySpec) DeepCopyInto

func (in *PodSchedulingPolicySpec) DeepCopyInto(out *PodSchedulingPolicySpec)

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

type PodSchedulingPolicyStatus

type PodSchedulingPolicyStatus struct {
	// InUse is a flag that indicates if the policy is used by any DB cluster.
	// +kubebuilder:default=false
	InUse bool `json:"inUse,omitempty"`
	// LastObservedGeneration is the most recent generation observed for this PodSchedulingPolicy.
	LastObservedGeneration int64 `json:"lastObservedGeneration,omitempty"`
}

PodSchedulingPolicyStatus defines the observed state of PodSchedulingPolicy.

func (*PodSchedulingPolicyStatus) DeepCopy

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

func (*PodSchedulingPolicyStatus) DeepCopyInto

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

type PostgreSQLAffinityConfig

type PostgreSQLAffinityConfig struct {
	// Engine is the affinity configuration for the DB Engine pods.
	Engine *corev1.Affinity `json:"engine,omitempty"`
	// Proxy is the affinity configuration for the DB Proxy pods.
	Proxy *corev1.Affinity `json:"proxy,omitempty"`
}

PostgreSQLAffinityConfig contains Affinity configurations for PostgreSQL Engine and Proxy pods.

func (*PostgreSQLAffinityConfig) DeepCopy

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

func (*PostgreSQLAffinityConfig) DeepCopyInto

func (in *PostgreSQLAffinityConfig) DeepCopyInto(out *PostgreSQLAffinityConfig)

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

type Proxy

type Proxy struct {
	// Type is the proxy type
	// +kubebuilder:validation:Enum:=mongos;haproxy;proxysql;pgbouncer
	Type ProxyType `json:"type,omitempty"`
	// Replicas is the number of proxy replicas
	// +kubebuilder:validation:Minimum:=1
	Replicas *int32 `json:"replicas,omitempty"`
	// Config is the proxy configuration
	Config string `json:"config,omitempty"`
	// Storage is the proxy storage configuration
	// +optional
	Storage *Storage `json:"storage,omitempty"`
	// Expose is the proxy expose configuration
	// +kubebuilder:validation:XValidation:rule="self.type == 'internal' || !has(oldSelf.loadBalancerConfigName) || oldSelf.loadBalancerConfigName == ” || (has(self.loadBalancerConfigName) && self.loadBalancerConfigName != ”)",message=".spec.proxy.expose.loadBalancerConfigName cannot be cleared once set"
	Expose Expose `json:"expose,omitempty"`
	// Resources are the resource limits for each proxy replica.
	// If not set, resource limits are not imposed
	Resources Resources `json:"resources,omitempty"`
}

Proxy is the proxy configuration.

func (*Proxy) DeepCopy

func (in *Proxy) DeepCopy() *Proxy

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

func (*Proxy) DeepCopyInto

func (in *Proxy) DeepCopyInto(out *Proxy)

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

type ProxyType

type ProxyType string

ProxyType is the proxy type.

type ResourceSpec added in v1.16.0

type ResourceSpec struct {
	// CPU is the CPU resource requirements
	CPU resource.Quantity `json:"cpu,omitempty"`
	// Memory is the memory resource requirements
	Memory resource.Quantity `json:"memory,omitempty"`
}

ResourceSpec holds CPU and Memory resource quantities.

func (*ResourceSpec) DeepCopy added in v1.16.0

func (in *ResourceSpec) DeepCopy() *ResourceSpec

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

func (*ResourceSpec) DeepCopyInto added in v1.16.0

func (in *ResourceSpec) DeepCopyInto(out *ResourceSpec)

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

type Resources

type Resources struct {
	// CPU is the CPU resource requirements.
	//
	// Deprecated: use Limits.CPU instead. When Limits is unset, this value is
	// used as the CPU limit (and, for engines that historically did so, as the
	// CPU request as well). It is ignored when Limits is set.
	// +optional
	CPU resource.Quantity `json:"cpu,omitempty"`
	// Memory is the memory resource requirements.
	//
	// Deprecated: use Limits.Memory instead. When Limits is unset, this value is
	// used as the memory limit (and, for engines that historically did so, as
	// the memory request as well). It is ignored when Limits is set.
	// +optional
	Memory resource.Quantity `json:"memory,omitempty"`
	// Limits are the resource limits applied to each replica.
	// If set, it takes precedence over the deprecated CPU and Memory fields.
	// +optional
	Limits *ResourceSpec `json:"limits,omitempty"`
	// Requests are the resource requests applied to each replica.
	// If unset, the request behavior is engine-specific: some engines mirror
	// the effective limits while others leave requests unset.
	// +optional
	Requests *ResourceSpec `json:"requests,omitempty"`
}

Resources are the resource requirements.

func (*Resources) DeepCopy

func (in *Resources) DeepCopy() *Resources

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

func (*Resources) DeepCopyInto

func (in *Resources) DeepCopyInto(out *Resources)

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

func (*Resources) EffectiveLimits added in v1.16.0

func (r *Resources) EffectiveLimits() ResourceSpec

EffectiveLimits returns the resource limits that should be applied, preferring the explicit Limits field and falling back to the deprecated CPU and Memory fields when Limits is unset.

func (*Resources) EffectiveRequests added in v1.16.0

func (r *Resources) EffectiveRequests() *ResourceSpec

EffectiveRequests returns the explicitly requested resources, or nil when no requests were specified.

func (*Resources) ToResourceRequirements added in v1.16.0

func (r *Resources) ToResourceRequirements() corev1.ResourceRequirements

ToResourceRequirements builds a corev1.ResourceRequirements from the effective limits and requests, respecting the user's intent exactly: requests are set only from explicitly provided request values. Only non-zero quantities are set so that callers preserve the existing "skip when zero" semantics.

func (*Resources) UsesLegacyResourceFields added in v1.16.0

func (r *Resources) UsesLegacyResourceFields() bool

UsesLegacyResourceFields reports whether the user relies solely on the deprecated CPU/Memory fields, i.e. neither of the new Limits/Requests fields is set. Engines that historically derived requests from limits use this to decide whether to apply that backward-compatible behavior.

type RestoreDate

type RestoreDate struct {
	metav1.Time `json:",inline"`
}

RestoreDate is a data type for better time.Time support, the same approach as used in psmdb. +kubebuilder:validation:Type=string

func (*RestoreDate) DeepCopy

func (in *RestoreDate) DeepCopy() *RestoreDate

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

func (*RestoreDate) DeepCopyInto

func (in *RestoreDate) DeepCopyInto(out *RestoreDate)

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

func (*RestoreDate) MarshalJSON

func (t *RestoreDate) MarshalJSON() ([]byte, error)

MarshalJSON marshals JSON.

func (*RestoreDate) OpenAPISchemaFormat

func (*RestoreDate) OpenAPISchemaFormat() string

OpenAPISchemaFormat returns a format for OperAPI specification.

func (*RestoreDate) OpenAPISchemaType

func (*RestoreDate) OpenAPISchemaType() []string

OpenAPISchemaType returns a schema type for OperAPI specification.

func (*RestoreDate) UnmarshalJSON

func (t *RestoreDate) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals JSON.

type RestoreState

type RestoreState string

RestoreState represents state of restoration.

const (
	RestoreNew       RestoreState = ""
	RestoreStarting  RestoreState = "Starting"
	RestoreRunning   RestoreState = "Restoring"
	RestoreFailed    RestoreState = "Failed"
	RestoreSucceeded RestoreState = "Succeeded"
)

Known Restore states.

func GetDBRestoreState

func GetDBRestoreState(upstream client.Object) RestoreState

GetDBRestoreState returns the restore state from the upstream restore object.

type SecretKey

type SecretKey struct {
	// Name is the name of the Secret key.
	Name string `json:"name,omitempty"`
	// Description is a human-readable description of the Secret key.
	Description string `json:"description,omitempty"`
}

SecretKey defines a single Secret key.

func (*SecretKey) DeepCopy

func (in *SecretKey) DeepCopy() *SecretKey

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

func (*SecretKey) DeepCopyInto

func (in *SecretKey) DeepCopyInto(out *SecretKey)

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

type SecretKeys

type SecretKeys struct {
	// User secret keys are used to store the details of the users.
	User []SecretKey `json:"user,omitempty"`
}

SecretKeys contains the definition of the various Secrets that the given DBEngine supports.

func (*SecretKeys) DeepCopy

func (in *SecretKeys) DeepCopy() *SecretKeys

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

func (*SecretKeys) DeepCopyInto

func (in *SecretKeys) DeepCopyInto(out *SecretKeys)

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

type Sharding

type Sharding struct {
	// Enabled defines if the sharding is enabled
	Enabled bool `json:"enabled"`
	// Shards defines the number of shards
	// +kubebuilder:validation:Minimum:=1
	Shards int32 `json:"shards"`
	// ConfigServer represents the sharding configuration server settings
	ConfigServer ConfigServer `json:"configServer"`
}

Sharding are the sharding options. Available only for psmdb.

func (*Sharding) DeepCopy

func (in *Sharding) DeepCopy() *Sharding

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

func (*Sharding) DeepCopyInto

func (in *Sharding) DeepCopyInto(out *Sharding)

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

type Storage

type Storage struct {
	// Size is the size of the persistent volume claim
	Size resource.Quantity `json:"size"`
	// Class is the storage class to use for the persistent volume claim
	Class *string `json:"class,omitempty"`
}

Storage is the storage configuration.

func (*Storage) DeepCopy

func (in *Storage) DeepCopy() *Storage

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

func (*Storage) DeepCopyInto

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

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

type UpgradePhase

type UpgradePhase string

UpgradePhase represents the phase of the operator upgrade.

const (
	// UpgradePhaseStarted represents the phase when the operator upgrade has started.
	UpgradePhaseStarted UpgradePhase = "started"
	// UpgradePhaseCompleted represents the phase when the operator upgrade has completed.
	UpgradePhaseCompleted UpgradePhase = "completed"
	// UpgradePhaseFailed represents the phase when the operator upgrade has failed.
	UpgradePhaseFailed UpgradePhase = "failed"
)

type Versions

type Versions struct {
	Engine ComponentsMap               `json:"engine,omitempty"`
	Backup ComponentsMap               `json:"backup,omitempty"`
	Proxy  map[ProxyType]ComponentsMap `json:"proxy,omitempty"`
	Tools  map[string]ComponentsMap    `json:"tools,omitempty"`
}

Versions struct represents available versions of database engine components.

func (*Versions) DeepCopy

func (in *Versions) DeepCopy() *Versions

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

func (*Versions) DeepCopyInto

func (in *Versions) DeepCopyInto(out *Versions)

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

Directories

Path Synopsis
Package dataimporterspec ...
Package dataimporterspec ...

Jump to

Keyboard shortcuts

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