Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the klio v1alpha1 API group. +kubebuilder:object:generate=true +groupName=klio.cnpg.io
Index ¶
- Constants
- Variables
- type Cache
- type Data
- type EmbeddedObjectMeta
- type FileReference
- type FileSource
- type ImageConfiguration
- type PluginConfiguration
- type PluginConfigurationList
- type PluginConfigurationSpec
- type PluginConfigurationStatus
- type PodTemplateSpec
- type Queue
- type RetentionPolicy
- type S3Configuration
- type Server
- type ServerList
- type ServerMode
- type ServerSpec
- type ServerStatus
- type TLSConfiguration
- type Tier1Configuration
- type Tier1PluginConfiguration
- type Tier2Configuration
- type Tier2PluginConfiguration
- type WALPrefetchConfiguration
Constants ¶
const ( // PluginConfigurationConditionConfigurationApplied indicates whether the // configuration has been successfully applied to the Secret. PluginConfigurationConditionConfigurationApplied = "ConfigurationApplied" )
Condition types for PluginConfiguration.
const (
// ReasonSecretUpdated means the Secret was successfully created or updated.
ReasonSecretUpdated = "SecretUpdated"
)
Condition reasons for ConfigurationApplied.
Variables ¶
var ( // GroupVersion is group version used to register these objects. // //nolint:gochecknoglobals GroupVersion = schema.GroupVersion{Group: "klio.cnpg.io", Version: "v1alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme. // //nolint:gochecknoglobals SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) // AddToScheme adds the types in this group-version to the given scheme. // //nolint:gochecknoglobals AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type Cache ¶
type Cache struct {
PersistentVolumeClaimTemplate corev1.PersistentVolumeClaimSpec `json:"pvcTemplate"`
}
Cache defines the configuration for the cache directory.
func (*Cache) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cache.
func (*Cache) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Data ¶
type Data struct {
// Template to be used to generate the Persistent Volume Claim needed for the data folder,
// containing base backups and WAL files.
PersistentVolumeClaimTemplate corev1.PersistentVolumeClaimSpec `json:"pvcTemplate"`
}
Data defines the configuration for the data directory.
func (*Data) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Data.
func (*Data) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EmbeddedObjectMeta ¶
type EmbeddedObjectMeta struct {
// +optional
Labels map[string]string `json:"labels,omitempty"`
// +optional
Annotations map[string]string `json:"annotations,omitempty"`
}
EmbeddedObjectMeta contains metadata for embedded objects.
func (*EmbeddedObjectMeta) DeepCopy ¶
func (in *EmbeddedObjectMeta) DeepCopy() *EmbeddedObjectMeta
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EmbeddedObjectMeta.
func (*EmbeddedObjectMeta) DeepCopyInto ¶
func (in *EmbeddedObjectMeta) DeepCopyInto(out *EmbeddedObjectMeta)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FileReference ¶
type FileReference struct {
// Volume is the volume source to mount.
Volume corev1.VolumeSource `json:"volume"`
// Path is the file path within the mounted volume.
Path string `json:"path"`
}
FileReference specifies a file from a volume source.
func (*FileReference) DeepCopy ¶
func (in *FileReference) DeepCopy() *FileReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FileReference.
func (*FileReference) DeepCopyInto ¶
func (in *FileReference) DeepCopyInto(out *FileReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FileSource ¶
type FileSource struct {
// FileReference specifies a file from a volume source.
// +optional
FileReference *FileReference `json:"fileReference,omitempty"`
}
FileSource specifies a source for a file. This wrapper allows future alternatives to be added without breaking the API. +kubebuilder:validation:ExactlyOneOf=fileReference
func (*FileSource) DeepCopy ¶
func (in *FileSource) DeepCopy() *FileSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FileSource.
func (*FileSource) DeepCopyInto ¶
func (in *FileSource) DeepCopyInto(out *FileSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageConfiguration ¶
type ImageConfiguration struct {
// Image is the image to be used for the Klio server
Image string `json:"image"`
// ImagePullPolicy defines the policy for pulling the image
// +optional
// +kubebuilder:default=IfNotPresent
ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
// ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the
// images
// +optional
ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`
}
ImageConfiguration contains the information needed to download the Klio image.
func (*ImageConfiguration) DeepCopy ¶
func (in *ImageConfiguration) DeepCopy() *ImageConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageConfiguration.
func (*ImageConfiguration) DeepCopyInto ¶
func (in *ImageConfiguration) DeepCopyInto(out *ImageConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PluginConfiguration ¶
type PluginConfiguration struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata"`
Spec PluginConfigurationSpec `json:"spec"`
// +optional
Status PluginConfigurationStatus `json:"status,omitzero"`
}
PluginConfiguration is the Schema for the client configuration API.
func (*PluginConfiguration) DeepCopy ¶
func (in *PluginConfiguration) DeepCopy() *PluginConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginConfiguration.
func (*PluginConfiguration) DeepCopyInto ¶
func (in *PluginConfiguration) DeepCopyInto(out *PluginConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PluginConfiguration) DeepCopyObject ¶
func (in *PluginConfiguration) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PluginConfigurationList ¶
type PluginConfigurationList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitzero"`
Items []PluginConfiguration `json:"items"`
}
PluginConfigurationList contains a list of PluginConfiguration.
func (*PluginConfigurationList) DeepCopy ¶
func (in *PluginConfigurationList) DeepCopy() *PluginConfigurationList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginConfigurationList.
func (*PluginConfigurationList) DeepCopyInto ¶
func (in *PluginConfigurationList) DeepCopyInto(out *PluginConfigurationList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PluginConfigurationList) DeepCopyObject ¶
func (in *PluginConfigurationList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PluginConfigurationSpec ¶
type PluginConfigurationSpec struct {
// ServerAddress is the address of the Klio server
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
ServerAddress string `json:"serverAddress"`
// Tier1 is the Tier 1 configuration
// +optional
Tier1 *Tier1PluginConfiguration `json:"tier1,omitempty"`
// Tier2 is the Tier 2 configuration
// +optional
Tier2 *Tier2PluginConfiguration `json:"tier2,omitempty"`
// WALPrefetch configures WAL prefetching behavior during recovery operations.
// +optional
WALPrefetch *WALPrefetchConfiguration `json:"walPrefetch,omitempty"`
// ClientSecretName is the name of the secret containing the client credentials
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
ClientSecretName string `json:"clientSecretName"`
// ServerSecretName is the name of the secret containing the server TLS certificate
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
ServerSecretName string `json:"serverSecretName"`
// ClusterName is the name of the PostgreSQL cluster we are connecting to
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
ClusterName string `json:"clusterName"`
// Pprof enables the pprof endpoint for performance profiling
// +optional
Pprof bool `json:"pprof,omitempty"`
// Mode selects the operation mode of the plugin.
// +kubebuilder:validation:Enum=standard;read-only
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="mode is immutable"
// +kubebuilder:default=standard
Mode ServerMode `json:"mode"`
// Containers allows defining a list of containers that will be merged with the Klio sidecar containers.
// This enables users to customize the sidecars with additional environment variables, volume mounts,
// resource limits, and other container settings without polluting the PostgreSQL container environment.
//
// Merge behavior:
// - Containers are matched by name (klio-plugin, klio-restore)
// - User customizations serve as the base
// - Klio required values (name, args, CONTAINER_NAME env var) always override user values
// - User-defined environment variables and volume mounts are preserved
// - Template defaults are applied only for fields not set by the user or Klio
//
// +optional
// +kubebuilder:validation:MaxItems=2
// +listType=map
// +listMapKey=name
// +kubebuilder:validation:XValidation:rule="self.all(c, c.name in ['klio-plugin', 'klio-restore'])",message="container name must be one of: klio-plugin, klio-restore"
Containers []corev1.Container `json:"containers,omitempty"`
}
PluginConfigurationSpec defines the desired state of client configuration. +kubebuilder:validation:XValidation:rule="self.mode != 'read-only' || (has(self.tier2) && (!has(self.tier2.enableBackup) || !self.tier2.enableBackup) && self.tier2.enableRecovery && !has(self.tier1))",message="when mode is read-only, tier2.enableRecovery must be true, tier2.enableBackup must be false, and tier1 must not exist"
func (*PluginConfigurationSpec) DeepCopy ¶
func (in *PluginConfigurationSpec) DeepCopy() *PluginConfigurationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginConfigurationSpec.
func (*PluginConfigurationSpec) DeepCopyInto ¶
func (in *PluginConfigurationSpec) DeepCopyInto(out *PluginConfigurationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PluginConfigurationSpec) GetWALPrefetch ¶
func (s *PluginConfigurationSpec) GetWALPrefetch() WALPrefetchConfiguration
GetWALPrefetch returns the WAL prefetch configuration with defaults applied.
type PluginConfigurationStatus ¶
type PluginConfigurationStatus struct {
// Conditions represent the latest available observations of the
// PluginConfiguration's state.
// +optional
// +listType=map
// +listMapKey=type
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
PluginConfigurationStatus defines the observed state of ClientConfig.
func (*PluginConfigurationStatus) DeepCopy ¶
func (in *PluginConfigurationStatus) DeepCopy() *PluginConfigurationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginConfigurationStatus.
func (*PluginConfigurationStatus) DeepCopyInto ¶
func (in *PluginConfigurationStatus) DeepCopyInto(out *PluginConfigurationStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodTemplateSpec ¶
type PodTemplateSpec struct {
// +optional
Metadata EmbeddedObjectMeta `json:"metadata,omitempty"`
// +optional
Spec corev1.PodSpec `json:"spec,omitempty"`
}
PodTemplateSpec describes the data a pod should have when created from a template.
func (*PodTemplateSpec) DeepCopy ¶
func (in *PodTemplateSpec) DeepCopy() *PodTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodTemplateSpec.
func (*PodTemplateSpec) DeepCopyInto ¶
func (in *PodTemplateSpec) DeepCopyInto(out *PodTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PodTemplateSpec) ToCoreV1 ¶
func (p *PodTemplateSpec) ToCoreV1() *corev1.PodTemplateSpec
ToCoreV1 converts the custom PodTemplateSpec to corev1.PodTemplateSpec.
type Queue ¶
type Queue struct {
// PersistentVolumeClaimTemplate is used to generate the configuration for
// the PVC hosting the work queue.
PersistentVolumeClaimTemplate corev1.PersistentVolumeClaimSpec `json:"pvcTemplate"`
}
Queue defines the configuration for the directory hosting the task queue.
func (*Queue) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Queue.
func (*Queue) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RetentionPolicy ¶
type RetentionPolicy struct {
// KeepLatest is the number of latest backups to keep
// optional
KeepLatest *int `json:"keepLatest,omitempty" mapstructure:"keepLatest"`
// KeepAnnual is the number of annual backups to keep
// optional
KeepAnnual *int `json:"keepAnnual,omitempty" mapstructure:"keepAnnual"`
// KeepMonthly is the number of monthly backups to keep
// optional
KeepMonthly *int `json:"keepMonthly,omitempty" mapstructure:"keepMonthly"`
// KeepWeekly is the number of weekly backups to keep
// optional
KeepWeekly *int `json:"keepWeekly,omitempty" mapstructure:"keepWeekly"`
// KeepDaily is the number of daily backups to keep
// optional
KeepDaily *int `json:"keepDaily,omitempty" mapstructure:"keepDaily"`
// KeepHourly is the number of hourly backups to keep
// optional
KeepHourly *int `json:"keepHourly,omitempty" mapstructure:"keepHourly"`
}
RetentionPolicy defines how many backups we should keep.
func (*RetentionPolicy) DeepCopy ¶
func (in *RetentionPolicy) DeepCopy() *RetentionPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RetentionPolicy.
func (*RetentionPolicy) DeepCopyInto ¶
func (in *RetentionPolicy) DeepCopyInto(out *RetentionPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type S3Configuration ¶
type S3Configuration struct {
// BucketName is the name of the bucket
BucketName string `json:"bucketName"`
// Prefix is the path within the bucket under which all Klio objects
// are stored, allowing a single bucket to be shared across multiple deployments.
// +optional
Prefix string `json:"prefix,omitempty"`
// Endpoint is the endpoint to be used
// +optional
Endpoint string `json:"endpoint,omitempty"`
// Region is the region to be used
// +optional
Region string `json:"region,omitempty"`
// The S3 access key ID
// +optional
AccessKeyID *machineryapi.SecretKeySelector `json:"accessKeyId,omitempty"`
// The S3 access key
// +optional
SecretAccessKey *machineryapi.SecretKeySelector `json:"secretAccessKey,omitempty"`
// The S3 session token
// +optional
SessionToken *machineryapi.SecretKeySelector `json:"sessionToken,omitempty"`
// A pointer to a custom CA bundle
// +optional
CustomCABundle *machineryapi.SecretKeySelector `json:"customCaBundle,omitempty"`
}
S3Configuration is the configuration to a S3 defined tier 2.
func (*S3Configuration) DeepCopy ¶
func (in *S3Configuration) DeepCopy() *S3Configuration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new S3Configuration.
func (*S3Configuration) DeepCopyInto ¶
func (in *S3Configuration) DeepCopyInto(out *S3Configuration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Server ¶
type Server struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata"`
Spec ServerSpec `json:"spec"`
// +optional
Status ServerStatus `json:"status,omitzero"`
}
Server is the Schema for the servers API.
func (*Server) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Server.
func (*Server) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Server) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Server) GetServiceName ¶
GetServiceName returns the name of the service associated with the Klio server.
type ServerList ¶
type ServerList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitzero"`
Items []Server `json:"items"`
}
ServerList contains a list of Server.
func (*ServerList) DeepCopy ¶
func (in *ServerList) DeepCopy() *ServerList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerList.
func (*ServerList) DeepCopyInto ¶
func (in *ServerList) DeepCopyInto(out *ServerList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ServerList) DeepCopyObject ¶
func (in *ServerList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ServerMode ¶
type ServerMode string
ServerMode defines the operation mode of the Server.
const ( // ModeStandard corresponds to server with standard read/write permissions. ModeStandard ServerMode = "standard" // ModeReadOnly corresponds to a server with read-only permissions. ModeReadOnly ServerMode = "read-only" )
type ServerSpec ¶
type ServerSpec struct {
// ImageConfiguration tells how to download the Klio
// image.
ImageConfiguration `json:",inline"`
// TLSConfiguration is used for the server-side
// certificate.
TLSConfiguration `json:",inline"`
// Mode selects the operation mode of the server.
// +kubebuilder:validation:Enum=standard;read-only
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="mode is immutable"
// +kubebuilder:default=standard
Mode ServerMode `json:"mode"`
// Tier1 is the Tier 1 configuration
Tier1 *Tier1Configuration `json:"tier1,omitempty"`
// Tier2 is the Tier 2 configuration
Tier2 *Tier2Configuration `json:"tier2,omitempty"`
// Queue is the configuration of the PVC that should host
// the task queue.
// +optional
Queue *Queue `json:"queue,omitempty"`
// Template to override the default StatefulSet of the Klio server.
// WARNING: Modifying this template may break the server functionality if not done carefully.
// This field is primarily intended for advanced configuration such as telemetry setup.
// Use at your own risk and ensure thorough testing before applying changes.
// +optional
Template *PodTemplateSpec `json:"template,omitempty"`
}
ServerSpec defines the desired state of Server. +kubebuilder:validation:XValidation:rule="self.mode == 'read-only' || has(self.tier1)",message="tier1 is required" +kubebuilder:validation:XValidation:rule="self.mode != 'read-only' || has(self.tier2)",message="tier2 is required when mode is read-only" +kubebuilder:validation:XValidation:rule="!(self.mode == 'read-only' && has(self.tier1))",message="tier1 cannot be set when mode is read-only" +kubebuilder:validation:XValidation:rule="!(self.mode == 'read-only' && has(self.queue))",message="queue cannot be set when mode is read-only" +kubebuilder:validation:XValidation:rule="self.mode == 'read-only' || has(self.queue)",message="queue is required when tier1 is configured"
func (*ServerSpec) DeepCopy ¶
func (in *ServerSpec) DeepCopy() *ServerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerSpec.
func (*ServerSpec) DeepCopyInto ¶
func (in *ServerSpec) DeepCopyInto(out *ServerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServerStatus ¶
type ServerStatus struct {
}
ServerStatus defines the observed state of Server.
func (*ServerStatus) DeepCopy ¶
func (in *ServerStatus) DeepCopy() *ServerStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerStatus.
func (*ServerStatus) DeepCopyInto ¶
func (in *ServerStatus) DeepCopyInto(out *ServerStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TLSConfiguration ¶
type TLSConfiguration struct {
// TLSSecretName is the name of the Kubernetes secret containing the server-side certificate
// to be used for the Klio server.
TLSSecretName string `json:"tlsSecretName"`
// ClientCASecretName is the name of the Kubernetes secret containing the CA certificate
// to be used by the Klio server to validate the users.
ClientCASecretName string `json:"caSecretName"`
}
TLSConfiguration contains the information needed to configure the PKI infrastructure of the Klio server.
func (*TLSConfiguration) DeepCopy ¶
func (in *TLSConfiguration) DeepCopy() *TLSConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSConfiguration.
func (*TLSConfiguration) DeepCopyInto ¶
func (in *TLSConfiguration) DeepCopyInto(out *TLSConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Tier1Configuration ¶
type Tier1Configuration struct {
// Cache is the configuration of the PVC that should be
// used for the cache.
Cache Cache `json:"cache"`
// Data is the configuration of the PVC that should be used
// for the base backups.
Data Data `json:"data"`
// EncryptionKeyFile specifies the Age-encrypted encryption key file.
EncryptionKeyFile FileSource `json:"encryptionKeyFile"`
// IdentityFile specifies the Age identity (private key) file used to
// decrypt the encryption key.
IdentityFile FileSource `json:"identityFile"`
}
Tier1Configuration is the tier 1 configuration.
func (*Tier1Configuration) DeepCopy ¶
func (in *Tier1Configuration) DeepCopy() *Tier1Configuration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tier1Configuration.
func (*Tier1Configuration) DeepCopyInto ¶
func (in *Tier1Configuration) DeepCopyInto(out *Tier1Configuration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Tier1PluginConfiguration ¶
type Tier1PluginConfiguration struct {
// RetentionPolicy defines how many backups we should keep
// +optional
RetentionPolicy *RetentionPolicy `json:"retention,omitempty" mapstructure:"retention"`
}
Tier1PluginConfiguration configures tier1 backup and recovery settings.
func (*Tier1PluginConfiguration) DeepCopy ¶
func (in *Tier1PluginConfiguration) DeepCopy() *Tier1PluginConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tier1PluginConfiguration.
func (*Tier1PluginConfiguration) DeepCopyInto ¶
func (in *Tier1PluginConfiguration) DeepCopyInto(out *Tier1PluginConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Tier2Configuration ¶
type Tier2Configuration struct {
// Cache is the configuration of the PVC that should be
// used for the cache.
Cache Cache `json:"cache"`
// S3 contains the configuration parameters for an S3-based tier 2.
S3 *S3Configuration `json:"s3"`
// EncryptionKeyFile specifies the Age-encrypted encryption key file.
EncryptionKeyFile FileSource `json:"encryptionKeyFile"`
// IdentityFile specifies the Age identity (private key) file used to
// decrypt the encryption key.
IdentityFile FileSource `json:"identityFile"`
}
Tier2Configuration is the tier 2 configuration.
func (*Tier2Configuration) DeepCopy ¶
func (in *Tier2Configuration) DeepCopy() *Tier2Configuration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tier2Configuration.
func (*Tier2Configuration) DeepCopyInto ¶
func (in *Tier2Configuration) DeepCopyInto(out *Tier2Configuration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Tier2PluginConfiguration ¶
type Tier2PluginConfiguration struct {
// EnableBackup controls whether WAL and base backups should be stored in tier2
// +optional
EnableBackup bool `json:"enableBackup,omitempty"`
// EnableRecovery controls whether tier2 should be included in the recovery source list
// +optional
EnableRecovery bool `json:"enableRecovery,omitempty"`
// RetentionPolicy defines how many backups we should keep
// +optional
RetentionPolicy *RetentionPolicy `json:"retention,omitempty" mapstructure:"retention"`
}
Tier2PluginConfiguration configures tier2 backup and recovery settings. +kubebuilder:validation:XValidation:rule="self.enableBackup || self.enableRecovery",message="at least one of enableBackup or enableRecovery must be true"
func (*Tier2PluginConfiguration) DeepCopy ¶
func (in *Tier2PluginConfiguration) DeepCopy() *Tier2PluginConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tier2PluginConfiguration.
func (*Tier2PluginConfiguration) DeepCopyInto ¶
func (in *Tier2PluginConfiguration) DeepCopyInto(out *Tier2PluginConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WALPrefetchConfiguration ¶
type WALPrefetchConfiguration struct {
// Count is the number of WAL files to prefetch ahead during recovery.
// A value of 0 disables prefetching.
// +kubebuilder:validation:Minimum=0
// +kubebuilder:validation:Maximum=64
// +kubebuilder:default=2
Count int `json:"count"`
// MaxConcurrentDownloads is the maximum number of concurrent WAL downloads.
// +kubebuilder:validation:Minimum=1
// +kubebuilder:validation:Maximum=64
// +kubebuilder:default=4
MaxConcurrentDownloads int `json:"maxConcurrentDownloads"`
}
WALPrefetchConfiguration configures WAL prefetching during recovery.
func (*WALPrefetchConfiguration) DeepCopy ¶
func (in *WALPrefetchConfiguration) DeepCopy() *WALPrefetchConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WALPrefetchConfiguration.
func (*WALPrefetchConfiguration) DeepCopyInto ¶
func (in *WALPrefetchConfiguration) DeepCopyInto(out *WALPrefetchConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.