v1alpha1

package
v0.0.0-...-de9510f Latest Latest
Warning

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

Go to latest
Published: Aug 17, 2026 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the klio v1alpha1 API group. +kubebuilder:object:generate=true +groupName=klio.cnpg.io

Index

Constants

View Source
const (
	// PluginConfigurationConditionConfigurationApplied indicates whether the
	// configuration has been successfully applied to the Secret.
	PluginConfigurationConditionConfigurationApplied = "ConfigurationApplied"
)

Condition types for PluginConfiguration.

View Source
const (
	// ReasonSecretUpdated means the Secret was successfully created or updated.
	ReasonSecretUpdated = "SecretUpdated"
)

Condition reasons for ConfigurationApplied.

Variables

View Source
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

func (in *Cache) DeepCopy() *Cache

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

func (*Cache) DeepCopyInto

func (in *Cache) DeepCopyInto(out *Cache)

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

func (in *Data) DeepCopy() *Data

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

func (*Data) DeepCopyInto

func (in *Data) DeepCopyInto(out *Data)

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

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

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

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

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

func (*PluginConfigurationStatus) DeepCopyInto

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

func (in *Queue) DeepCopy() *Queue

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

func (*Queue) DeepCopyInto

func (in *Queue) DeepCopyInto(out *Queue)

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

func (in *Server) DeepCopy() *Server

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

func (*Server) DeepCopyInto

func (in *Server) DeepCopyInto(out *Server)

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

func (*Server) DeepCopyObject

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

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

func (*Server) GetServiceName

func (s *Server) GetServiceName() string

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

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

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

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.

Jump to

Keyboard shortcuts

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