v1alpha1

package
v1.8.1-rc2 Latest Latest
Warning

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

Go to latest
Published: Aug 11, 2025 License: Apache-2.0 Imports: 22 Imported by: 0

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"
	// AppStatePausing is a pausing state.
	AppStatePausing AppState = "pausing"
	// AppStateStopping is a stopping state.
	AppStateStopping AppState = "stopping"
	// 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 = ""

	// ExposeTypeInternal is an internal expose type.
	ExposeTypeInternal ExposeType = "internal"
	// ExposeTypeExternal is an external expose type.
	ExposeTypeExternal ExposeType = "external"

	// 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"
)
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 added in v1.7.0

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 added in v1.7.0

func (in *AffinityConfig) DeepCopy() *AffinityConfig

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

func (*AffinityConfig) DeepCopyInto added in v1.7.0

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 added in v1.6.0

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 added in v0.10.0

type Applier interface {
	Paused(paused bool)
	AllowUnsafeConfig()
	Engine() error
	Proxy() error
	DataSource() error
	Monitoring() error
	PodSchedulingPolicy() error
	Backup() error
	Metadata() 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 added in v0.0.3

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 added in v0.0.3

func (in *Backup) DeepCopy() *Backup

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

func (*Backup) DeepCopyInto added in v0.0.3

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.
	Path string `json:"path"`
	// 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"`
}

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 added in v1.0.0

func GetDBBackupState(upstreamBkp client.Object) BackupState

GetDBBackupState returns the backup state from the upstream backup object.

type BackupStorage added in v0.0.8

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 added in v0.0.8

func (in *BackupStorage) DeepCopy() *BackupStorage

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

func (*BackupStorage) DeepCopyInto added in v0.0.8

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 added in v0.0.8

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

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

func (*BackupStorage) DeleteUsedNamespace added in v0.6.0

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

DeleteUsedNamespace deletes the namespace from the usedNamespaces list.

func (*BackupStorage) UpdateNamespacesList added in v0.6.0

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

UpdateNamespacesList updates the list of namespaces that use the backupStorage.

type BackupStorageList added in v0.0.8

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 added in v0.0.8

func (in *BackupStorageList) DeepCopy() *BackupStorageList

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

func (*BackupStorageList) DeepCopyInto added in v0.0.8

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 added in v0.0.8

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 added in v0.0.8

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 added in v0.0.8

func (in *BackupStorageStatus) DeepCopy() *BackupStorageStatus

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

func (*BackupStorageStatus) DeepCopyInto added in v0.0.8

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 added in v0.0.3

type ComponentStatus string

ComponentStatus represents status of the database engine component.

type ComponentsMap added in v0.0.3

type ComponentsMap map[string]*Component

ComponentsMap is a map of database engine components.

func (ComponentsMap) BestVersion added in v0.0.3

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 added in v0.0.3

func (in ComponentsMap) DeepCopy() ComponentsMap

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

func (ComponentsMap) DeepCopyInto added in v0.0.3

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 added in v0.0.3

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

FilterStatus returns a new ComponentsMap with components filtered by status.

func (ComponentsMap) GetAllowedVersionsSorted added in v0.0.3

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 added in v0.0.3

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 added in v1.3.0

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 added in v1.3.0

func (in *ConfigServer) DeepCopy() *ConfigServer

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

func (*ConfigServer) DeepCopyInto added in v1.3.0

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 added in v1.8.0

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 added in v1.8.0

func (in *DataImportJob) DeepCopy() *DataImportJob

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

func (*DataImportJob) DeepCopyInto added in v1.8.0

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 added in v1.8.0

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

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

type DataImportJobList added in v1.8.0

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 added in v1.8.0

func (in *DataImportJobList) DeepCopy() *DataImportJobList

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

func (*DataImportJobList) DeepCopyInto added in v1.8.0

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 added in v1.8.0

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

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

type DataImportJobS3Source added in v1.8.0

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 added in v1.8.0

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

func (*DataImportJobS3Source) DeepCopyInto added in v1.8.0

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 added in v1.8.0

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 added in v1.8.0

func (in *DataImportJobSource) DeepCopy() *DataImportJobSource

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

