Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the scribe v1alpha1 API group +kubebuilder:object:generate=true +groupName=scribe.backube
+kubebuilder:validation:Required
+kubebuilder:validation:Required
Index ¶
- Constants
- Variables
- type CopyMethodType
- type ReplicationDestination
- type ReplicationDestinationExternalSpec
- type ReplicationDestinationList
- type ReplicationDestinationRcloneSpec
- type ReplicationDestinationResticSpec
- type ReplicationDestinationRsyncSpec
- type ReplicationDestinationRsyncStatus
- type ReplicationDestinationSpec
- type ReplicationDestinationStatus
- type ReplicationDestinationTriggerSpec
- type ReplicationDestinationVolumeOptions
- type ReplicationSource
- type ReplicationSourceExternalSpec
- type ReplicationSourceList
- type ReplicationSourceRcloneSpec
- type ReplicationSourceResticSpec
- type ReplicationSourceResticStatus
- type ReplicationSourceRsyncSpec
- type ReplicationSourceRsyncStatus
- type ReplicationSourceSpec
- type ReplicationSourceStatus
- type ReplicationSourceTriggerSpec
- type ReplicationSourceVolumeOptions
- type ResticRetainPolicy
Constants ¶
const ( // ConditionReconciled is a status condition type that indicates whether the // CR has been successfully reconciled ConditionReconciled status.ConditionType = "Reconciled" // ReconciledReasonComplete indicates the CR was successfully reconciled ReconciledReasonComplete status.ConditionReason = "ReconcileComplete" // ReconciledReasonError indicates an error was encountered while // reconciling the CR ReconciledReasonError status.ConditionReason = "ReconcileError" )
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "scribe.backube", 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 )
Functions ¶
This section is empty.
Types ¶
type CopyMethodType ¶
type CopyMethodType string
CopyMethodType defines the methods for creating point-in-time copies of volumes. +kubebuilder:validation:Enum=None;Clone;Snapshot
const ( // CopyMethodNone indicates a copy should not be performed. CopyMethodNone CopyMethodType = "None" // CopyMethodClone indicates a copy should be created using volume cloning. CopyMethodClone CopyMethodType = "Clone" // CopyMethodSnapshot indicates a copy should be created using a volume // snapshot. CopyMethodSnapshot CopyMethodType = "Snapshot" )
type ReplicationDestination ¶
type ReplicationDestination struct {
metav1.TypeMeta `json:",inline"`
//+optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec is the desired state of the ReplicationDestination, including the
// replication method to use and its configuration.
Spec ReplicationDestinationSpec `json:"spec,omitempty"`
// status is the observed state of the ReplicationDestination as determined
// by the controller.
//+optional
Status *ReplicationDestinationStatus `json:"status,omitempty"`
}
ReplicationDestination defines the destination for a replicated volume +kubebuilder:object:root=true +kubebuilder:resource:scope=Namespaced +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Last sync",type="string",format="date-time",JSONPath=`.status.lastSyncTime` +kubebuilder:printcolumn:name="Duration",type="string",JSONPath=`.status.lastSyncDuration` +kubebuilder:printcolumn:name="Next sync",type="string",format="date-time",JSONPath=`.status.nextSyncTime`
func (*ReplicationDestination) DeepCopy ¶
func (in *ReplicationDestination) DeepCopy() *ReplicationDestination
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationDestination.
func (*ReplicationDestination) DeepCopyInto ¶
func (in *ReplicationDestination) DeepCopyInto(out *ReplicationDestination)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ReplicationDestination) DeepCopyObject ¶
func (in *ReplicationDestination) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ReplicationDestinationExternalSpec ¶
type ReplicationDestinationExternalSpec struct {
// provider is the name of the external replication provider. The name
// should be of the form: domain.com/provider.
Provider string `json:"provider,omitempty"`
// parameters are provider-specific key/value configuration parameters. For
// more information, please see the documentation of the specific
// replication provider being used.
Parameters map[string]string `json:"parameters,omitempty"`
}
ReplicationDestinationExternalSpec defines the configuration when using an external replication provider.
func (*ReplicationDestinationExternalSpec) DeepCopy ¶
func (in *ReplicationDestinationExternalSpec) DeepCopy() *ReplicationDestinationExternalSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationDestinationExternalSpec.
func (*ReplicationDestinationExternalSpec) DeepCopyInto ¶
func (in *ReplicationDestinationExternalSpec) DeepCopyInto(out *ReplicationDestinationExternalSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicationDestinationList ¶
type ReplicationDestinationList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ReplicationDestination `json:"items"`
}
ReplicationDestinationList contains a list of ReplicationDestination +kubebuilder:object:root=true
func (*ReplicationDestinationList) DeepCopy ¶
func (in *ReplicationDestinationList) DeepCopy() *ReplicationDestinationList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationDestinationList.
func (*ReplicationDestinationList) DeepCopyInto ¶
func (in *ReplicationDestinationList) DeepCopyInto(out *ReplicationDestinationList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ReplicationDestinationList) DeepCopyObject ¶
func (in *ReplicationDestinationList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ReplicationDestinationRcloneSpec ¶
type ReplicationDestinationRcloneSpec struct {
ReplicationDestinationVolumeOptions `json:",inline"`
//RcloneConfigSection is the section in rclone_config file to use for the current job.
RcloneConfigSection *string `json:"rcloneConfigSection,omitempty"`
// RcloneDestPath is the remote path to sync to.
RcloneDestPath *string `json:"rcloneDestPath,omitempty"`
// RcloneConfig is the rclone secret name
RcloneConfig *string `json:"rcloneConfig,omitempty"`
}
ReplicationDestinationRcloneSpec defines the field for rclone in replicationSource.
func (*ReplicationDestinationRcloneSpec) DeepCopy ¶
func (in *ReplicationDestinationRcloneSpec) DeepCopy() *ReplicationDestinationRcloneSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationDestinationRcloneSpec.
func (*ReplicationDestinationRcloneSpec) DeepCopyInto ¶
func (in *ReplicationDestinationRcloneSpec) DeepCopyInto(out *ReplicationDestinationRcloneSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicationDestinationResticSpec ¶ added in v0.2.0
type ReplicationDestinationResticSpec struct {
ReplicationDestinationVolumeOptions `json:",inline"`
// Repository is the secret name containing repository info
Repository string `json:"repository,omitempty"`
// cacheCapacity can be used to set the size of the restic metadata cache volume
//+optional
CacheCapacity *resource.Quantity `json:"cacheCapacity,omitempty"`
// cacheStorageClassName can be used to set the StorageClass of the restic
// metadata cache volume
//+optional
CacheStorageClassName *string `json:"cacheStorageClassName,omitempty"`
// accessModes can be used to set the accessModes of restic metadata cache volume
//+optional
CacheAccessModes []v1.PersistentVolumeAccessMode `json:"cacheAccessModes,omitempty"`
}
ReplicationDestinationResticSpec defines the field for restic in replicationDestination.
func (*ReplicationDestinationResticSpec) DeepCopy ¶ added in v0.2.0
func (in *ReplicationDestinationResticSpec) DeepCopy() *ReplicationDestinationResticSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationDestinationResticSpec.
func (*ReplicationDestinationResticSpec) DeepCopyInto ¶ added in v0.2.0
func (in *ReplicationDestinationResticSpec) DeepCopyInto(out *ReplicationDestinationResticSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicationDestinationRsyncSpec ¶
type ReplicationDestinationRsyncSpec struct {
ReplicationDestinationVolumeOptions `json:",inline"`
// sshKeys is the name of a Secret that contains the SSH keys to be used for
// authentication. If not provided, the keys will be generated.
//+optional
SSHKeys *string `json:"sshKeys,omitempty"`
// serviceType determines the Service type that will be created for incoming
// SSH connections.
//+optional
ServiceType *v1.ServiceType `json:"serviceType,omitempty"`
// address is the remote address to connect to for replication.
//+optional
Address *string `json:"address,omitempty"`
// port is the SSH port to connect to for replication. Defaults to 22.
//+kubebuilder:validation:Minimum=0
//+kubebuilder:validation:Maximum=65535
//+optional
Port *int32 `json:"port,omitempty"`
// path is the remote path to rsync from. Defaults to "/"
//+optional
Path *string `json:"path,omitempty"`
// sshUser is the username for outgoing SSH connections. Defaults to "root".
//+optional
SSHUser *string `json:"sshUser,omitempty"`
}
func (*ReplicationDestinationRsyncSpec) DeepCopy ¶
func (in *ReplicationDestinationRsyncSpec) DeepCopy() *ReplicationDestinationRsyncSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationDestinationRsyncSpec.
func (*ReplicationDestinationRsyncSpec) DeepCopyInto ¶
func (in *ReplicationDestinationRsyncSpec) DeepCopyInto(out *ReplicationDestinationRsyncSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicationDestinationRsyncStatus ¶
type ReplicationDestinationRsyncStatus struct {
// sshKeys is the name of a Secret that contains the SSH keys to be used for
// authentication. If not provided in .spec.rsync.sshKeys, SSH keys will be
// generated and the appropriate keys for the remote side will be placed
// here.
//+optional
SSHKeys *string `json:"sshKeys,omitempty"`
// address is the address to connect to for incoming SSH replication
// connections.
//+optional
Address *string `json:"address,omitempty"`
// port is the SSH port to connect to for incoming SSH replication
// connections.
//+optional
Port *int32 `json:"port,omitempty"`
}
func (*ReplicationDestinationRsyncStatus) DeepCopy ¶
func (in *ReplicationDestinationRsyncStatus) DeepCopy() *ReplicationDestinationRsyncStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationDestinationRsyncStatus.
func (*ReplicationDestinationRsyncStatus) DeepCopyInto ¶
func (in *ReplicationDestinationRsyncStatus) DeepCopyInto(out *ReplicationDestinationRsyncStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicationDestinationSpec ¶
type ReplicationDestinationSpec struct {
// trigger determines if/when the destination should attempt to synchronize
// data with the source.
//+optional
Trigger *ReplicationDestinationTriggerSpec `json:"trigger,omitempty"`
// rsync defines the configuration when using Rsync-based replication.
//+optional
Rsync *ReplicationDestinationRsyncSpec `json:"rsync,omitempty"`
// rclone defines the configuration when using Rclone-based replication.
//+optional
Rclone *ReplicationDestinationRcloneSpec `json:"rclone,omitempty"`
// restic defines the configuration when using Restic-based replication.
//+optional
Restic *ReplicationDestinationResticSpec `json:"restic,omitempty"`
// external defines the configuration when using an external replication
// provider.
//+optional
External *ReplicationDestinationExternalSpec `json:"external,omitempty"`
// paused can be used to temporarily stop replication. Defaults to "false".
//+optional
Paused bool `json:"paused,omitempty"`
}
ReplicationDestinationSpec defines the desired state of ReplicationDestination
func (*ReplicationDestinationSpec) DeepCopy ¶
func (in *ReplicationDestinationSpec) DeepCopy() *ReplicationDestinationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationDestinationSpec.
func (*ReplicationDestinationSpec) DeepCopyInto ¶
func (in *ReplicationDestinationSpec) DeepCopyInto(out *ReplicationDestinationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicationDestinationStatus ¶
type ReplicationDestinationStatus struct {
// lastSyncTime is the time of the most recent successful synchronization.
//+optional
LastSyncTime *metav1.Time `json:"lastSyncTime,omitempty"`
// lastSyncDuration is the amount of time required to send the most recent
// update.
//+optional
LastSyncDuration *metav1.Duration `json:"lastSyncDuration,omitempty"`
// nextSyncTime is the time when the next volume synchronization is
// scheduled to start (for schedule-based synchronization).
//+optional
NextSyncTime *metav1.Time `json:"nextSyncTime,omitempty"`
// lastManualSync is set to the last spec.trigger.manual when the manual sync is done.
//+optional
LastManualSync string `json:"lastManualSync,omitempty"`
// latestImage in the object holding the most recent consistent replicated
// image.
//+optional
LatestImage *v1.TypedLocalObjectReference `json:"latestImage,omitempty"`
// rsync contains status information for Rsync-based replication.
Rsync *ReplicationDestinationRsyncStatus `json:"rsync,omitempty"`
// external contains provider-specific status information. For more details,
// please see the documentation of the specific replication provider being
// used.
//+optional
External map[string]string `json:"external,omitempty"`
// conditions represent the latest available observations of the
// destination's state.
Conditions status.Conditions `json:"conditions,omitempty"`
}
ReplicationDestinationStatus defines the observed state of ReplicationDestination
func (*ReplicationDestinationStatus) DeepCopy ¶
func (in *ReplicationDestinationStatus) DeepCopy() *ReplicationDestinationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationDestinationStatus.
func (*ReplicationDestinationStatus) DeepCopyInto ¶
func (in *ReplicationDestinationStatus) DeepCopyInto(out *ReplicationDestinationStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicationDestinationTriggerSpec ¶
type ReplicationDestinationTriggerSpec struct {
// schedule is a cronspec (https://en.wikipedia.org/wiki/Cron#Overview) that
// can be used to schedule replication to occur at regular, time-based
// intervals.
//+kubebuilder:validation:Pattern=`^(\d+|\*)(/\d+)?(\s+(\d+|\*)(/\d+)?){4}$`
//+optional
Schedule *string `json:"schedule,omitempty"`
// manual is a string value that schedules a manual trigger.
// Once a sync completes then status.lastManualSync is set to the same string value.
// A consumer of a manual trigger should set spec.trigger.manual to a known value
// and then wait for lastManualSync to be updated by the operator to the same value,
// which means that the manual trigger will then pause and wait for further
// updates to the trigger.
//+optional
Manual string `json:"manual,omitempty"`
}
ReplicationDestinationTriggerSpec defines when a volume will be synchronized with the source.
func (*ReplicationDestinationTriggerSpec) DeepCopy ¶
func (in *ReplicationDestinationTriggerSpec) DeepCopy() *ReplicationDestinationTriggerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationDestinationTriggerSpec.
func (*ReplicationDestinationTriggerSpec) DeepCopyInto ¶
func (in *ReplicationDestinationTriggerSpec) DeepCopyInto(out *ReplicationDestinationTriggerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicationDestinationVolumeOptions ¶
type ReplicationDestinationVolumeOptions struct {
// copyMethod describes how a point-in-time (PiT) image of the destination
// volume should be created.
CopyMethod CopyMethodType `json:"copyMethod,omitempty"`
// capacity is the size of the destination volume to create.
//+optional
Capacity *resource.Quantity `json:"capacity,omitempty"`
// storageClassName can be used to specify the StorageClass of the
// destination volume. If not set, the default StorageClass will be used.
//+optional
StorageClassName *string `json:"storageClassName,omitempty"`
// accessModes specifies the access modes for the destination volume.
//+kubebuilder:validation:MinItems=1
//+optional
AccessModes []v1.PersistentVolumeAccessMode `json:"accessModes,omitempty"`
// volumeSnapshotClassName can be used to specify the VSC to be used if
// copyMethod is Snapshot. If not set, the default VSC is used.
//+optional
VolumeSnapshotClassName *string `json:"volumeSnapshotClassName,omitempty"`
// destinationPVC is a PVC to use as the transfer destination instead of
// automatically provisioning one. Either this field or both capacity and
// accessModes must be specified.
//+optional
DestinationPVC *string `json:"destinationPVC,omitempty"`
}
func (*ReplicationDestinationVolumeOptions) DeepCopy ¶
func (in *ReplicationDestinationVolumeOptions) DeepCopy() *ReplicationDestinationVolumeOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationDestinationVolumeOptions.
func (*ReplicationDestinationVolumeOptions) DeepCopyInto ¶
func (in *ReplicationDestinationVolumeOptions) DeepCopyInto(out *ReplicationDestinationVolumeOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicationSource ¶
type ReplicationSource struct {
metav1.TypeMeta `json:",inline"`
//+optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec is the desired state of the ReplicationSource, including the
// replication method to use and its configuration.
Spec ReplicationSourceSpec `json:"spec,omitempty"`
// status is the observed state of the ReplicationSource as determined by
// the controller.
//+optional
Status *ReplicationSourceStatus `json:"status,omitempty"`
}
ReplicationSource defines the source for a replicated volume +kubebuilder:object:root=true +kubebuilder:resource:scope=Namespaced +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Source",type="string",JSONPath=`.spec.sourcePVC` +kubebuilder:printcolumn:name="Last sync",type="string",format="date-time",JSONPath=`.status.lastSyncTime` +kubebuilder:printcolumn:name="Duration",type="string",JSONPath=`.status.lastSyncDuration` +kubebuilder:printcolumn:name="Next sync",type="string",format="date-time",JSONPath=`.status.nextSyncTime`
func (*ReplicationSource) DeepCopy ¶
func (in *ReplicationSource) DeepCopy() *ReplicationSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationSource.
func (*ReplicationSource) DeepCopyInto ¶
func (in *ReplicationSource) DeepCopyInto(out *ReplicationSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ReplicationSource) DeepCopyObject ¶
func (in *ReplicationSource) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ReplicationSourceExternalSpec ¶
type ReplicationSourceExternalSpec struct {
// provider is the name of the external replication provider. The name
// should be of the form: domain.com/provider.
Provider string `json:"provider,omitempty"`
// parameters are provider-specific key/value configuration parameters. For
// more information, please see the documentation of the specific
// replication provider being used.
Parameters map[string]string `json:"parameters,omitempty"`
}
ReplicationSourceExternalSpec defines the configuration when using an external replication provider.
func (*ReplicationSourceExternalSpec) DeepCopy ¶
func (in *ReplicationSourceExternalSpec) DeepCopy() *ReplicationSourceExternalSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationSourceExternalSpec.
func (*ReplicationSourceExternalSpec) DeepCopyInto ¶
func (in *ReplicationSourceExternalSpec) DeepCopyInto(out *ReplicationSourceExternalSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicationSourceList ¶
type ReplicationSourceList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ReplicationSource `json:"items"`
}
ReplicationSourceList contains a list of Source +kubebuilder:object:root=true
func (*ReplicationSourceList) DeepCopy ¶
func (in *ReplicationSourceList) DeepCopy() *ReplicationSourceList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationSourceList.
func (*ReplicationSourceList) DeepCopyInto ¶
func (in *ReplicationSourceList) DeepCopyInto(out *ReplicationSourceList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ReplicationSourceList) DeepCopyObject ¶
func (in *ReplicationSourceList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ReplicationSourceRcloneSpec ¶
type ReplicationSourceRcloneSpec struct {
ReplicationSourceVolumeOptions `json:",inline"`
//RcloneConfigSection is the section in rclone_config file to use for the current job.
RcloneConfigSection *string `json:"rcloneConfigSection,omitempty"`
// RcloneDestPath is the remote path to sync to.
RcloneDestPath *string `json:"rcloneDestPath,omitempty"`
// RcloneConfig is the rclone secret name
RcloneConfig *string `json:"rcloneConfig,omitempty"`
}
ReplicationSourceRcloneSpec defines the field for rclone in replicationSource.
func (*ReplicationSourceRcloneSpec) DeepCopy ¶
func (in *ReplicationSourceRcloneSpec) DeepCopy() *ReplicationSourceRcloneSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationSourceRcloneSpec.
func (*ReplicationSourceRcloneSpec) DeepCopyInto ¶
func (in *ReplicationSourceRcloneSpec) DeepCopyInto(out *ReplicationSourceRcloneSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicationSourceResticSpec ¶ added in v0.2.0
type ReplicationSourceResticSpec struct {
ReplicationSourceVolumeOptions `json:",inline"`
// PruneIntervalDays define how often to prune the repository
PruneIntervalDays *int32 `json:"pruneIntervalDays,omitempty"`
// Repository is the secret name containing repository info
Repository string `json:"repository,omitempty"`
// ResticRetainPolicy define the retain policy
//+optional
Retain *ResticRetainPolicy `json:"retain,omitempty"`
// cacheCapacity can be used to set the size of the restic metadata cache volume
//+optional
CacheCapacity *resource.Quantity `json:"cacheCapacity,omitempty"`
// cacheStorageClassName can be used to set the StorageClass of the restic
// metadata cache volume
//+optional
CacheStorageClassName *string `json:"cacheStorageClassName,omitempty"`
// accessModes can be used to set the accessModes of restic metadata cache volume
//+optional
CacheAccessModes []v1.PersistentVolumeAccessMode `json:"cacheAccessModes,omitempty"`
}
ReplicationSourceResticSpec defines the field for restic in replicationSource.
func (*ReplicationSourceResticSpec) DeepCopy ¶ added in v0.2.0
func (in *ReplicationSourceResticSpec) DeepCopy() *ReplicationSourceResticSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationSourceResticSpec.
func (*ReplicationSourceResticSpec) DeepCopyInto ¶ added in v0.2.0
func (in *ReplicationSourceResticSpec) DeepCopyInto(out *ReplicationSourceResticSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicationSourceResticStatus ¶ added in v0.2.0
type ReplicationSourceResticStatus struct {
// lastPruned in the object holding the time of last pruned
//+optional
LastPruned *metav1.Time `json:"lastPruned,omitempty"`
}
ReplicationSourceResticStatus defines the field for ReplicationSourceStatus in ReplicationSourceStatus
func (*ReplicationSourceResticStatus) DeepCopy ¶ added in v0.2.0
func (in *ReplicationSourceResticStatus) DeepCopy() *ReplicationSourceResticStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationSourceResticStatus.
func (*ReplicationSourceResticStatus) DeepCopyInto ¶ added in v0.2.0
func (in *ReplicationSourceResticStatus) DeepCopyInto(out *ReplicationSourceResticStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicationSourceRsyncSpec ¶
type ReplicationSourceRsyncSpec struct {
ReplicationSourceVolumeOptions `json:",inline"`
// sshKeys is the name of a Secret that contains the SSH keys to be used for
// authentication. If not provided, the keys will be generated.
//+optional
SSHKeys *string `json:"sshKeys,omitempty"`
// serviceType determines the Service type that will be created for incoming
// SSH connections.
//+optional
ServiceType *v1.ServiceType `json:"serviceType,omitempty"`
// address is the remote address to connect to for replication.
//+optional
Address *string `json:"address,omitempty"`
// port is the SSH port to connect to for replication. Defaults to 22.
//+kubebuilder:validation:Minimum=0
//+kubebuilder:validation:Maximum=65535
//+optional
Port *int32 `json:"port,omitempty"`
// path is the remote path to rsync to. Defaults to "/"
//+optional
Path *string `json:"path,omitempty"`
// sshUser is the username for outgoing SSH connections. Defaults to "root".
//+optional
SSHUser *string `json:"sshUser,omitempty"`
}
func (*ReplicationSourceRsyncSpec) DeepCopy ¶
func (in *ReplicationSourceRsyncSpec) DeepCopy() *ReplicationSourceRsyncSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationSourceRsyncSpec.
func (*ReplicationSourceRsyncSpec) DeepCopyInto ¶
func (in *ReplicationSourceRsyncSpec) DeepCopyInto(out *ReplicationSourceRsyncSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicationSourceRsyncStatus ¶
type ReplicationSourceRsyncStatus struct {
// sshKeys is the name of a Secret that contains the SSH keys to be used for
// authentication. If not provided in .spec.rsync.sshKeys, SSH keys will be
// generated and the appropriate keys for the remote side will be placed
// here.
//+optional
SSHKeys *string `json:"sshKeys,omitempty"`
// address is the address to connect to for incoming SSH replication
// connections.
//+optional
Address *string `json:"address,omitempty"`
// port is the SSH port to connect to for incoming SSH replication
// connections.
//+optional
Port *int32 `json:"port,omitempty"`
}
func (*ReplicationSourceRsyncStatus) DeepCopy ¶
func (in *ReplicationSourceRsyncStatus) DeepCopy() *ReplicationSourceRsyncStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationSourceRsyncStatus.
func (*ReplicationSourceRsyncStatus) DeepCopyInto ¶
func (in *ReplicationSourceRsyncStatus) DeepCopyInto(out *ReplicationSourceRsyncStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicationSourceSpec ¶
type ReplicationSourceSpec struct {
// sourcePVC is the name of the PersistentVolumeClaim (PVC) to replicate.
SourcePVC string `json:"sourcePVC,omitempty"`
// trigger determines when the latest state of the volume will be captured
// (and potentially replicated to the destination).
//+optional
Trigger *ReplicationSourceTriggerSpec `json:"trigger,omitempty"`
// rsync defines the configuration when using Rsync-based replication.
//+optional
Rsync *ReplicationSourceRsyncSpec `json:"rsync,omitempty"`
// rclone defines the configuration when using Rclone-based replication.
//+optional
Rclone *ReplicationSourceRcloneSpec `json:"rclone,omitempty"`
// restic defines the configuration when using Restic-based replication.
//+optional
Restic *ReplicationSourceResticSpec `json:"restic,omitempty"`
// external defines the configuration when using an external replication
// provider.
//+optional
External *ReplicationSourceExternalSpec `json:"external,omitempty"`
// paused can be used to temporarily stop replication. Defaults to "false".
//+optional
Paused bool `json:"paused,omitempty"`
}
ReplicationSourceSpec defines the desired state of ReplicationSource
func (*ReplicationSourceSpec) DeepCopy ¶
func (in *ReplicationSourceSpec) DeepCopy() *ReplicationSourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationSourceSpec.
func (*ReplicationSourceSpec) DeepCopyInto ¶
func (in *ReplicationSourceSpec) DeepCopyInto(out *ReplicationSourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicationSourceStatus ¶
type ReplicationSourceStatus struct {
// lastSyncTime is the time of the most recent successful synchronization.
//+optional
LastSyncTime *metav1.Time `json:"lastSyncTime,omitempty"`
// lastSyncDuration is the amount of time required to send the most recent
// update.
//+optional
LastSyncDuration *metav1.Duration `json:"lastSyncDuration,omitempty"`
// nextSyncTime is the time when the next volume synchronization is
// scheduled to start (for schedule-based synchronization).
//+optional
NextSyncTime *metav1.Time `json:"nextSyncTime,omitempty"`
// lastManualSync is set to the last spec.trigger.manual when the manual sync is done.
//+optional
LastManualSync string `json:"lastManualSync,omitempty"`
// rsync contains status information for Rsync-based replication.
Rsync *ReplicationSourceRsyncStatus `json:"rsync,omitempty"`
// external contains provider-specific status information. For more details,
// please see the documentation of the specific replication provider being
// used.
//+optional
External map[string]string `json:"external,omitempty"`
// conditions represent the latest available observations of the
// source's state.
Conditions status.Conditions `json:"conditions,omitempty"`
// restic contains status information for Restic-based replication.
Restic *ReplicationSourceResticStatus `json:"restic,omitempty"`
}
ReplicationSourceStatus defines the observed state of ReplicationSource
func (*ReplicationSourceStatus) DeepCopy ¶
func (in *ReplicationSourceStatus) DeepCopy() *ReplicationSourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationSourceStatus.
func (*ReplicationSourceStatus) DeepCopyInto ¶
func (in *ReplicationSourceStatus) DeepCopyInto(out *ReplicationSourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicationSourceTriggerSpec ¶
type ReplicationSourceTriggerSpec struct {
// schedule is a cronspec (https://en.wikipedia.org/wiki/Cron#Overview) that
// can be used to schedule replication to occur at regular, time-based
// intervals.
//+kubebuilder:validation:Pattern=`^(\d+|\*)(/\d+)?(\s+(\d+|\*)(/\d+)?){4}$`
//+optional
Schedule *string `json:"schedule,omitempty"`
// manual is a string value that schedules a manual trigger.
// Once a sync completes then status.lastManualSync is set to the same string value.
// A consumer of a manual trigger should set spec.trigger.manual to a known value
// and then wait for lastManualSync to be updated by the operator to the same value,
// which means that the manual trigger will then pause and wait for further
// updates to the trigger.
//+optional
Manual string `json:"manual,omitempty"`
}
ReplicationSourceTriggerSpec defines when a volume will be synchronized with the destination.
func (*ReplicationSourceTriggerSpec) DeepCopy ¶
func (in *ReplicationSourceTriggerSpec) DeepCopy() *ReplicationSourceTriggerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationSourceTriggerSpec.
func (*ReplicationSourceTriggerSpec) DeepCopyInto ¶
func (in *ReplicationSourceTriggerSpec) DeepCopyInto(out *ReplicationSourceTriggerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicationSourceVolumeOptions ¶
type ReplicationSourceVolumeOptions struct {
// copyMethod describes how a point-in-time (PiT) image of the source volume
// should be created.
CopyMethod CopyMethodType `json:"copyMethod,omitempty"`
// capacity can be used to override the capacity of the PiT image.
//+optional
Capacity *resource.Quantity `json:"capacity,omitempty"`
// storageClassName can be used to override the StorageClass of the PiT
// image.
//+optional
StorageClassName *string `json:"storageClassName,omitempty"`
// accessModes can be used to override the accessModes of the PiT image.
//+kubebuilder:validation:MinItems=1
//+optional
AccessModes []v1.PersistentVolumeAccessMode `json:"accessModes,omitempty"`
// volumeSnapshotClassName can be used to specify the VSC to be used if
// copyMethod is Snapshot. If not set, the default VSC is used.
//+optional
VolumeSnapshotClassName *string `json:"volumeSnapshotClassName,omitempty"`
}
func (*ReplicationSourceVolumeOptions) DeepCopy ¶
func (in *ReplicationSourceVolumeOptions) DeepCopy() *ReplicationSourceVolumeOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationSourceVolumeOptions.
func (*ReplicationSourceVolumeOptions) DeepCopyInto ¶
func (in *ReplicationSourceVolumeOptions) DeepCopyInto(out *ReplicationSourceVolumeOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResticRetainPolicy ¶ added in v0.2.0
type ResticRetainPolicy struct {
// Hourly defines the number of snapshots to be kept hourly
//+optional
Hourly *int32 `json:"hourly,omitempty"`
// Daily defines the number of snapshots to be kept daily
//+optional
Daily *int32 `json:"daily,omitempty"`
// Weekly defines the number of snapshots to be kept weekly
//+optional
Weekly *int32 `json:"weekly,omitempty"`
// Monthly defines the number of snapshots to be kept monthly
//+optional
Monthly *int32 `json:"monthly,omitempty"`
// Yearly defines the number of snapshots to be kept yearly
//+optional
Yearly *int32 `json:"yearly,omitempty"`
// Within defines the number of snapshots to be kept Within the given time period
//+optional
Within *string `json:"within,omitempty"`
}
ResticRetainPolicy defines the feilds for Restic backup
func (*ResticRetainPolicy) DeepCopy ¶ added in v0.2.0
func (in *ResticRetainPolicy) DeepCopy() *ResticRetainPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResticRetainPolicy.
func (*ResticRetainPolicy) DeepCopyInto ¶ added in v0.2.0
func (in *ResticRetainPolicy) DeepCopyInto(out *ResticRetainPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.