Documentation ¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the volsync v1alpha1 API group +kubebuilder:object:generate=true +groupName=volsync.backube
+kubebuilder:validation:Required
+kubebuilder:validation:Required
+kubebuilder:validation:Required
Index ¶
- Constants
- Variables
- type CopyMethodType
- type CustomCASpec
- type MoverConfig
- type MoverResult
- type MoverStatus
- type ReplicationDestination
- type ReplicationDestinationExternalSpec
- type ReplicationDestinationList
- type ReplicationDestinationRcloneSpec
- type ReplicationDestinationResticCA
- type ReplicationDestinationResticSpec
- type ReplicationDestinationRsyncSpec
- type ReplicationDestinationRsyncStatus
- type ReplicationDestinationRsyncTLSSpec
- type ReplicationDestinationRsyncTLSStatus
- type ReplicationDestinationSpec
- type ReplicationDestinationStatus
- type ReplicationDestinationTriggerSpec
- type ReplicationDestinationVolumeOptions
- type ReplicationSource
- type ReplicationSourceExternalSpec
- type ReplicationSourceList
- type ReplicationSourceRcloneSpec
- type ReplicationSourceResticCA
- type ReplicationSourceResticSpec
- type ReplicationSourceResticStatus
- type ReplicationSourceRsyncSpec
- type ReplicationSourceRsyncStatus
- type ReplicationSourceRsyncTLSSpec
- type ReplicationSourceRsyncTLSStatus
- type ReplicationSourceSpec
- type ReplicationSourceStatus
- type ReplicationSourceSyncthingSpec
- type ReplicationSourceSyncthingStatus
- type ReplicationSourceTriggerSpec
- type ReplicationSourceVolumeOptions
- type ResticRetainPolicy
- type SyncthingPeer
- type SyncthingPeerStatus
Constants ¶
const ( ConditionSynchronizing string = "Synchronizing" SynchronizingReasonSync string = "SyncInProgress" SynchronizingReasonSched string = "WaitingForSchedule" SynchronizingReasonManual string = "WaitingForManual" SynchronizingReasonCleanup string = "CleaningUp" SynchronizingReasonError string = "Error" )
const ( // Annotation optionally set on src pvc by user. When set, a volsync source replication // that is using CopyMode: Snapshot or Clone will wait for the user to set a unique copy-trigger // before proceeding to take the src snapshot/clone. UseCopyTriggerAnnotation = "volsync.backube/use-copy-trigger" CopyTriggerAnnotation = "volsync.backube/copy-trigger" // Annotations for status set by VolSync on a src pvc if UseCopyTriggerAnnotation is set to "true" LatestCopyTriggerAnnotation = "volsync.backube/latest-copy-trigger" LatestCopyStatusAnnotation = "volsync.backube/latest-copy-status" LatestCopyTriggerWaitingSinceAnnotation = "volsync.backube/latest-copy-trigger-waiting-since" // VolSync latest-copy-status annotation values LatestCopyStatusValueWaitingForTrigger = "WaitingForTrigger" LatestCopyStatusValueInProgress = "InProgress" LatestCopyStatusValueCompleted = "Completed" // Timeout before we start updating the latestMoverStatus with an error // (After timeout we still continue to sync and wait for the copy-trigger to be // set/updated) CopyTriggerWaitTimeout time.Duration = 10 * time.Minute )
const ( EvRDaemonConnected = "DaemonConnected" EvRTransferStarted = "TransferStarted" EvRTransferFailed = "TransferFailed" // Warning EvRSnapCreated = "VolumeSnapshotCreated" EvRSnapNotBound = "VolumeSnapshotNotBound" // Warning EvRPVCCreated = "PersistentVolumeClaimCreated" EvRPVCNotBound = "PersistentVolumeClaimNotBound" // Warning EvRSvcAddress = "ServiceAddressAssigned" EvRSvcNoAddress = "NoServiceAddressAssigned" // Warning EvRSrcPVCWaitingForCopyTrigger = "SrcPVCWaitingForCopyTrigger" EvRSrcPVCTimeoutWaitingForCopyTrigger = "SrcPVCTimeoutWaitingForCopyTrigger" // Warning EvRSrcPVCCopyTriggerReceived = "SrcPVCCopyTriggerReceived" EvRSrcPVCCopyUsingCopyTriggerCompleted = "SrcPVCCopyUsingCopyTriggerCompleted" )
ReplicationSource/ReplicationDestination Event "reason" strings: Why are we sending an event?
const ( EvANone = "" // No action EvACreateMover = "CreateMover" EvADeleteMover = "DeleteMover" EvACreatePVC = "CreatePersistentVolumeClaim" EvACreateSnap = "CreateVolumeSnapshot" EvACreateSrcCopyUsingCopyTrigger = "CreateSrcCopyUsingCopyTrigger" )
ReplicationSource/ReplicationDestination Event "action" strings: Things the controller "does"
const ( EvRVolPopPVCPopulatorFinished = "VolSyncPopulatorFinished" // #nosec G101 - gosec thinks this is a cred EvRVolPopPVCPopulatorError = "VolSyncPopulatorError" EvVolPopPVCReplicationDestMissing = "VolSyncPopulatorReplicationDestinationMissing" EvRVolPopPVCReplicationDestNoLatestImage = "VolSyncPopulatorReplicationDestinationNoLatestImage" EvRVolPopPVCCreationSuccess = "VolSyncPopulatorPVCCreated" EvRVolPopPVCCreationError = "VolSyncPopulatorPVCCreationError" )
Volume Populator Event "reason" strings
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "volsync.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=Direct;None;Clone;Snapshot
const ( // CopyMethodDirect indicates a copy should not be performed. Data will be copied directly to/from the PVC. CopyMethodDirect CopyMethodType = "Direct" // CopyMethodNone indicates a copy should not be performed. Deprecated (replaced by CopyMethodDirect). 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" // Namespace annotation to indicate that elevated permissions are ok for movers PrivilegedMoversNamespaceAnnotation = "volsync.backube/privileged-movers" // Annotation on ReplicationSource or ReplicationDestination to enable running the mover job in debug mode EnableDebugMoverAnnotation = "volsync.backube/enable-debug-mover" )
type CustomCASpec ¶ added in v0.8.0
type CustomCASpec struct { // The name of a Secret that contains the custom CA certificate // If SecretName is used then ConfigMapName should not be set SecretName string `json:"secretName,omitempty"` // The name of a ConfigMap that contains the custom CA certificate // If ConfigMapName is used then SecretName should not be set ConfigMapName string `json:"configMapName,omitempty"` // The key within the Secret or ConfigMap containing the CA certificate Key string `json:"key,omitempty"` }
func (*CustomCASpec) DeepCopy ¶ added in v0.8.0
func (in *CustomCASpec) DeepCopy() *CustomCASpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomCASpec.
func (*CustomCASpec) DeepCopyInto ¶ added in v0.8.0
func (in *CustomCASpec) DeepCopyInto(out *CustomCASpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MoverConfig ¶ added in v0.9.0
type MoverConfig struct { // MoverSecurityContext allows specifying the PodSecurityContext that will // be used by the data mover MoverSecurityContext *corev1.PodSecurityContext `json:"moverSecurityContext,omitempty"` // MoverServiceAccount allows specifying the name of the service account // that will be used by the data mover. This should only be used by advanced // users who want to override the service account normally used by the mover. // The service account needs to exist in the same namespace as this CR. //+optional MoverServiceAccount *string `json:"moverServiceAccount,omitempty"` // Labels that should be added to data mover pods // These will be in addition to any labels that VolSync may add // +optional MoverPodLabels map[string]string `json:"moverPodLabels,omitempty"` // Resources represents compute resources required by the data mover container. // Immutable. // More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ // This should only be used by advanced users as this can result in a mover // pod being unschedulable or crashing due to limited resources. // +optional MoverResources *corev1.ResourceRequirements `json:"moverResources,omitempty"` // MoverAffinity allows specifying the PodAffinity that will be used by the data mover MoverAffinity *corev1.Affinity `json:"moverAffinity,omitempty"` }
func (*MoverConfig) DeepCopy ¶ added in v0.9.0
func (in *MoverConfig) DeepCopy() *MoverConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MoverConfig.
func (*MoverConfig) DeepCopyInto ¶ added in v0.9.0
func (in *MoverConfig) DeepCopyInto(out *MoverConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MoverResult ¶ added in v0.7.0
type MoverResult string
const ( MoverResultSuccessful MoverResult = "Successful" MoverResultFailed MoverResult = "Failed" )
type MoverStatus ¶ added in v0.7.0
type MoverStatus struct { Result MoverResult `json:"result,omitempty"` Logs string `json:"logs,omitempty"` }
func (*MoverStatus) DeepCopy ¶ added in v0.7.0
func (in *MoverStatus) DeepCopy() *MoverStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MoverStatus.
func (*MoverStatus) DeepCopyInto ¶ added in v0.7.0
func (in *MoverStatus) DeepCopyInto(out *MoverStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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"` }
A ReplicationDestination is a VolSync resource that you can use to define the destination of a VolSync replication or synchronization. +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"` // customCA is a custom CA that will be used to verify the remote CustomCA CustomCASpec `json:"customCA,omitempty"` MoverConfig `json:",inline"` }
ReplicationDestinationRcloneSpec defines the field for rclone in replicationDestination.
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 ReplicationDestinationResticCA ¶ added in v0.6.0
type ReplicationDestinationResticCA CustomCASpec
func (*ReplicationDestinationResticCA) DeepCopy ¶ added in v0.6.0
func (in *ReplicationDestinationResticCA) DeepCopy() *ReplicationDestinationResticCA
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationDestinationResticCA.
func (*ReplicationDestinationResticCA) DeepCopyInto ¶ added in v0.6.0
func (in *ReplicationDestinationResticCA) DeepCopyInto(out *ReplicationDestinationResticCA)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicationDestinationResticSpec ¶
type ReplicationDestinationResticSpec struct { ReplicationDestinationVolumeOptions `json:",inline"` // Repository is the secret name containing repository info Repository string `json:"repository,omitempty"` // customCA is a custom CA that will be used to verify the remote CustomCA ReplicationDestinationResticCA `json:"customCA,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 []corev1.PersistentVolumeAccessMode `json:"cacheAccessModes,omitempty"` // Set this to true to delete the restic cache PVC (dynamically provisioned // by VolSync) at the end of each successful ReplicationDestination sync iteration. // Cache PVCs will always be deleted if the owning ReplicationDestination is // removed, even if this setting is false. // The default is false. //+optional CleanupCachePVC bool `json:"cleanupCachePVC,omitempty"` // Previous specifies the number of image to skip before selecting one to restore from //+optional Previous *int32 `json:"previous,omitempty"` // RestoreAsOf refers to the backup that is most recent as of that time. // +kubebuilder:validation:Format="date-time" //+optional RestoreAsOf *string `json:"restoreAsOf,omitempty"` // enableFileDeletion will pass the --delete flag to the restic restore command. // This will remove files and directories in the pvc that do not exist in the snapshot being restored. // Defaults to false. //+optional EnableFileDeletion bool `json:"enableFileDeletion,omitempty"` MoverConfig `json:",inline"` }
ReplicationDestinationResticSpec defines the field for restic in replicationDestination.
func (*ReplicationDestinationResticSpec) DeepCopy ¶
func (in *ReplicationDestinationResticSpec) DeepCopy() *ReplicationDestinationResticSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationDestinationResticSpec.
func (*ReplicationDestinationResticSpec) DeepCopyInto ¶
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"` // Will be used for the dynamic destination PVC created by VolSync. // Defaults to "Filesystem" //+optional VolumeMode *corev1.PersistentVolumeMode `json:"volumeMode,omitempty"` // 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 *corev1.ServiceType `json:"serviceType,omitempty"` // serviceAnnotations defines annotations that will be added to the // service created for incoming SSH connections. If set, these annotations // will be used instead of any VolSync default values. //+optional ServiceAnnotations *map[string]string `json:"serviceAnnotations,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"` // MoverServiceAccount allows specifying the name of the service account // that will be used by the data mover. This should only be used by advanced // users who want to override the service account normally used by the mover. // The service account needs to exist in the same namespace as the ReplicationDestination. //+optional MoverServiceAccount *string `json:"moverServiceAccount,omitempty"` // Labels that should be added to data mover pods // These will be in addition to any labels that VolSync may add // +optional MoverPodLabels map[string]string `json:"moverPodLabels,omitempty"` // Resources represents compute resources required by the data mover container. // Immutable. // More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ // This should only be used by advanced users as this can result in a mover // pod being unschedulable or crashing due to limited resources. // +optional MoverResources *corev1.ResourceRequirements `json:"moverResources,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 ReplicationDestinationRsyncTLSSpec ¶ added in v0.7.0
type ReplicationDestinationRsyncTLSSpec struct { ReplicationDestinationVolumeOptions `json:",inline"` // Will be used for the dynamic destination PVC created by VolSync. // Defaults to "Filesystem" //+optional VolumeMode *corev1.PersistentVolumeMode `json:"volumeMode,omitempty"` // keySecret is the name of a Secret that contains the TLS pre-shared key to // be used for authentication. If not provided, the key will be generated. //+optional KeySecret *string `json:"keySecret,omitempty"` // serviceType determines the Service type that will be created for incoming // TLS connections. //+optional ServiceType *corev1.ServiceType `json:"serviceType,omitempty"` // serviceAnnotations defines annotations that will be added to the // service created for incoming SSH connections. If set, these annotations // will be used instead of any VolSync default values. //+optional ServiceAnnotations *map[string]string `json:"serviceAnnotations,omitempty"` MoverConfig `json:",inline"` }
func (*ReplicationDestinationRsyncTLSSpec) DeepCopy ¶ added in v0.7.0
func (in *ReplicationDestinationRsyncTLSSpec) DeepCopy() *ReplicationDestinationRsyncTLSSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationDestinationRsyncTLSSpec.
func (*ReplicationDestinationRsyncTLSSpec) DeepCopyInto ¶ added in v0.7.0
func (in *ReplicationDestinationRsyncTLSSpec) DeepCopyInto(out *ReplicationDestinationRsyncTLSSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicationDestinationRsyncTLSStatus ¶ added in v0.7.0
type ReplicationDestinationRsyncTLSStatus struct { // keySecret is the name of a Secret that contains the TLS pre-shared key to // be used for authentication. If not provided in .spec.rsyncTLS.keySecret, // the key Secret will be generated and named here. //+optional KeySecret *string `json:"keySecret,omitempty"` // address is the address to connect to for incoming TLS connections. //+optional Address *string `json:"address,omitempty"` // port is the port to connect to for incoming replication connections. //+optional Port *int32 `json:"port,omitempty"` }
func (*ReplicationDestinationRsyncTLSStatus) DeepCopy ¶ added in v0.7.0
func (in *ReplicationDestinationRsyncTLSStatus) DeepCopy() *ReplicationDestinationRsyncTLSStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationDestinationRsyncTLSStatus.
func (*ReplicationDestinationRsyncTLSStatus) DeepCopyInto ¶ added in v0.7.0
func (in *ReplicationDestinationRsyncTLSStatus) DeepCopyInto(out *ReplicationDestinationRsyncTLSStatus)
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"` // rsyncTLS defines the configuration when using Rsync-based replication over TLS. //+optional RsyncTLS *ReplicationDestinationRsyncTLSSpec `json:"rsyncTLS,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"` // lastSyncStartTime is the time the most recent synchronization started. //+optional LastSyncStartTime *metav1.Time `json:"lastSyncStartTime,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 *corev1.TypedLocalObjectReference `json:"latestImage,omitempty"` // Logs/Summary from latest mover job //+optional LatestMoverStatus *MoverStatus `json:"latestMoverStatus,omitempty"` // rsync contains status information for Rsync-based replication. Rsync *ReplicationDestinationRsyncStatus `json:"rsync,omitempty"` // rsyncTLS contains status information for Rsync-based replication over TLS. RsyncTLS *ReplicationDestinationRsyncTLSStatus `json:"rsyncTLS,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 []metav1.Condition `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. // nolint:lll //+kubebuilder:validation:Pattern=`^(@(annually|yearly|monthly|weekly|daily|hourly))|((((\d+,)*\d+|(\d+(\/|-)\d+)|\*(\/\d+)?)\s?){5})$` //+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 []corev1.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"` // Set this to true to delete the temp destination PVC (dynamically provisioned // by VolSync) at the end of each successful ReplicationDestination sync iteration. // If destinationPVC is set, this will have no effect, VolSync will only // cleanup temp PVCs that it deployed. // Note that if this is set to true, every sync this ReplicationDestination // makes will re-provision a new temp destination PVC and all data // will need to be sent again during the sync. // Dynamically provisioned destination PVCs will always be deleted if the // owning ReplicationDestination is removed, even if this setting is false. // The default is false. //+optional CleanupTempPVC bool `json:"cleanupTempPVC,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"` }
A ReplicationSource is a VolSync resource that you can use to define the source PVC and replication mover type, enabling you to replicate or synchronize PVC data to a remote location. +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"` // customCA is a custom CA that will be used to verify the remote CustomCA CustomCASpec `json:"customCA,omitempty"` MoverConfig `json:",inline"` }
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 ReplicationSourceResticCA ¶ added in v0.6.0
type ReplicationSourceResticCA CustomCASpec
func (*ReplicationSourceResticCA) DeepCopy ¶ added in v0.6.0
func (in *ReplicationSourceResticCA) DeepCopy() *ReplicationSourceResticCA
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationSourceResticCA.
func (*ReplicationSourceResticCA) DeepCopyInto ¶ added in v0.6.0
func (in *ReplicationSourceResticCA) DeepCopyInto(out *ReplicationSourceResticCA)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicationSourceResticSpec ¶
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"` // customCA is a custom CA that will be used to verify the remote CustomCA ReplicationSourceResticCA `json:"customCA,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"` // CacheAccessModes can be used to set the accessModes of restic metadata cache volume //+optional CacheAccessModes []corev1.PersistentVolumeAccessMode `json:"cacheAccessModes,omitempty"` // unlock is a string value that schedules an unlock on the restic repository during // the next sync operation. // Once a sync completes then status.restic.lastUnlocked is set to the same string value. // To unlock a repository, set spec.restic.unlock to a known value and then wait for // lastUnlocked to be updated by the operator to the same value, // which means that the sync unlocked the repository by running a restic unlock command and // then ran a backup. // Unlock will not be run again unless spec.restic.unlock is set to a different value. Unlock string `json:"unlock,omitempty"` MoverConfig `json:",inline"` }
ReplicationSourceResticSpec defines the field for restic in replicationSource.
func (*ReplicationSourceResticSpec) DeepCopy ¶
func (in *ReplicationSourceResticSpec) DeepCopy() *ReplicationSourceResticSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationSourceResticSpec.
func (*ReplicationSourceResticSpec) DeepCopyInto ¶
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 ¶
type ReplicationSourceResticStatus struct { // lastPruned in the object holding the time of last pruned //+optional LastPruned *metav1.Time `json:"lastPruned,omitempty"` // lastUnlocked is set to the last spec.restic.unlock when a sync is done that unlocks the // restic repository. //+optional LastUnlocked string `json:"lastUnlocked,omitempty"` }
ReplicationSourceResticStatus defines the field for ReplicationSourceStatus in ReplicationSourceStatus
func (*ReplicationSourceResticStatus) DeepCopy ¶
func (in *ReplicationSourceResticStatus) DeepCopy() *ReplicationSourceResticStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationSourceResticStatus.
func (*ReplicationSourceResticStatus) DeepCopyInto ¶
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 *corev1.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"` // MoverServiceAccount allows specifying the name of the service account // that will be used by the data mover. This should only be used by advanced // users who want to override the service account normally used by the mover. // The service account needs to exist in the same namespace as the ReplicationSource. //+optional MoverServiceAccount *string `json:"moverServiceAccount,omitempty"` // Labels that should be added to data mover pods // These will be in addition to any labels that VolSync may add // +optional MoverPodLabels map[string]string `json:"moverPodLabels,omitempty"` // Resources represents compute resources required by the data mover container. // Immutable. // More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ // This should only be used by advanced users as this can result in a mover // pod being unschedulable or crashing due to limited resources. // +optional MoverResources *corev1.ResourceRequirements `json:"moverResources,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 ReplicationSourceRsyncTLSSpec ¶ added in v0.7.0
type ReplicationSourceRsyncTLSSpec struct { ReplicationSourceVolumeOptions `json:",inline"` // keySecret is the name of a Secret that contains the TLS pre-shared key to // be used for authentication. If not provided, the key will be generated. //+optional KeySecret *string `json:"keySecret,omitempty"` // address is the remote address to connect to for replication. //+optional Address *string `json:"address,omitempty"` // port is the port to connect to for replication. Defaults to 8000. //+kubebuilder:validation:Minimum=0 //+kubebuilder:validation:Maximum=65535 //+optional Port *int32 `json:"port,omitempty"` MoverConfig `json:",inline"` }
func (*ReplicationSourceRsyncTLSSpec) DeepCopy ¶ added in v0.7.0
func (in *ReplicationSourceRsyncTLSSpec) DeepCopy() *ReplicationSourceRsyncTLSSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationSourceRsyncTLSSpec.
func (*ReplicationSourceRsyncTLSSpec) DeepCopyInto ¶ added in v0.7.0
func (in *ReplicationSourceRsyncTLSSpec) DeepCopyInto(out *ReplicationSourceRsyncTLSSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicationSourceRsyncTLSStatus ¶ added in v0.7.0
type ReplicationSourceRsyncTLSStatus struct { // keySecret is the name of a Secret that contains the TLS pre-shared key to // be used for authentication. If not provided in .spec.rsyncTLS.keySecret, // the key Secret will be generated and named here. //+optional KeySecret *string `json:"keySecret,omitempty"` }
func (*ReplicationSourceRsyncTLSStatus) DeepCopy ¶ added in v0.7.0
func (in *ReplicationSourceRsyncTLSStatus) DeepCopy() *ReplicationSourceRsyncTLSStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationSourceRsyncTLSStatus.
func (*ReplicationSourceRsyncTLSStatus) DeepCopyInto ¶ added in v0.7.0
func (in *ReplicationSourceRsyncTLSStatus) DeepCopyInto(out *ReplicationSourceRsyncTLSStatus)
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"` // rsyncTLS defines the configuration when using Rsync-based replication over TLS. //+optional RsyncTLS *ReplicationSourceRsyncTLSSpec `json:"rsyncTLS,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"` // syncthing defines the configuration when using Syncthing-based replication. //+optional Syncthing *ReplicationSourceSyncthingSpec `json:"syncthing,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"` // lastSyncStartTime is the time the most recent synchronization started. //+optional LastSyncStartTime *metav1.Time `json:"lastSyncStartTime,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"` // Logs/Summary from latest mover job //+optional LatestMoverStatus *MoverStatus `json:"latestMoverStatus,omitempty"` // rsync contains status information for Rsync-based replication. Rsync *ReplicationSourceRsyncStatus `json:"rsync,omitempty"` // rsyncTLS contains status information for Rsync-based replication over TLS. RsyncTLS *ReplicationSourceRsyncTLSStatus `json:"rsyncTLS,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 []metav1.Condition `json:"conditions,omitempty"` // restic contains status information for Restic-based replication. Restic *ReplicationSourceResticStatus `json:"restic,omitempty"` // contains status information when Syncthing-based replication is used. //+optional Syncthing *ReplicationSourceSyncthingStatus `json:"syncthing,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 ReplicationSourceSyncthingSpec ¶ added in v0.4.0
type ReplicationSourceSyncthingSpec struct { // List of Syncthing peers to be connected for syncing Peers []SyncthingPeer `json:"peers,omitempty"` // Type of service to be used when exposing the Syncthing peer //+optional ServiceType *corev1.ServiceType `json:"serviceType,omitempty"` // Used to set the size of the Syncthing config volume. //+optional ConfigCapacity *resource.Quantity `json:"configCapacity,omitempty"` // Used to set the StorageClass of the Syncthing config volume. //+optional ConfigStorageClassName *string `json:"configStorageClassName,omitempty"` // Used to set the accessModes of Syncthing config volume. //+optional ConfigAccessModes []corev1.PersistentVolumeAccessMode `json:"configAccessModes,omitempty"` MoverConfig `json:",inline"` }
define the Syncthing field
func (*ReplicationSourceSyncthingSpec) DeepCopy ¶ added in v0.4.0
func (in *ReplicationSourceSyncthingSpec) DeepCopy() *ReplicationSourceSyncthingSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationSourceSyncthingSpec.
func (*ReplicationSourceSyncthingSpec) DeepCopyInto ¶ added in v0.4.0
func (in *ReplicationSourceSyncthingSpec) DeepCopyInto(out *ReplicationSourceSyncthingSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicationSourceSyncthingStatus ¶ added in v0.4.0
type ReplicationSourceSyncthingStatus struct { // List of the Syncthing nodes we are currently connected to. Peers []SyncthingPeerStatus `json:"peers,omitempty"` // Device ID of the current syncthing device ID string `json:"ID,omitempty"` // Service address where Syncthing is exposed to the rest of the world Address string `json:"address,omitempty"` }
func (*ReplicationSourceSyncthingStatus) DeepCopy ¶ added in v0.4.0
func (in *ReplicationSourceSyncthingStatus) DeepCopy() *ReplicationSourceSyncthingStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationSourceSyncthingStatus.
func (*ReplicationSourceSyncthingStatus) DeepCopyInto ¶ added in v0.4.0
func (in *ReplicationSourceSyncthingStatus) DeepCopyInto(out *ReplicationSourceSyncthingStatus)
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. // nolint:lll //+kubebuilder:validation:Pattern=`^(@(annually|yearly|monthly|weekly|daily|hourly))|((((\d+,)*\d+|(\d+(\/|-)\d+)|\*(\/\d+)?)\s?){5})$` //+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 []corev1.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 ¶
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"` // Last defines the number of snapshots to be kept //+optional Last *string `json:"last,omitempty"` }
ResticRetainPolicy defines the feilds for Restic backup
func (*ResticRetainPolicy) DeepCopy ¶
func (in *ResticRetainPolicy) DeepCopy() *ResticRetainPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResticRetainPolicy.
func (*ResticRetainPolicy) DeepCopyInto ¶
func (in *ResticRetainPolicy) DeepCopyInto(out *ResticRetainPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SyncthingPeer ¶ added in v0.4.0
type SyncthingPeer struct { // The peer's address that our Syncthing node will connect to. Address string `json:"address"` // The peer's Syncthing ID. ID string `json:"ID"` // A flag that determines whether this peer should // introduce us to other peers sharing this volume. // It is HIGHLY recommended that two Syncthing peers do NOT // set each other as introducers as you will have a difficult time // disconnecting the two. Introducer bool `json:"introducer"` }
SyncthingPeer Defines the necessary information needed by VolSync to configure a given peer with the running Syncthing instance.
func (*SyncthingPeer) DeepCopy ¶ added in v0.4.0
func (in *SyncthingPeer) DeepCopy() *SyncthingPeer
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncthingPeer.
func (*SyncthingPeer) DeepCopyInto ¶ added in v0.4.0
func (in *SyncthingPeer) DeepCopyInto(out *SyncthingPeer)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SyncthingPeerStatus ¶ added in v0.4.0
type SyncthingPeerStatus struct { // The address of the Syncthing peer. Address string `json:"address"` // ID Is the peer's Syncthing ID. ID string `json:"ID"` // Flag indicating whether peer is currently connected. Connected bool `json:"connected"` // The ID of the Syncthing peer that this one was introduced by. IntroducedBy string `json:"introducedBy,omitempty"` // A friendly name to associate the given device. Name string `json:"name,omitempty"` }
SyncthingPeerStatus Is a struct that contains information pertaining to the status of a given Syncthing peer.
func (*SyncthingPeerStatus) DeepCopy ¶ added in v0.4.0
func (in *SyncthingPeerStatus) DeepCopy() *SyncthingPeerStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncthingPeerStatus.
func (*SyncthingPeerStatus) DeepCopyInto ¶ added in v0.4.0
func (in *SyncthingPeerStatus) DeepCopyInto(out *SyncthingPeerStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.