func (*DataImportJobSource) DeepCopyInto added in v1.8.0

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 added in v1.8.0

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 added in v1.8.0

func (in *DataImportJobSpec) DeepCopy() *DataImportJobSpec

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

func (*DataImportJobSpec) DeepCopyInto added in v1.8.0

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 added in v1.8.0

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 added in v1.8.0

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 added in v1.8.0

func (in *DataImportJobStatus) DeepCopy() *DataImportJobStatus

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

func (*DataImportJobStatus) DeepCopyInto added in v1.8.0

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 added in v1.8.0

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 added in v1.8.0

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

func (*DataImportJobTemplate) DeepCopyInto added in v1.8.0

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 added in v1.8.0

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 added in v1.8.0

func (in *DataImporter) DeepCopy() *DataImporter

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

func (*DataImporter) DeepCopyInto added in v1.8.0

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 added in v1.8.0

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

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

type DataImporterConfig added in v1.8.0

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 added in v1.8.0

func (in *DataImporterConfig) DeepCopy() *DataImporterConfig

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

func (*DataImporterConfig) DeepCopyInto added in v1.8.0

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 added in v1.8.0

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

Validate the config for the data importer.

type DataImporterDatabaseClusterConstraints added in v1.8.0

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 added in v1.8.0

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

func (*DataImporterDatabaseClusterConstraints) DeepCopyInto added in v1.8.0

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

type DataImporterJobSpec added in v1.8.0

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 added in v1.8.0

func (in *DataImporterJobSpec) DeepCopy() *DataImporterJobSpec

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

func (*DataImporterJobSpec) DeepCopyInto added in v1.8.0

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 added in v1.8.0

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 added in v1.8.0

func (in *DataImporterList) DeepCopy() *DataImporterList

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

func (*DataImporterList) DeepCopyInto added in v1.8.0

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 added in v1.8.0

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

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

type DataImporterSpec added in v1.8.0

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 added in v1.8.0

func (in *DataImporterSpec) DeepCopy() *DataImporterSpec

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

func (*DataImporterSpec) DeepCopyInto added in v1.8.0

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 added in v1.8.0

type DataImporterStatus struct{}

DataImporterStatus defines the status of the DataImporter.

func (*DataImporterStatus) DeepCopy added in v1.8.0

func (in *DataImporterStatus) DeepCopy() *DataImporterStatus

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

func (*DataImporterStatus) DeepCopyInto added in v1.8.0

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 added in v0.0.3

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 added in v0.0.3

func (in *DataSource) DeepCopy() *DataSource

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

func (*DataSource) DeepCopyInto added in v0.0.3

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 added in v1.8.0

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"`
}

DatabaseCluster is the Schema for the databaseclusters API.

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 added in v1.0.0

func (b *DatabaseClusterBackup) HasCompleted() bool

HasCompleted returns true if the backup has completed.

func (*DatabaseClusterBackup) HasFailed added in v0.10.1

func (b *DatabaseClusterBackup) HasFailed() bool

HasFailed returns true if the backup has failed.

func (*DatabaseClusterBackup) HasSucceeded added in v0.10.1

func (b *DatabaseClusterBackup) HasSucceeded() bool

HasSucceeded returns true if the backup has succeeded.

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 {
	// 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"`
}

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 added in v0.6.0

func (r *DatabaseClusterRestore) IsComplete() bool

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

func (*DatabaseClusterRestore) IsInProgress added in v1.7.0

func (r *DatabaseClusterRestore) IsInProgress() bool

IsInProgress indicates if the restoration process is in progress.

type DatabaseClusterRestoreDataSource added in v1.8.0

type DatabaseClusterRestoreDataSource 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"`
}

DatabaseClusterRestoreDataSource defines a data source for restoration.

func (*DatabaseClusterRestoreDataSource) DeepCopy added in v1.8.0

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

func (*DatabaseClusterRestoreDataSource) DeepCopyInto added in v1.8.0

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

func (*DatabaseClusterRestoreDataSource) IntoDataSource added in v1.8.0

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 cluster name to restore.
	DBClusterName string `json:"dbClusterName"`
	// DataSource defines a data source for restoration.
	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"`
}

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 added in v0.0.3

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"`
}

DatabaseClusterSpec defines the desired state of DatabaseCluster.

func (*DatabaseClusterSpec) DeepCopy added in v0.0.3

func (in *DatabaseClusterSpec) DeepCopy() *DatabaseClusterSpec

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

func (*DatabaseClusterSpec) DeepCopyInto added in v0.0.3

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 is the recommended version of the CR to use.
	// If set, the CR needs to be updated to this version before upgrading the operator.
	// If unset, the CR is already at the 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"`
}

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 added in v0.0.3

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

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

func (*DatabaseEngine) BestEngineVersion added in v0.0.3

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.

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 added in v1.1.0

func (s *DatabaseEngineStatus) GetNextUpgradeVersion() string

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

func (*DatabaseEngineStatus) GetPendingUpgrade added in v0.10.0

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

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

type Engine added in v0.0.3

type Engine struct {
	// Type is the engine type
	// +kubebuilder:validation:Enum:=pxc;postgresql;psmdb
	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 added in v0.0.3

func (in *Engine) DeepCopy() *Engine

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

func (*Engine) DeepCopyInto added in v0.0.3

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 added in v0.10.0

func (e *Engine) Size() EngineSize

Size returns the size of the engine.

type EngineList added in v1.8.0

type EngineList []EngineType

EngineList is a type alias for a list of EngineType.

func (EngineList) DeepCopy added in v1.8.0

func (in EngineList) DeepCopy() EngineList

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

func (EngineList) DeepCopyInto added in v1.8.0

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 added in v1.8.0

func (e EngineList) Has(engine EngineType) bool

Has checks if the list contains the specified engine.

type EngineSize added in v0.10.0

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 added in v0.0.3

type Expose struct {
	// Type is the expose type, can be internal or external
	// +kubebuilder:validation:Enum:=internal;external
	// +kubebuilder:default:=internal
	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"`
}

Expose is the expose configuration.

func (*Expose) DeepCopy added in v0.0.3

func (in *Expose) DeepCopy() *Expose

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

func (*Expose) DeepCopyInto added in v0.0.3

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 added in v0.0.21

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 added in v0.0.3

type ExposeType string

ExposeType is the expose type.

type IPSourceRange added in v0.0.21

type IPSourceRange string

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

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 added in v0.0.3

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 added in v0.0.3

func (in *Monitoring) DeepCopy() *Monitoring

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

func (*Monitoring) DeepCopyInto added in v0.0.3

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 added in v0.0.8

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 added in v0.0.8

func (in *MonitoringConfig) DeepCopy() *MonitoringConfig

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

func (*MonitoringConfig) DeepCopyInto added in v0.0.8

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 added in v0.0.8

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

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

type MonitoringConfigList added in v0.0.8

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 added in v0.0.8

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

func (*MonitoringConfigList) DeepCopyInto added in v0.0.8

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 added in v0.0.8

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

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

type MonitoringConfigSpec added in v0.0.8

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 added in v0.0.8

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

func (*MonitoringConfigSpec) DeepCopyInto added in v0.0.8

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 added in v0.0.8

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"`
}

MonitoringConfigStatus defines the observed state of MonitoringConfig.

func (*MonitoringConfigStatus) DeepCopy added in v0.0.8

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

func (*MonitoringConfigStatus) DeepCopyInto added in v0.0.8

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 added in v0.0.8

type MonitoringType string

MonitoringType is a type of monitoring.

type OperatorUpgrade added in v0.10.0

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 added in v0.10.0

func (in *OperatorUpgrade) DeepCopy() *OperatorUpgrade

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

func (*OperatorUpgrade) DeepCopyInto added in v0.10.0

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 added in v0.10.0

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 added in v0.10.0

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

func (*OperatorUpgradeStatus) DeepCopyInto added in v0.10.0

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 added in v0.6.0

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 added in v0.6.0

func (in *PITR) DeepCopy() *PITR

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

func (*PITR) DeepCopyInto added in v0.6.0

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 added in v0.6.0

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 added in v0.6.0

func (in *PITRSpec) DeepCopy() *PITRSpec

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

func (*PITRSpec) DeepCopyInto added in v0.6.0

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 added in v0.6.0

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 added in v0.0.8

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) DeepCopy added in v0.0.8

func (in *PMMConfig) DeepCopy() *PMMConfig

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

func (*PMMConfig) DeepCopyInto added in v0.0.8

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

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

type PSMDBAffinityConfig added in v1.7.0

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 added in v1.7.0

func (in *PSMDBAffinityConfig) DeepCopy() *PSMDBAffinityConfig

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

func (*PSMDBAffinityConfig) DeepCopyInto added in v1.7.0

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

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

type PXCAffinityConfig added in v1.7.0

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 added in v1.7.0

func (in *PXCAffinityConfig) DeepCopy() *PXCAffinityConfig

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

func (*PXCAffinityConfig) DeepCopyInto added in v1.7.0

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 added in v1.7.0

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 added in v1.7.0

func (in *PodSchedulingPolicy) DeepCopy() *PodSchedulingPolicy

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

func (*PodSchedulingPolicy) DeepCopyInto added in v1.7.0

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 added in v1.7.0

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

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

func (*PodSchedulingPolicy) HasRules added in v1.7.0

func (psp *PodSchedulingPolicy) HasRules() bool

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

type PodSchedulingPolicyList added in v1.7.0

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 added in v1.7.0

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

func (*PodSchedulingPolicyList) DeepCopyInto added in v1.7.0

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 added in v1.7.0

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

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

type PodSchedulingPolicySpec added in v1.7.0

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 added in v1.7.0

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

func (*PodSchedulingPolicySpec) DeepCopyInto added in v1.7.0

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 added in v1.7.0

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 added in v1.7.0

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

func (*PodSchedulingPolicyStatus) DeepCopyInto added in v1.7.0

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

type PostgreSQLAffinityConfig added in v1.7.0

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 added in v1.7.0

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

func (*PostgreSQLAffinityConfig) DeepCopyInto added in v1.7.0

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 added in v0.0.3

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"`
	// Expose is the proxy expose configuration
	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 added in v0.0.3

func (in *Proxy) DeepCopy() *Proxy

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

func (*Proxy) DeepCopyInto added in v0.0.3

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 added in v0.0.3

type ProxyType string

ProxyType is the proxy type.

type Resources added in v0.0.3

type Resources 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"`
}

Resources are the resource requirements.

func (*Resources) DeepCopy added in v0.0.3

func (in *Resources) DeepCopy() *Resources

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

func (*Resources) DeepCopyInto added in v0.0.3

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

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

type RestoreDate added in v0.6.0

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 added in v0.6.0

func (in *RestoreDate) DeepCopy() *RestoreDate

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

func (*RestoreDate) DeepCopyInto added in v0.6.0

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 added in v0.6.0

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

MarshalJSON marshals JSON.

func (*RestoreDate) OpenAPISchemaFormat added in v0.6.0

func (*RestoreDate) OpenAPISchemaFormat() string

OpenAPISchemaFormat returns a format for OperAPI specification.

func (*RestoreDate) OpenAPISchemaType added in v0.6.0

func (*RestoreDate) OpenAPISchemaType() []string

OpenAPISchemaType returns a schema type for OperAPI specification.

func (*RestoreDate) UnmarshalJSON added in v0.6.0

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 added in v1.0.0

func GetDBRestoreState(upstream client.Object) RestoreState

GetDBRestoreState returns the restore state from the upstream restore object.

type SecretKey added in v1.8.0

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 added in v1.8.0

func (in *SecretKey) DeepCopy() *SecretKey

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

func (*SecretKey) DeepCopyInto added in v1.8.0

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 added in v1.8.0

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 added in v1.8.0

func (in *SecretKeys) DeepCopy() *SecretKeys

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

func (*SecretKeys) DeepCopyInto added in v1.8.0

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 added in v1.3.0

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 added in v1.3.0

func (in *Sharding) DeepCopy() *Sharding

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

func (*Sharding) DeepCopyInto added in v1.3.0

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 added in v0.0.3

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 added in v0.0.3

func (in *Storage) DeepCopy() *Storage

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

func (*Storage) DeepCopyInto added in v0.0.3

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 added in v0.10.0

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