Documentation
¶
Overview ¶
+k8s:deepcopy-gen=package,register +k8s:openapi-gen=true +groupName=dataprotection.kubeblocks.io
Package v1alpha1 contains API Schema definitions for the dataprotection v1alpha1 API group +kubebuilder:object:generate=true +groupName=dataprotection.kubeblocks.io
Index ¶
- Variables
- func Resource(resource string) schema.GroupResource
- type AccessMethod
- type ActionErrorMode
- type ActionPhase
- type ActionSet
- type ActionSetList
- type ActionSetSpec
- type ActionSetStatus
- type ActionSpec
- type ActionStatus
- type ActionType
- type Backup
- type BackupActionSpec
- type BackupDataActionSpec
- type BackupDeletionPolicy
- type BackupList
- type BackupMethod
- type BackupPhase
- type BackupPolicy
- type BackupPolicyList
- type BackupPolicyPhase
- type BackupPolicySpec
- type BackupPolicyStatus
- type BackupRef
- type BackupRepo
- type BackupRepoList
- type BackupRepoPhase
- type BackupRepoSpec
- type BackupRepoStatus
- type BackupSchedule
- type BackupScheduleList
- type BackupSchedulePhase
- type BackupScheduleSpec
- type BackupScheduleStatus
- type BackupSpec
- type BackupStatus
- type BackupTarget
- type BackupTimeRange
- type BackupType
- type BaseJobActionSpec
- type ConnectionCredential
- type ExecAction
- type ExecActionSpec
- type ExecActionTarget
- type IncludeResource
- type JobAction
- type JobActionSpec
- type JobActionTarget
- type KubeResources
- type Phase
- type PodSelectionStrategy
- type PodSelector
- type PrepareDataConfig
- type ReadinessProbe
- type ReadinessProbeExecAction
- type ReadyConfig
- type Restore
- type RestoreActionSpec
- type RestoreActionStatus
- type RestoreKubeResources
- type RestoreList
- type RestorePhase
- type RestoreSpec
- type RestoreStage
- type RestoreStatus
- type RestoreStatusAction
- type RestoreStatusActions
- type RestoreVolumeClaim
- type RestoreVolumeClaimsTemplate
- type RetentionPeriod
- type RuntimeSettings
- type SchedulePhase
- type SchedulePolicy
- type ScheduleStatus
- type SchedulingSpec
- type SyncProgress
- type TargetVolumeInfo
- type VolumeClaimRestorePolicy
- type VolumeConfig
- type VolumeSnapshotStatus
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "dataprotection.kubeblocks.io", 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 )
var SchemeGroupVersion = GroupVersion
SchemeGroupVersion is group version used to register these objects.
Functions ¶
func Resource ¶ added in v0.6.0
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group qualified GroupResource
Types ¶
type AccessMethod ¶ added in v0.7.0
type AccessMethod string
AccessMethod is an enum type that defines the access method of the backup repo.
const ( // AccessMethodMount means that the storage is mounted locally, // so that remote files can be accessed just like a local file. AccessMethodMount AccessMethod = "Mount" // AccessMethodTool means to access the storage with a command-line tool, // which helps to transfer files between the storage and local. AccessMethodTool AccessMethod = "Tool" )
type ActionErrorMode ¶ added in v0.7.0
type ActionErrorMode string
ActionErrorMode defines how should treat an error from an action. +kubebuilder:validation:Enum=Continue;Fail
const ( // ActionErrorModeContinue means that an error from an action is acceptable. ActionErrorModeContinue ActionErrorMode = "Continue" // ActionErrorModeFail means that an error from an action is problematic. ActionErrorModeFail ActionErrorMode = "Fail" )
type ActionPhase ¶ added in v0.7.0
type ActionPhase string
const ( // ActionPhaseNew means the action has been created but not yet processed by // the BackupController. ActionPhaseNew ActionPhase = "New" // ActionPhaseRunning means the action is currently executing. ActionPhaseRunning ActionPhase = "Running" // ActionPhaseCompleted means the action has run successfully without errors. ActionPhaseCompleted ActionPhase = "Completed" // ActionPhaseFailed means the action ran but encountered an error that ActionPhaseFailed ActionPhase = "Failed" )
type ActionSet ¶ added in v0.7.0
type ActionSet struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ActionSetSpec `json:"spec,omitempty"`
Status ActionSetStatus `json:"status,omitempty"`
}
ActionSet is the Schema for the actionsets API
func (*ActionSet) DeepCopy ¶ added in v0.7.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionSet.
func (*ActionSet) DeepCopyInto ¶ added in v0.7.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ActionSet) DeepCopyObject ¶ added in v0.7.0
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ActionSet) HasPostReadyStage ¶ added in v0.7.0
func (*ActionSet) HasPrepareDataStage ¶ added in v0.7.0
type ActionSetList ¶ added in v0.7.0
type ActionSetList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ActionSet `json:"items"`
}
ActionSetList contains a list of ActionSet
func (*ActionSetList) DeepCopy ¶ added in v0.7.0
func (in *ActionSetList) DeepCopy() *ActionSetList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionSetList.
func (*ActionSetList) DeepCopyInto ¶ added in v0.7.0
func (in *ActionSetList) DeepCopyInto(out *ActionSetList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ActionSetList) DeepCopyObject ¶ added in v0.7.0
func (in *ActionSetList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ActionSetSpec ¶ added in v0.7.0
type ActionSetSpec struct {
// backupType specifies the backup type, supported values: Full, Continuous.
// Full means full backup.
// Incremental means back up data that have changed since the last backup (full or incremental).
// Differential means back up data that have changed since the last full backup.
// Continuous will back up the transaction log continuously, the PITR (Point in Time Recovery).
// can be performed based on the continuous backup and full backup.
// +kubebuilder:validation:Enum={Full,Incremental,Differential,Continuous}
// +kubebuilder:default=Full
// +kubebuilder:validation:Required
BackupType BackupType `json:"backupType"`
// List of environment variables to set in the container.
// +kubebuilder:pruning:PreserveUnknownFields
// +optional
Env []corev1.EnvVar `json:"env,omitempty" patchStrategy:"merge" patchMergeKey:"name"`
// List of sources to populate environment variables in the container.
// The keys defined within a source must be a C_IDENTIFIER. All invalid keys
// will be reported as an event when the container is starting. When a key exists in multiple
// sources, the value associated with the last source will take precedence.
// Values defined by an Env with a duplicate key will take precedence.
// Cannot be updated.
// +kubebuilder:pruning:PreserveUnknownFields
// +optional
EnvFrom []corev1.EnvFromSource `json:"envFrom,omitempty"`
// backup specifies the backup action.
// +optional
Backup *BackupActionSpec `json:"backup,omitempty"`
// restore specifies the restore action.
// +optional
Restore *RestoreActionSpec `json:"restore,omitempty"`
}
ActionSetSpec defines the desired state of ActionSet
func (*ActionSetSpec) DeepCopy ¶ added in v0.7.0
func (in *ActionSetSpec) DeepCopy() *ActionSetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionSetSpec.
func (*ActionSetSpec) DeepCopyInto ¶ added in v0.7.0
func (in *ActionSetSpec) DeepCopyInto(out *ActionSetSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ActionSetStatus ¶ added in v0.7.0
type ActionSetStatus struct {
// phase - in list of [Available,Unavailable]
// +optional
Phase Phase `json:"phase,omitempty"`
// A human-readable message indicating details about why the ActionSet is in this phase.
// +optional
Message string `json:"message,omitempty"`
// generation number
// +optional
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}
ActionSetStatus defines the observed state of ActionSet
func (*ActionSetStatus) DeepCopy ¶ added in v0.7.0
func (in *ActionSetStatus) DeepCopy() *ActionSetStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionSetStatus.
func (*ActionSetStatus) DeepCopyInto ¶ added in v0.7.0
func (in *ActionSetStatus) DeepCopyInto(out *ActionSetStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ActionSpec ¶ added in v0.7.0
type ActionSpec struct {
// exec specifies the action should be executed by the pod exec API in a container.
// +optional
Exec *ExecActionSpec `json:"exec,omitempty"`
// job specifies the action should be executed by a Kubernetes Job.
// +optional
Job *JobActionSpec `json:"job,omitempty"`
}
ActionSpec defines an action that should be executed. Only one of the fields may be set.
func (*ActionSpec) DeepCopy ¶ added in v0.7.0
func (in *ActionSpec) DeepCopy() *ActionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionSpec.
func (*ActionSpec) DeepCopyInto ¶ added in v0.7.0
func (in *ActionSpec) DeepCopyInto(out *ActionSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ActionStatus ¶ added in v0.7.0
type ActionStatus struct {
// name is the name of the action.
Name string `json:"name,omitempty"`
// phase is the current state of the action.
// +optional
Phase ActionPhase `json:"phase,omitempty"`
// startTimestamp records the time an action was started.
// +optional
StartTimestamp *metav1.Time `json:"startTimestamp,omitempty"`
// completionTimestamp records the time an action was completed.
// +optional
CompletionTimestamp *metav1.Time `json:"completionTimestamp,omitempty"`
// failureReason is an error that caused the backup to fail.
// +optional
FailureReason string `json:"failureReason,omitempty"`
// actionType is the type of the action.
// +optional
ActionType ActionType `json:"actionType,omitempty"`
// availableReplicas available replicas for statefulSet action.
// +optional
AvailableReplicas *int32 `json:"availableReplicas,omitempty"`
// objectRef is the object reference for the action.
// +optional
ObjectRef *corev1.ObjectReference `json:"objectRef,omitempty"`
// totalSize is the total size of backed up data size.
// A string with capacity units in the format of "1Gi", "1Mi", "1Ki".
// +optional
TotalSize string `json:"totalSize,omitempty"`
// timeRange records the time range of backed up data, for PITR, this is the
// time range of recoverable data.
// +optional
TimeRange *BackupTimeRange `json:"timeRange,omitempty"`
// volumeSnapshots records the volume snapshot status for the action.
// +optional
VolumeSnapshots []VolumeSnapshotStatus `json:"volumeSnapshots,omitempty"`
}
func (*ActionStatus) DeepCopy ¶ added in v0.7.0
func (in *ActionStatus) DeepCopy() *ActionStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionStatus.
func (*ActionStatus) DeepCopyInto ¶ added in v0.7.0
func (in *ActionStatus) DeepCopyInto(out *ActionStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ActionType ¶ added in v0.7.0
type ActionType string
const ( ActionTypeJob ActionType = "Job" ActionTypeStatefulSet ActionType = "StatefulSet" ActionTypeNone ActionType = "" )
type Backup ¶
type Backup struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec BackupSpec `json:"spec,omitempty"`
Status BackupStatus `json:"status,omitempty"`
}
Backup is the Schema for the backups API.
func (*Backup) DeepCopy ¶ added in v0.6.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Backup.
func (*Backup) DeepCopyInto ¶ added in v0.6.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Backup) DeepCopyObject ¶ added in v0.6.0
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Backup) GetEndTime ¶ added in v0.7.0
GetEndTime gets the backup end time. Default return status.completionTimestamp, unless status.timeRange.endTime is not nil.
func (*Backup) GetStartTime ¶ added in v0.7.0
GetStartTime gets the backup start time. Default return status.startTimestamp, unless status.timeRange.startTime is not nil.
type BackupActionSpec ¶ added in v0.7.0
type BackupActionSpec struct {
// backupData specifies the backup data action.
// +kubebuilder:validation:Required
BackupData *BackupDataActionSpec `json:"backupData,omitempty"`
// preBackup specifies a hook that should be executed before the backup.
// +optional
PreBackup []ActionSpec `json:"preBackup,omitempty"`
// postBackup specifies a hook that should be executed after the backup.
// +optional
PostBackup []ActionSpec `json:"postBackup,omitempty"`
// preDelete defines that custom deletion action which can be executed before executing the built-in deletion action.
// note that preDelete action job will ignore the env/envFrom.
// +optional
PreDeleteBackup *BaseJobActionSpec `json:"preDelete,omitempty"`
}
func (*BackupActionSpec) DeepCopy ¶ added in v0.7.0
func (in *BackupActionSpec) DeepCopy() *BackupActionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupActionSpec.
func (*BackupActionSpec) DeepCopyInto ¶ added in v0.7.0
func (in *BackupActionSpec) DeepCopyInto(out *BackupActionSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BackupDataActionSpec ¶ added in v0.7.0
type BackupDataActionSpec struct {
JobActionSpec `json:",inline"`
// syncProgress specifies whether to sync the backup progress and its interval seconds.
// +optional
SyncProgress *SyncProgress `json:"syncProgress,omitempty"`
}
BackupDataActionSpec defines how to back up data.
func (*BackupDataActionSpec) DeepCopy ¶ added in v0.7.0
func (in *BackupDataActionSpec) DeepCopy() *BackupDataActionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupDataActionSpec.
func (*BackupDataActionSpec) DeepCopyInto ¶ added in v0.7.0
func (in *BackupDataActionSpec) DeepCopyInto(out *BackupDataActionSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BackupDeletionPolicy ¶ added in v0.7.0
type BackupDeletionPolicy string
BackupDeletionPolicy describes a policy for end-of-life maintenance of backup content. +enum +kubebuilder:validation:Enum={Delete,Retain}
const ( BackupDeletionPolicyDelete BackupDeletionPolicy = "Delete" BackupDeletionPolicyRetain BackupDeletionPolicy = "Retain" )
type BackupList ¶
type BackupList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Backup `json:"items"`
}
BackupList contains a list of Backup.
func (*BackupList) DeepCopy ¶ added in v0.6.0
func (in *BackupList) DeepCopy() *BackupList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupList.
func (*BackupList) DeepCopyInto ¶ added in v0.6.0
func (in *BackupList) DeepCopyInto(out *BackupList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BackupList) DeepCopyObject ¶ added in v0.6.0
func (in *BackupList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type BackupMethod ¶ added in v0.6.0
type BackupMethod struct {
// the name of backup method.
// +kubebuilder:validation:Required
// +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$`
Name string `json:"name"`
// snapshotVolumes specifies whether to take snapshots of persistent volumes.
// if true, the BackupScript is not required, the controller will use the CSI
// volume snapshotter to create the snapshot.
// +optional
// +kubebuilder:default=false
SnapshotVolumes *bool `json:"snapshotVolumes,omitempty"`
// actionSetName refers to the ActionSet object that defines the backup actions.
// For volume snapshot backup, the actionSet is not required, the controller
// will use the CSI volume snapshotter to create the snapshot.
// +optional
ActionSetName string `json:"actionSetName,omitempty"`
// targetVolumes specifies which volumes from the target should be mounted in
// the backup workload.
// +optional
TargetVolumes *TargetVolumeInfo `json:"targetVolumes,omitempty"`
// env specifies the environment variables for the backup workload.
// +optional
Env []corev1.EnvVar `json:"env,omitempty"`
// runtimeSettings specifies runtime settings for the backup workload container.
// +optional
RuntimeSettings *RuntimeSettings `json:"runtimeSettings,omitempty"`
// target specifies the target information to back up, it will override the global target policy.
// +optional
Target *BackupTarget `json:"target,omitempty"`
}
BackupMethod defines the backup method.
func (*BackupMethod) DeepCopy ¶ added in v0.7.0
func (in *BackupMethod) DeepCopy() *BackupMethod
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupMethod.
func (*BackupMethod) DeepCopyInto ¶ added in v0.7.0
func (in *BackupMethod) DeepCopyInto(out *BackupMethod)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BackupPhase ¶
type BackupPhase string
BackupPhase is a string representation of the lifecycle phase of a Backup. +enum +kubebuilder:validation:Enum={New,InProgress,Running,Completed,Failed,Deleting}
const ( // BackupPhaseNew means the backup has been created but not yet processed by // the BackupController. BackupPhaseNew BackupPhase = "New" // BackupPhaseRunning means the backup is currently executing. BackupPhaseRunning BackupPhase = "Running" // BackupPhaseCompleted means the backup has run successfully without errors. BackupPhaseCompleted BackupPhase = "Completed" // BackupPhaseFailed means the backup ran but encountered an error that // prevented it from completing successfully. BackupPhaseFailed BackupPhase = "Failed" // BackupPhaseDeleting means the backup and all its associated data are being deleted. BackupPhaseDeleting BackupPhase = "Deleting" )
type BackupPolicy ¶
type BackupPolicy struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec BackupPolicySpec `json:"spec,omitempty"`
Status BackupPolicyStatus `json:"status,omitempty"`
}
BackupPolicy is the Schema for the backuppolicies API.
func (*BackupPolicy) DeepCopy ¶ added in v0.6.0
func (in *BackupPolicy) DeepCopy() *BackupPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupPolicy.
func (*BackupPolicy) DeepCopyInto ¶ added in v0.6.0
func (in *BackupPolicy) DeepCopyInto(out *BackupPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BackupPolicy) DeepCopyObject ¶ added in v0.6.0
func (in *BackupPolicy) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type BackupPolicyList ¶
type BackupPolicyList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []BackupPolicy `json:"items"`
}
BackupPolicyList contains a list of BackupPolicy
func (*BackupPolicyList) DeepCopy ¶ added in v0.6.0
func (in *BackupPolicyList) DeepCopy() *BackupPolicyList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupPolicyList.
func (*BackupPolicyList) DeepCopyInto ¶ added in v0.6.0
func (in *BackupPolicyList) DeepCopyInto(out *BackupPolicyList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BackupPolicyList) DeepCopyObject ¶ added in v0.6.0
func (in *BackupPolicyList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type BackupPolicyPhase ¶
type BackupPolicyPhase string
BackupPolicyPhase defines phases for BackupPolicy. +enum +kubebuilder:validation:Enum={Available,Failed}
const ( BackupPolicyAvailable BackupPolicyPhase = "Available" BackupPolicyFailed BackupPolicyPhase = "Failed" )
type BackupPolicySpec ¶
type BackupPolicySpec struct {
// backupRepoName is the name of BackupRepo and the backup data will be
// stored in this repository. If not set, will be stored in the default
// backup repository.
// +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$`
// +optional
BackupRepoName *string `json:"backupRepoName,omitempty"`
// pathPrefix is the directory inside the backup repository to store the backup content.
// It is a relative to the path of the backup repository.
// +optional
PathPrefix string `json:"pathPrefix,omitempty"`
// Specifies the number of retries before marking the backup failed.
// +optional
// +kubebuilder:validation:Minimum=0
// +kubebuilder:validation:Maximum=10
BackoffLimit *int32 `json:"backoffLimit,omitempty"`
// target specifies the target information to back up.
// +kubebuilder:validation:Required
Target *BackupTarget `json:"target"`
// backupMethods defines the backup methods.
// +kubebuilder:validation:Required
BackupMethods []BackupMethod `json:"backupMethods"`
// useKopia specifies whether backup data should be stored in a Kopia repository.
// Data within the Kopia repository is both compressed and encrypted. Furthermore,
// data deduplication is implemented across various backups of the same cluster.
// This approach significantly reduces the actual storage usage, particularly for
// clusters with a low update frequency.
// NOTE: This feature should NOT be enabled when using KubeBlocks Community Edition,
// otherwise the backup will not be processed.
// +optional
// +kubebuilder:default=false
UseKopia bool `json:"useKopia"`
}
BackupPolicySpec defines the desired state of BackupPolicy
func (*BackupPolicySpec) DeepCopy ¶ added in v0.6.0
func (in *BackupPolicySpec) DeepCopy() *BackupPolicySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupPolicySpec.
func (*BackupPolicySpec) DeepCopyInto ¶ added in v0.6.0
func (in *BackupPolicySpec) DeepCopyInto(out *BackupPolicySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BackupPolicyStatus ¶
type BackupPolicyStatus struct {
// phase - in list of [Available,Unavailable]
// +optional
Phase Phase `json:"phase,omitempty"`
// A human-readable message indicating details about why the BackupPolicy is
// in this phase.
// +optional
Message string `json:"message,omitempty"`
// observedGeneration is the most recent generation observed for this
// BackupPolicy. It refers to the BackupPolicy's generation, which is
// updated on mutation by the API Server.
// +optional
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}
BackupPolicyStatus defines the observed state of BackupPolicy
func (*BackupPolicyStatus) DeepCopy ¶ added in v0.6.0
func (in *BackupPolicyStatus) DeepCopy() *BackupPolicyStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupPolicyStatus.
func (*BackupPolicyStatus) DeepCopyInto ¶ added in v0.6.0
func (in *BackupPolicyStatus) DeepCopyInto(out *BackupPolicyStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BackupRef ¶ added in v0.7.0
type BackupRef struct {
// backup name
// +kubebuilder:validation:Required
Name string `json:"name"`
// backup namespace
// +kubebuilder:validation:Required
Namespace string `json:"namespace"`
}
BackupRef describes the backup name and namespace.
func (*BackupRef) DeepCopy ¶ added in v0.7.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupRef.
func (*BackupRef) DeepCopyInto ¶ added in v0.7.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BackupRepo ¶ added in v0.6.0
type BackupRepo struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec BackupRepoSpec `json:"spec,omitempty"`
Status BackupRepoStatus `json:"status,omitempty"`
}
BackupRepo is the Schema for the backuprepos API
func (*BackupRepo) AccessByMount ¶ added in v0.7.0
func (repo *BackupRepo) AccessByMount() bool
func (*BackupRepo) AccessByTool ¶ added in v0.7.0
func (repo *BackupRepo) AccessByTool() bool
func (*BackupRepo) DeepCopy ¶ added in v0.6.0
func (in *BackupRepo) DeepCopy() *BackupRepo
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupRepo.
func (*BackupRepo) DeepCopyInto ¶ added in v0.6.0
func (in *BackupRepo) DeepCopyInto(out *BackupRepo)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BackupRepo) DeepCopyObject ¶ added in v0.6.0
func (in *BackupRepo) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type BackupRepoList ¶ added in v0.6.0
type BackupRepoList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []BackupRepo `json:"items"`
}
BackupRepoList contains a list of BackupRepo
func (*BackupRepoList) DeepCopy ¶ added in v0.6.0
func (in *BackupRepoList) DeepCopy() *BackupRepoList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupRepoList.
func (*BackupRepoList) DeepCopyInto ¶ added in v0.6.0
func (in *BackupRepoList) DeepCopyInto(out *BackupRepoList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BackupRepoList) DeepCopyObject ¶ added in v0.6.0
func (in *BackupRepoList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type BackupRepoPhase ¶ added in v0.6.0
type BackupRepoPhase string
BackupRepoPhase defines phases for BackupRepo CR. +enum +kubebuilder:validation:Enum={PreChecking,Failed,Ready,Deleting}
const ( BackupRepoPreChecking BackupRepoPhase = "PreChecking" BackupRepoFailed BackupRepoPhase = "Failed" BackupRepoReady BackupRepoPhase = "Ready" BackupRepoDeleting BackupRepoPhase = "Deleting" )
type BackupRepoSpec ¶ added in v0.6.0
type BackupRepoSpec struct {
// The storage provider used by this backup repo.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="StorageProviderRef is immutable"
// +kubebuilder:validation:Required
StorageProviderRef string `json:"storageProviderRef"`
// Specifies the access method of the backup repo.
// +kubebuilder:validation:Enum={Mount,Tool}
// +kubebuilder:default=Mount
// +optional
AccessMethod AccessMethod `json:"accessMethod,omitempty"`
// The requested capacity for the PVC created by this backup repo.
// +optional
VolumeCapacity resource.Quantity `json:"volumeCapacity,omitempty"`
// The reclaim policy for the PV created by this backup repo.
// +kubebuilder:validation:Enum={Delete,Retain}
// +kubebuilder:validation:Required
PVReclaimPolicy corev1.PersistentVolumeReclaimPolicy `json:"pvReclaimPolicy"`
// Non-secret configurations for the storage provider.
// +optional
Config map[string]string `json:"config,omitempty"`
// A secret that contains the credentials needed by the storage provider.
// +optional
Credential *corev1.SecretReference `json:"credential,omitempty"`
}
BackupRepoSpec defines the desired state of BackupRepo
func (*BackupRepoSpec) DeepCopy ¶ added in v0.6.0
func (in *BackupRepoSpec) DeepCopy() *BackupRepoSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupRepoSpec.
func (*BackupRepoSpec) DeepCopyInto ¶ added in v0.6.0
func (in *BackupRepoSpec) DeepCopyInto(out *BackupRepoSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BackupRepoStatus ¶ added in v0.6.0
type BackupRepoStatus struct {
// Backup repo reconciliation phases. Valid values are PreChecking, Failed, Ready, Deleting.
// +kubebuilder:validation:Enum={PreChecking,Failed,Ready,Deleting}
// +optional
Phase BackupRepoPhase `json:"phase,omitempty"`
// conditions describes the current state of the repo.
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
// observedGeneration is the latest generation observed by the controller.
// +optional
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
// generatedCSIDriverSecret references the generated secret used by the CSI driver.
// +optional
GeneratedCSIDriverSecret *corev1.SecretReference `json:"generatedCSIDriverSecret,omitempty"`
// generatedStorageClassName indicates the generated storage class name.
// +optional
GeneratedStorageClassName string `json:"generatedStorageClassName,omitempty"`
// backupPVCName is the name of the PVC used to store backup data.
// +optional
BackupPVCName string `json:"backupPVCName,omitempty"`
// toolConfigSecretName is the name of the secret containing the configuration for the access tool.
// +optional
ToolConfigSecretName string `json:"toolConfigSecretName,omitempty"`
// isDefault indicates whether this backup repo is the default one.
// +optional
IsDefault bool `json:"isDefault,omitempty"`
}
BackupRepoStatus defines the observed state of BackupRepo
func (*BackupRepoStatus) DeepCopy ¶ added in v0.6.0
func (in *BackupRepoStatus) DeepCopy() *BackupRepoStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupRepoStatus.
func (*BackupRepoStatus) DeepCopyInto ¶ added in v0.6.0
func (in *BackupRepoStatus) DeepCopyInto(out *BackupRepoStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BackupSchedule ¶ added in v0.7.0
type BackupSchedule struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec BackupScheduleSpec `json:"spec,omitempty"`
Status BackupScheduleStatus `json:"status,omitempty"`
}
BackupSchedule is the Schema for the backupschedules API.
func (*BackupSchedule) DeepCopy ¶ added in v0.7.0
func (in *BackupSchedule) DeepCopy() *BackupSchedule
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupSchedule.
func (*BackupSchedule) DeepCopyInto ¶ added in v0.7.0
func (in *BackupSchedule) DeepCopyInto(out *BackupSchedule)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BackupSchedule) DeepCopyObject ¶ added in v0.7.0
func (in *BackupSchedule) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type BackupScheduleList ¶ added in v0.7.0
type BackupScheduleList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []BackupSchedule `json:"items"`
}
BackupScheduleList contains a list of BackupSchedule.
func (*BackupScheduleList) DeepCopy ¶ added in v0.7.0
func (in *BackupScheduleList) DeepCopy() *BackupScheduleList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupScheduleList.
func (*BackupScheduleList) DeepCopyInto ¶ added in v0.7.0
func (in *BackupScheduleList) DeepCopyInto(out *BackupScheduleList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BackupScheduleList) DeepCopyObject ¶ added in v0.7.0
func (in *BackupScheduleList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type BackupSchedulePhase ¶ added in v0.7.0
type BackupSchedulePhase string
BackupSchedulePhase defines the phase of BackupSchedule
const ( // BackupSchedulePhaseAvailable means the backup schedule is available. BackupSchedulePhaseAvailable BackupSchedulePhase = "Available" // BackupSchedulePhaseFailed means the backup schedule is failed. BackupSchedulePhaseFailed BackupSchedulePhase = "Failed" )
type BackupScheduleSpec ¶ added in v0.7.0
type BackupScheduleSpec struct {
// Which backupPolicy is applied to perform this backup.
// +kubebuilder:validation:Required
// +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$`
BackupPolicyName string `json:"backupPolicyName"`
// startingDeadlineMinutes defines the deadline in minutes for starting the
// backup workload if it misses scheduled time for any reason.
// +optional
// +kubebuilder:validation:Minimum=0
// +kubebuilder:validation:Maximum=1440
StartingDeadlineMinutes *int64 `json:"startingDeadlineMinutes,omitempty"`
// schedules defines the list of backup schedules.
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinItems=1
Schedules []SchedulePolicy `json:"schedules"`
}
BackupScheduleSpec defines the desired state of BackupSchedule.
func (*BackupScheduleSpec) DeepCopy ¶ added in v0.7.0
func (in *BackupScheduleSpec) DeepCopy() *BackupScheduleSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupScheduleSpec.
func (*BackupScheduleSpec) DeepCopyInto ¶ added in v0.7.0
func (in *BackupScheduleSpec) DeepCopyInto(out *BackupScheduleSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BackupScheduleStatus ¶ added in v0.7.0
type BackupScheduleStatus struct {
// phase describes the phase of the BackupSchedule.
// +optional
Phase BackupSchedulePhase `json:"phase,omitempty"`
// observedGeneration is the most recent generation observed for this
// BackupSchedule. It refers to the BackupSchedule's generation, which is
// updated on mutation by the API Server.
// +optional
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
// failureReason is an error that caused the backup to fail.
// +optional
FailureReason string `json:"failureReason,omitempty"`
// schedules describes the status of each schedule.
// +optional
Schedules map[string]ScheduleStatus `json:"schedules,omitempty"`
}
BackupScheduleStatus defines the observed state of BackupSchedule.
func (*BackupScheduleStatus) DeepCopy ¶ added in v0.7.0
func (in *BackupScheduleStatus) DeepCopy() *BackupScheduleStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupScheduleStatus.
func (*BackupScheduleStatus) DeepCopyInto ¶ added in v0.7.0
func (in *BackupScheduleStatus) DeepCopyInto(out *BackupScheduleStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BackupSpec ¶
type BackupSpec struct {
// Which backupPolicy is applied to perform this backup.
// +kubebuilder:validation:Required
// +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$`
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.backupPolicyName"
BackupPolicyName string `json:"backupPolicyName"`
// backupMethod specifies the backup method name that is defined in backupPolicy.
// +kubebuilder:validation:Required
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.backupMethod"
BackupMethod string `json:"backupMethod"`
// deletionPolicy determines whether the backup contents stored in backup repository
// should be deleted when the backup custom resource is deleted.
// Supported values are "Retain" and "Delete".
// "Retain" means that the backup can not be deleted and remains in 'Deleting' phase.
// "Delete" means that the backup content and its physical snapshot on backup repository are deleted.
// +kubebuilder:validation:Enum=Delete;Retain
// +kubebuilder:validation:Required
// +kubebuilder:default=Delete
DeletionPolicy BackupDeletionPolicy `json:"deletionPolicy,omitempty"`
// retentionPeriod determines a duration up to which the backup should be kept.
// Controller will remove all backups that are older than the RetentionPeriod.
// For example, RetentionPeriod of `30d` will keep only the backups of last 30 days.
// Sample duration format:
// - years: 2y
// - months: 6mo
// - days: 30d
// - hours: 12h
// - minutes: 30m
// You can also combine the above durations. For example: 30d12h30m.
// If not set, the backup will be kept forever.
// +optional
RetentionPeriod RetentionPeriod `json:"retentionPeriod,omitempty"`
// parentBackupName determines the parent backup name for incremental or
// differential backup.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.parentBackupName"
ParentBackupName string `json:"parentBackupName,omitempty"`
}
BackupSpec defines the desired state of Backup.
func (*BackupSpec) DeepCopy ¶ added in v0.6.0
func (in *BackupSpec) DeepCopy() *BackupSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupSpec.
func (*BackupSpec) DeepCopyInto ¶ added in v0.6.0
func (in *BackupSpec) DeepCopyInto(out *BackupSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BackupStatus ¶
type BackupStatus struct {
// formatVersion is the backup format version, including major, minor and patch version.
// +optional
FormatVersion string `json:"formatVersion,omitempty"`
// phase is the current state of the Backup.
// +optional
Phase BackupPhase `json:"phase,omitempty"`
// expiration is when this backup is eligible for garbage collection.
// 'null' means the Backup will NOT be cleaned except delete manual.
// +optional
Expiration *metav1.Time `json:"expiration,omitempty"`
// startTimestamp records the time a backup was started.
// The server's time is used for StartTimestamp.
// +optional
StartTimestamp *metav1.Time `json:"startTimestamp,omitempty"`
// completionTimestamp records the time a backup was completed.
// Completion time is recorded even on failed backups.
// The server's time is used for CompletionTimestamp.
// +optional
CompletionTimestamp *metav1.Time `json:"completionTimestamp,omitempty"`
// The duration time of backup execution.
// When converted to a string, the format is "1h2m0.5s".
// +optional
Duration *metav1.Duration `json:"duration,omitempty"`
// totalSize is the total size of backed up data size.
// A string with capacity units in the format of "1Gi", "1Mi", "1Ki".
// If no capacity unit is specified, it is assumed to be in bytes.
// +optional
TotalSize string `json:"totalSize,omitempty"`
// failureReason is an error that caused the backup to fail.
// +optional
FailureReason string `json:"failureReason,omitempty"`
// backupRepoName is the name of the backup repository.
// +optional
BackupRepoName string `json:"backupRepoName,omitempty"`
// path is the directory inside the backup repository where the backup data is stored.
// It is an absolute path in the backup repository.
// +optional
Path string `json:"path,omitempty"`
// kopiaRepoPath records the path of the Kopia repository.
// +optional
KopiaRepoPath string `json:"kopiaRepoPath,omitempty"`
// persistentVolumeClaimName is the name of the persistent volume claim that
// is used to store the backup data.
// +optional
PersistentVolumeClaimName string `json:"persistentVolumeClaimName,omitempty"`
// timeRange records the time range of backed up data, for PITR, this is the
// time range of recoverable data.
// +optional
TimeRange *BackupTimeRange `json:"timeRange,omitempty"`
// target records the target information for this backup.
// +optional
Target *BackupTarget `json:"target,omitempty"`
// backupMethod records the backup method information for this backup.
// Refer to BackupMethod for more details.
// +optional
BackupMethod *BackupMethod `json:"backupMethod,omitempty"`
// actions records the actions information for this backup.
// +optional
Actions []ActionStatus `json:"actions,omitempty"`
// volumeSnapshots records the volume snapshot status for the action.
// +optional
VolumeSnapshots []VolumeSnapshotStatus `json:"volumeSnapshots,omitempty"`
// extra records the extra info for the backup.
Extras []map[string]string `json:"extras,omitempty"`
}
BackupStatus defines the observed state of Backup.
func (*BackupStatus) DeepCopy ¶ added in v0.6.0
func (in *BackupStatus) DeepCopy() *BackupStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupStatus.
func (*BackupStatus) DeepCopyInto ¶ added in v0.6.0
func (in *BackupStatus) DeepCopyInto(out *BackupStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BackupTarget ¶ added in v0.7.0
type BackupTarget struct {
// podSelector is used to find the target pod. The volumes of the target pod
// will be backed up.
// +kube:validation:Required
PodSelector *PodSelector `json:"podSelector,omitempty"`
// connectionCredential specifies the connection credential to connect to the
// target database cluster.
// +optional
ConnectionCredential *ConnectionCredential `json:"connectionCredential,omitempty"`
// resources specifies the kubernetes resources to back up.
// +optional
Resources *KubeResources `json:"resources,omitempty"`
// serviceAccountName specifies the service account to run the backup workload.
// +kubebuilder:validation:Required
ServiceAccountName string `json:"serviceAccountName,omitempty"`
}
func (*BackupTarget) DeepCopy ¶ added in v0.7.0
func (in *BackupTarget) DeepCopy() *BackupTarget
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupTarget.
func (*BackupTarget) DeepCopyInto ¶ added in v0.7.0
func (in *BackupTarget) DeepCopyInto(out *BackupTarget)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BackupTimeRange ¶ added in v0.7.0
type BackupTimeRange struct {
// start records the start time of backup.
// +optional
Start *metav1.Time `json:"start,omitempty"`
// end records the end time of backup.
// +optional
End *metav1.Time `json:"end,omitempty"`
}
BackupTimeRange records the time range of backed up data, for PITR, this is the time range of recoverable data.
func (*BackupTimeRange) DeepCopy ¶ added in v0.7.0
func (in *BackupTimeRange) DeepCopy() *BackupTimeRange
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupTimeRange.
func (*BackupTimeRange) DeepCopyInto ¶ added in v0.7.0
func (in *BackupTimeRange) DeepCopyInto(out *BackupTimeRange)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BackupType ¶
type BackupType string
BackupType the backup type. +enum +kubebuilder:validation:Enum={Full,Incremental,Differential,Continuous}
const ( BackupTypeFull BackupType = "Full" BackupTypeIncremental BackupType = "Incremental" BackupTypeDifferential BackupType = "Differential" BackupTypeContinuous BackupType = "Continuous" )
type BaseJobActionSpec ¶ added in v0.8.0
type BaseJobActionSpec struct {
// image specifies the image of backup container.
// +kubebuilder:validation:Required
Image string `json:"image"`
// command specifies the commands to back up the volume data.
// +kubebuilder:validation:Required
Command []string `json:"command"`
}
BaseJobActionSpec is an action that creates a Kubernetes Job to execute a command.
func (*BaseJobActionSpec) DeepCopy ¶ added in v0.8.0
func (in *BaseJobActionSpec) DeepCopy() *BaseJobActionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BaseJobActionSpec.
func (*BaseJobActionSpec) DeepCopyInto ¶ added in v0.8.0
func (in *BaseJobActionSpec) DeepCopyInto(out *BaseJobActionSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConnectionCredential ¶ added in v0.7.0
type ConnectionCredential struct {
// secretName refers to the Secret object that contains the connection credential.
// +kubebuilder:validation:Required
// +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$`
SecretName string `json:"secretName"`
// usernameKey specifies the map key of the user in the connection credential secret.
// +kubebuilder:default=username
UsernameKey string `json:"usernameKey,omitempty"`
// passwordKey specifies the map key of the password in the connection credential secret.
// This password will be saved in the backup annotation for full backup.
// You can use the environment variable DP_ENCRYPTION_KEY to specify encryption key.
// +kubebuilder:default=password
PasswordKey string `json:"passwordKey,omitempty"`
// hostKey specifies the map key of the host in the connection credential secret.
HostKey string `json:"hostKey,omitempty"`
// portKey specifies the map key of the port in the connection credential secret.
PortKey string `json:"portKey,omitempty"`
}
ConnectionCredential specifies the connection credential to connect to the target database cluster.
func (*ConnectionCredential) DeepCopy ¶ added in v0.7.0
func (in *ConnectionCredential) DeepCopy() *ConnectionCredential
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConnectionCredential.
func (*ConnectionCredential) DeepCopyInto ¶ added in v0.7.0
func (in *ConnectionCredential) DeepCopyInto(out *ConnectionCredential)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExecAction ¶ added in v0.7.0
type ExecAction struct {
// execActionTarget defines the pods that need to be executed for the exec action.
// will execute on all pods that meet the conditions.
// +optional
Target ExecActionTarget `json:"target"`
}
func (*ExecAction) DeepCopy ¶ added in v0.7.0
func (in *ExecAction) DeepCopy() *ExecAction
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecAction.
func (*ExecAction) DeepCopyInto ¶ added in v0.7.0
func (in *ExecAction) DeepCopyInto(out *ExecAction)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExecActionSpec ¶ added in v0.7.0
type ExecActionSpec struct {
// container is the container in the pod where the command should be executed.
// If not specified, the pod's first container is used.
// +optional
Container string `json:"container,omitempty"`
// Command is the command and arguments to execute.
// +kubebuilder:validation:MinItems=1
Command []string `json:"command"`
// OnError specifies how should behave if it encounters an error executing this action.
// +optional
// +kubebuilder:default=Fail
OnError ActionErrorMode `json:"onError,omitempty"`
// Timeout defines the maximum amount of time should wait for the hook to complete before
// considering the execution a failure.
// +optional
Timeout metav1.Duration `json:"timeout,omitempty"`
}
ExecActionSpec is an action that uses the pod exec API to execute a command in a container in a pod.
func (*ExecActionSpec) DeepCopy ¶ added in v0.7.0
func (in *ExecActionSpec) DeepCopy() *ExecActionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecActionSpec.
func (*ExecActionSpec) DeepCopyInto ¶ added in v0.7.0
func (in *ExecActionSpec) DeepCopyInto(out *ExecActionSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExecActionTarget ¶ added in v0.7.0
type ExecActionTarget struct {
// kubectl exec in all selected pods.
// +kubebuilder:validation:Required
PodSelector metav1.LabelSelector `json:"podSelector"`
}
func (*ExecActionTarget) DeepCopy ¶ added in v0.7.0
func (in *ExecActionTarget) DeepCopy() *ExecActionTarget
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecActionTarget.
func (*ExecActionTarget) DeepCopyInto ¶ added in v0.7.0
func (in *ExecActionTarget) DeepCopyInto(out *ExecActionTarget)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IncludeResource ¶ added in v0.7.0
type IncludeResource struct {
//
// +kubebuilder:validation:Required
GroupResource string `json:"groupResource"`
// select the specified resource for recovery by label.
// +optional
LabelSelector metav1.LabelSelector `json:"labelSelector,omitempty"`
}
func (*IncludeResource) DeepCopy ¶ added in v0.7.0
func (in *IncludeResource) DeepCopy() *IncludeResource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IncludeResource.
func (*IncludeResource) DeepCopyInto ¶ added in v0.7.0
func (in *IncludeResource) DeepCopyInto(out *IncludeResource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type JobAction ¶ added in v0.7.0
type JobAction struct {
// jobActionTarget defines the pod that need to be executed for the job action.
// will select a pod that meets the conditions to execute.
// +kubebuilder:validation:Required
Target JobActionTarget `json:"target"`
}
func (*JobAction) DeepCopy ¶ added in v0.7.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobAction.
func (*JobAction) DeepCopyInto ¶ added in v0.7.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type JobActionSpec ¶ added in v0.7.0
type JobActionSpec struct {
BaseJobActionSpec `json:",inline"`
// runOnTargetPodNode specifies whether to run the job workload on the
// target pod node. If backup container should mount the target pod's
// volumes, this field should be set to true. otherwise the target pod's
// volumes will be ignored.
// +optional
// +kubebuilder:default=false
RunOnTargetPodNode *bool `json:"runOnTargetPodNode,omitempty"`
// OnError specifies how should behave if it encounters an error executing
// this action.
// +optional
// +kubebuilder:default=Fail
OnError ActionErrorMode `json:"onError,omitempty"`
}
JobActionSpec is an action that creates a Kubernetes Job to execute a command.
func (*JobActionSpec) DeepCopy ¶ added in v0.7.0
func (in *JobActionSpec) DeepCopy() *JobActionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobActionSpec.
func (*JobActionSpec) DeepCopyInto ¶ added in v0.7.0
func (in *JobActionSpec) DeepCopyInto(out *JobActionSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type JobActionTarget ¶ added in v0.7.0
type JobActionTarget struct {
// select one of the pods which selected by labels to build the job spec, such as mount required volumes and inject built-in env of the selected pod.
// +kubebuilder:validation:Required
PodSelector metav1.LabelSelector `json:"podSelector"`
// volumeMounts defines which volumes of the selected pod need to be mounted on the restoring pod.
// +patchMergeKey=name
// +patchStrategy=merge,retainKeys
// +optional
VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`
}
func (*JobActionTarget) DeepCopy ¶ added in v0.7.0
func (in *JobActionTarget) DeepCopy() *JobActionTarget
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobActionTarget.
func (*JobActionTarget) DeepCopyInto ¶ added in v0.7.0
func (in *JobActionTarget) DeepCopyInto(out *JobActionTarget)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubeResources ¶ added in v0.7.0
type KubeResources struct {
// selector is a metav1.LabelSelector to filter the target kubernetes resources
// that need to be backed up.
// If not set, will do not back up any kubernetes resources.
// +kube:validation:Required
Selector *metav1.LabelSelector `json:"selector,omitempty"`
// included is a slice of namespaced-scoped resource type names to include in
// the kubernetes resources.
// The default value is "*", which means all resource types will be included.
// +optional
// +kubebuilder:default={"*"}
Included []string `json:"included,omitempty"`
// excluded is a slice of namespaced-scoped resource type names to exclude in
// the kubernetes resources.
// The default value is empty.
// +optional
Excluded []string `json:"excluded,omitempty"`
}
KubeResources defines the kubernetes resources to back up.
func (*KubeResources) DeepCopy ¶ added in v0.7.0
func (in *KubeResources) DeepCopy() *KubeResources
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeResources.
func (*KubeResources) DeepCopyInto ¶ added in v0.7.0
func (in *KubeResources) DeepCopyInto(out *KubeResources)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Phase ¶ added in v0.7.0
type Phase string
Phase defines the BackupPolicy and ActionSet CR .status.phase +enum +kubebuilder:validation:Enum={Available,Unavailable}
const ( AvailablePhase Phase = "Available" )
func (Phase) IsAvailable ¶ added in v0.7.0
type PodSelectionStrategy ¶ added in v0.7.0
type PodSelectionStrategy string
PodSelectionStrategy specifies the strategy to select when multiple pods are selected for backup target +kubebuilder:validation:Enum={Any,All}
const ( // PodSelectionStrategyAll selects all pods that match the labelsSelector. // TODO: support PodSelectionStrategyAll PodSelectionStrategyAll PodSelectionStrategy = "All" // PodSelectionStrategyAny selects any one pod that match the labelsSelector. PodSelectionStrategyAny PodSelectionStrategy = "Any" )
type PodSelector ¶ added in v0.7.0
type PodSelector struct {
// labelsSelector is the label selector to filter the target pods.
*metav1.LabelSelector `json:",inline"`
// strategy specifies the strategy to select the target pod when multiple pods
// are selected.
// Valid values are:
// - Any: select any one pod that match the labelsSelector.
// - All: select all pods that match the labelsSelector.
// +kubebuilder:default=Any
Strategy PodSelectionStrategy `json:"strategy,omitempty"`
}
func (*PodSelector) DeepCopy ¶ added in v0.7.0
func (in *PodSelector) DeepCopy() *PodSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSelector.
func (*PodSelector) DeepCopyInto ¶ added in v0.7.0
func (in *PodSelector) DeepCopyInto(out *PodSelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PrepareDataConfig ¶ added in v0.7.0
type PrepareDataConfig struct {
// dataSourceRef describes the configuration when using `persistentVolumeClaim.spec.dataSourceRef` method for restoring.
// it describes the source volume of the backup targetVolumes and how to mount path in the restoring container.
// +kubebuilder:validation:XValidation:rule="self.volumeSource != ” || self.mountPath !=”",message="at least one exists for volumeSource and mountPath."
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.prepareDataConfig.dataSourceRef"
// +optional
DataSourceRef *VolumeConfig `json:"dataSourceRef,omitempty"`
// volumeClaims defines the persistent Volume claims that need to be restored and mount them together into the restore job.
// these persistent Volume claims will be created if not exist.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.prepareDataConfig.volumeClaims"
// +patchMergeKey=name
// +patchStrategy=merge,retainKeys
// +optional
RestoreVolumeClaims []RestoreVolumeClaim `json:"volumeClaims,omitempty"`
// volumeClaimsTemplate defines a template to build persistent Volume claims that need to be restored.
// these claims will be created in an orderly manner based on the number of replicas or reused if already exist.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.prepareDataConfig.volumeClaimsTemplate"
// +patchMergeKey=name
// +patchStrategy=merge,retainKeys
// +optional
RestoreVolumeClaimsTemplate *RestoreVolumeClaimsTemplate `json:"volumeClaimsTemplate,omitempty"`
// VolumeClaimRestorePolicy defines restore policy for persistent volume claim.
// Supported policies are as follows:
// 1. Parallel: parallel recovery of persistent volume claim.
// 2. Serial: restore the persistent volume claim in sequence, and wait until the previous persistent volume claim is restored before restoring a new one.
// +kubebuilder:default=Parallel
// +kubebuilder:validation:Required
VolumeClaimRestorePolicy VolumeClaimRestorePolicy `json:"volumeClaimRestorePolicy"`
// scheduling spec for restoring pod.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.prepareDataConfig.schedulingSpec"
// +optional
SchedulingSpec SchedulingSpec `json:"schedulingSpec,omitempty"`
}
func (*PrepareDataConfig) DeepCopy ¶ added in v0.7.0
func (in *PrepareDataConfig) DeepCopy() *PrepareDataConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrepareDataConfig.
func (*PrepareDataConfig) DeepCopyInto ¶ added in v0.7.0
func (in *PrepareDataConfig) DeepCopyInto(out *PrepareDataConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PrepareDataConfig) IsSerialPolicy ¶ added in v0.7.0
func (p *PrepareDataConfig) IsSerialPolicy() bool
type ReadinessProbe ¶ added in v0.7.0
type ReadinessProbe struct {
// number of seconds after the container has started before probe is initiated.
// +optional
// +kubebuilder:validation:Minimum=0
InitialDelaySeconds int `json:"initialDelaySeconds,omitempty"`
// number of seconds after which the probe times out.
// defaults to 30 second, minimum value is 1.
// +optional
// +kubebuilder:default=30
// +kubebuilder:validation:Minimum=1
TimeoutSeconds int `json:"timeoutSeconds"`
// how often (in seconds) to perform the probe.
// defaults to 5 second, minimum value is 1.
// +optional
// +kubebuilder:default=5
// +kubebuilder:validation:Minimum=1
PeriodSeconds int `json:"periodSeconds"`
// exec specifies the action to take.
// +kubebuilder:validation:Required
Exec ReadinessProbeExecAction `json:"exec"`
}
func (*ReadinessProbe) DeepCopy ¶ added in v0.7.0
func (in *ReadinessProbe) DeepCopy() *ReadinessProbe
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReadinessProbe.
func (*ReadinessProbe) DeepCopyInto ¶ added in v0.7.0
func (in *ReadinessProbe) DeepCopyInto(out *ReadinessProbe)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReadinessProbeExecAction ¶ added in v0.7.0
type ReadinessProbeExecAction struct {
// refer to container image.
// +kubebuilder:validation:Required
Image string `json:"image"`
// refer to container command.
// +kubebuilder:validation:Required
Command []string `json:"command"`
}
func (*ReadinessProbeExecAction) DeepCopy ¶ added in v0.7.0
func (in *ReadinessProbeExecAction) DeepCopy() *ReadinessProbeExecAction
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReadinessProbeExecAction.
func (*ReadinessProbeExecAction) DeepCopyInto ¶ added in v0.7.0
func (in *ReadinessProbeExecAction) DeepCopyInto(out *ReadinessProbeExecAction)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReadyConfig ¶ added in v0.7.0
type ReadyConfig struct {
// configuration for job action.
// +optional
JobAction *JobAction `json:"jobAction,omitempty"`
// configuration for exec action.
// +optional
ExecAction *ExecAction `json:"execAction,omitempty"`
// credential template used for creating a connection credential
// +optional
ConnectionCredential *ConnectionCredential `json:"connectionCredential,omitempty"`
// periodic probe of the service readiness.
// controller will perform postReadyHooks of BackupScript.spec.restore after the service readiness when readinessProbe is configured.
// +optional
ReadinessProbe *ReadinessProbe `json:"readinessProbe,omitempty"`
}
func (*ReadyConfig) DeepCopy ¶ added in v0.7.0
func (in *ReadyConfig) DeepCopy() *ReadyConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReadyConfig.
func (*ReadyConfig) DeepCopyInto ¶ added in v0.7.0
func (in *ReadyConfig) DeepCopyInto(out *ReadyConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Restore ¶ added in v0.7.0
type Restore struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec RestoreSpec `json:"spec,omitempty"`
Status RestoreStatus `json:"status,omitempty"`
}
Restore is the Schema for the restores API
func (*Restore) DeepCopy ¶ added in v0.7.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Restore.
func (*Restore) DeepCopyInto ¶ added in v0.7.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Restore) DeepCopyObject ¶ added in v0.7.0
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type RestoreActionSpec ¶ added in v0.7.0
type RestoreActionSpec struct {
// prepareData specifies the action to prepare data.
// +optional
PrepareData *JobActionSpec `json:"prepareData,omitempty"`
// postReady specifies the action to execute after the data is ready.
// +optional
PostReady []ActionSpec `json:"postReady,omitempty"`
}
RestoreActionSpec defines how to restore data.
func (*RestoreActionSpec) DeepCopy ¶ added in v0.7.0
func (in *RestoreActionSpec) DeepCopy() *RestoreActionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestoreActionSpec.
func (*RestoreActionSpec) DeepCopyInto ¶ added in v0.7.0
func (in *RestoreActionSpec) DeepCopyInto(out *RestoreActionSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RestoreActionStatus ¶ added in v0.7.0
type RestoreActionStatus string
RestoreActionStatus the status of restore action. +enum +kubebuilder:validation:Enum={Processing,Completed,Failed}
const ( RestoreActionProcessing RestoreActionStatus = "Processing" RestoreActionCompleted RestoreActionStatus = "Completed" RestoreActionFailed RestoreActionStatus = "Failed" )
type RestoreKubeResources ¶ added in v0.7.0
type RestoreKubeResources struct {
// will restore the specified resources
IncludeResources []IncludeResource `json:"included,omitempty"`
}
func (*RestoreKubeResources) DeepCopy ¶ added in v0.7.0
func (in *RestoreKubeResources) DeepCopy() *RestoreKubeResources
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestoreKubeResources.
func (*RestoreKubeResources) DeepCopyInto ¶ added in v0.7.0
func (in *RestoreKubeResources) DeepCopyInto(out *RestoreKubeResources)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RestoreList ¶ added in v0.7.0
type RestoreList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Restore `json:"items"`
}
RestoreList contains a list of Restore
func (*RestoreList) DeepCopy ¶ added in v0.7.0
func (in *RestoreList) DeepCopy() *RestoreList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestoreList.
func (*RestoreList) DeepCopyInto ¶ added in v0.7.0
func (in *RestoreList) DeepCopyInto(out *RestoreList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RestoreList) DeepCopyObject ¶ added in v0.7.0
func (in *RestoreList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type RestorePhase ¶ added in v0.7.0
type RestorePhase string
RestorePhase The current phase. Valid values are Running, Completed, Failed, AsDataSource. +enum +kubebuilder:validation:Enum={Running,Completed,Failed,AsDataSource}
const ( RestorePhaseRunning RestorePhase = "Running" RestorePhaseCompleted RestorePhase = "Completed" RestorePhaseFailed RestorePhase = "Failed" RestorePhaseAsDataSource RestorePhase = "AsDataSource" )
type RestoreSpec ¶ added in v0.7.0
type RestoreSpec struct {
// backup to be restored. The restore behavior based on the backup type:
// 1. Full: will be restored the full backup directly.
// 2. Incremental: will be restored sequentially from the most recent full backup of this incremental backup.
// 3. Differential: will be restored sequentially from the parent backup of the differential backup.
// 4. Continuous: will find the most recent full backup at this time point and the continuous backups after it to restore.
// +kubebuilder:validation:Required
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.backupName"
Backup BackupRef `json:"backup"`
// restoreTime is the point in time for restoring.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.restoreTime"
// +optional
// +kubebuilder:validation:Pattern=`^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$`
RestoreTime string `json:"restoreTime,omitempty"`
// restore the specified resources of kubernetes.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.resources"
// +optional
Resources *RestoreKubeResources `json:"resources,omitempty"`
// configuration for the action of "prepareData" phase, including the persistent volume claims
// that need to be restored and scheduling strategy of temporary recovery pod.
// +optional
PrepareDataConfig *PrepareDataConfig `json:"prepareDataConfig,omitempty"`
// service account name which needs for recovery pod.
// +optional
ServiceAccountName string `json:"serviceAccountName,omitempty"`
// configuration for the action of "postReady" phase.
// +kubebuilder:validation:XValidation:rule="has(self.jobAction) || has(self.execAction)", message="at least one exists for jobAction and execAction."
// +optional
ReadyConfig *ReadyConfig `json:"readyConfig,omitempty"`
// list of environment variables to set in the container for restore and will be
// merged with the env of Backup and ActionSet.
// The priority of merging is as follows: Restore env > Backup env > ActionSet env.
// +kubebuilder:pruning:PreserveUnknownFields
// +optional
Env []corev1.EnvVar `json:"env,omitempty" patchStrategy:"merge" patchMergeKey:"name"`
// specified the required resources of restore job's container.
// +optional
ContainerResources corev1.ResourceRequirements `json:"containerResources,omitempty"`
// Specifies the number of retries before marking the restore failed.
// +optional
// +kubebuilder:validation:Minimum=0
// +kubebuilder:validation:Maximum=10
BackoffLimit *int32 `json:"backoffLimit,omitempty"`
}
RestoreSpec defines the desired state of Restore
func (*RestoreSpec) DeepCopy ¶ added in v0.7.0
func (in *RestoreSpec) DeepCopy() *RestoreSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestoreSpec.
func (*RestoreSpec) DeepCopyInto ¶ added in v0.7.0
func (in *RestoreSpec) DeepCopyInto(out *RestoreSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RestoreStage ¶ added in v0.7.0
type RestoreStage string
const ( PrepareData RestoreStage = "prepareData" PostReady RestoreStage = "postReady" )
type RestoreStatus ¶ added in v0.7.0
type RestoreStatus struct {
// +optional
Phase RestorePhase `json:"phase,omitempty"`
// Date/time when the restore started being processed.
// +optional
StartTimestamp *metav1.Time `json:"startTimestamp,omitempty"`
// Date/time when the restore finished being processed.
// +optional
CompletionTimestamp *metav1.Time `json:"completionTimestamp,omitempty"`
// The duration time of restore execution.
// When converted to a string, the form is "1h2m0.5s".
// +optional
Duration *metav1.Duration `json:"duration,omitempty"`
// recorded all restore actions performed.
// +optional
Actions RestoreStatusActions `json:"actions,omitempty"`
// describe current state of restore API Resource, like warning.
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
RestoreStatus defines the observed state of Restore
func (*RestoreStatus) DeepCopy ¶ added in v0.7.0
func (in *RestoreStatus) DeepCopy() *RestoreStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestoreStatus.
func (*RestoreStatus) DeepCopyInto ¶ added in v0.7.0
func (in *RestoreStatus) DeepCopyInto(out *RestoreStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RestoreStatusAction ¶ added in v0.7.0
type RestoreStatusAction struct {
// name describes the name of the recovery action based on the current backup.
// +kubebuilder:validation:Required
Name string `json:"name"`
// which backup's restore action belongs to.
// +kubebuilder:validation:Required
BackupName string `json:"backupName"`
// the execution object of the restore action.
// +kubebuilder:validation:Required
ObjectKey string `json:"objectKey"`
// message is a human readable message indicating details about the object condition.
// +optional
Message string `json:"message,omitempty"`
// the status of this action.
// +kubebuilder:validation:Required
Status RestoreActionStatus `json:"status,omitempty"`
// startTime is the start time for the restore job.
// +optional
StartTime metav1.Time `json:"startTime,omitempty"`
// endTime is the completion time for the restore job.
// +optional
EndTime metav1.Time `json:"endTime,omitempty"`
}
func (*RestoreStatusAction) DeepCopy ¶ added in v0.7.0
func (in *RestoreStatusAction) DeepCopy() *RestoreStatusAction
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestoreStatusAction.
func (*RestoreStatusAction) DeepCopyInto ¶ added in v0.7.0
func (in *RestoreStatusAction) DeepCopyInto(out *RestoreStatusAction)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RestoreStatusActions ¶ added in v0.7.0
type RestoreStatusActions struct {
// record the actions for prepareData phase.
// +patchMergeKey=jobName
// +patchStrategy=merge,retainKeys
// +optional
PrepareData []RestoreStatusAction `json:"prepareData,omitempty"`
// record the actions for postReady phase.
// +patchMergeKey=jobName
// +patchStrategy=merge,retainKeys
// +optional
PostReady []RestoreStatusAction `json:"postReady,omitempty"`
}
func (*RestoreStatusActions) DeepCopy ¶ added in v0.7.0
func (in *RestoreStatusActions) DeepCopy() *RestoreStatusActions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestoreStatusActions.
func (*RestoreStatusActions) DeepCopyInto ¶ added in v0.7.0
func (in *RestoreStatusActions) DeepCopyInto(out *RestoreStatusActions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RestoreVolumeClaim ¶ added in v0.7.0
type RestoreVolumeClaim struct {
// Standard object's metadata.
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
// +kubebuilder:validation:Required
metav1.ObjectMeta `json:"metadata"`
// volumeClaimSpec defines the desired characteristics of a persistent volume claim.
// +kubebuilder:validation:Required
VolumeClaimSpec corev1.PersistentVolumeClaimSpec `json:"volumeClaimSpec"`
// describing the source volume of the backup targetVolumes and how to mount path in the restoring container.
// +kubebuilder:validation:XValidation:rule="self.volumeSource != ” || self.mountPath !=”",message="at least one exists for volumeSource and mountPath."
VolumeConfig `json:",inline"`
}
func (*RestoreVolumeClaim) DeepCopy ¶ added in v0.7.0
func (in *RestoreVolumeClaim) DeepCopy() *RestoreVolumeClaim
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestoreVolumeClaim.
func (*RestoreVolumeClaim) DeepCopyInto ¶ added in v0.7.0
func (in *RestoreVolumeClaim) DeepCopyInto(out *RestoreVolumeClaim)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RestoreVolumeClaimsTemplate ¶ added in v0.7.0
type RestoreVolumeClaimsTemplate struct {
// templates is a list of volume claims.
// +kubebuilder:validation:Required
Templates []RestoreVolumeClaim `json:"templates"`
// the replicas of persistent volume claim which need to be created and restored.
// the format of created claim name is "<template-name>-<index>".
// +kubebuilder:validation:Minimum=1
// +kubebuilder:validation:Required
Replicas int32 `json:"replicas"`
// the starting index for the created persistent volume claim by according to template.
// minimum is 0.
// +kubebuilder:validation:Minimum=0
StartingIndex int32 `json:"startingIndex,omitempty"`
}
func (*RestoreVolumeClaimsTemplate) DeepCopy ¶ added in v0.7.0
func (in *RestoreVolumeClaimsTemplate) DeepCopy() *RestoreVolumeClaimsTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestoreVolumeClaimsTemplate.
func (*RestoreVolumeClaimsTemplate) DeepCopyInto ¶ added in v0.7.0
func (in *RestoreVolumeClaimsTemplate) DeepCopyInto(out *RestoreVolumeClaimsTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RetentionPeriod ¶ added in v0.7.0
type RetentionPeriod string
RetentionPeriod represents a duration in the format "1y2mo3w4d5h6m", where y=year, mo=month, w=week, d=day, h=hour, m=minute.
func (RetentionPeriod) String ¶ added in v0.7.0
func (r RetentionPeriod) String() string
func (RetentionPeriod) ToDuration ¶ added in v0.7.0
func (r RetentionPeriod) ToDuration() (time.Duration, error)
ToDuration converts the RetentionPeriod to time.Duration.
type RuntimeSettings ¶ added in v0.7.0
type RuntimeSettings struct {
// resources specifies the resource required by container.
// More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
// +optional
Resources corev1.ResourceRequirements `json:"resources,omitempty"`
}
func (*RuntimeSettings) DeepCopy ¶ added in v0.7.0
func (in *RuntimeSettings) DeepCopy() *RuntimeSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuntimeSettings.
func (*RuntimeSettings) DeepCopyInto ¶ added in v0.7.0
func (in *RuntimeSettings) DeepCopyInto(out *RuntimeSettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SchedulePhase ¶ added in v0.7.0
type SchedulePhase string
SchedulePhase defines the phase of schedule
const ( ScheduleRunning SchedulePhase = "Running" ScheduleFailed SchedulePhase = "Failed" )
type SchedulePolicy ¶
type SchedulePolicy struct {
// enabled specifies whether the backup schedule is enabled or not.
// +optional
Enabled *bool `json:"enabled,omitempty"`
// backupMethod specifies the backup method name that is defined in backupPolicy.
// +kubebuilder:validation:Required
BackupMethod string `json:"backupMethod"`
// the cron expression for schedule, the timezone is in UTC.
// see https://en.wikipedia.org/wiki/Cron.
// +kubebuilder:validation:Required
CronExpression string `json:"cronExpression"`
// retentionPeriod determines a duration up to which the backup should be kept.
// controller will remove all backups that are older than the RetentionPeriod.
// For example, RetentionPeriod of `30d` will keep only the backups of last 30 days.
// Sample duration format:
// - years: 2y
// - months: 6mo
// - days: 30d
// - hours: 12h
// - minutes: 30m
// You can also combine the above durations. For example: 30d12h30m
// +optional
// +kubebuilder:default="7d"
RetentionPeriod RetentionPeriod `json:"retentionPeriod,omitempty"`
}
func (*SchedulePolicy) DeepCopy ¶ added in v0.6.0
func (in *SchedulePolicy) DeepCopy() *SchedulePolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SchedulePolicy.
func (*SchedulePolicy) DeepCopyInto ¶ added in v0.6.0
func (in *SchedulePolicy) DeepCopyInto(out *SchedulePolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScheduleStatus ¶ added in v0.7.0
type ScheduleStatus struct {
// phase describes the phase of the schedule.
// +optional
Phase SchedulePhase `json:"phase,omitempty"`
// failureReason is an error that caused the backup to fail.
// +optional
FailureReason string `json:"failureReason,omitempty"`
// lastScheduleTime records the last time the backup was scheduled.
// +optional
LastScheduleTime *metav1.Time `json:"lastScheduleTime,omitempty"`
// lastSuccessfulTime records the last time the backup was successfully completed.
// +optional
LastSuccessfulTime *metav1.Time `json:"lastSuccessfulTime,omitempty"`
}
ScheduleStatus defines the status of each schedule.
func (*ScheduleStatus) DeepCopy ¶ added in v0.7.0
func (in *ScheduleStatus) DeepCopy() *ScheduleStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScheduleStatus.
func (*ScheduleStatus) DeepCopyInto ¶ added in v0.7.0
func (in *ScheduleStatus) DeepCopyInto(out *ScheduleStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SchedulingSpec ¶ added in v0.7.0
type SchedulingSpec struct {
// the restoring pod's tolerations.
// +optional
Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
// nodeSelector is a selector which must be true for the pod to fit on a node.
// Selector which must match a node's labels for the pod to be scheduled on that node.
// More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
// +optional
// +mapType=atomic
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
// nodeName is a request to schedule this pod onto a specific node. If it is non-empty,
// the scheduler simply schedules this pod onto that node, assuming that it fits resource
// requirements.
// +optional
NodeName string `json:"nodeName,omitempty"`
// affinity is a group of affinity scheduling rules.
// refer to https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
// +optional
Affinity *corev1.Affinity `json:"affinity,omitempty"`
// topologySpreadConstraints describes how a group of pods ought to spread across topology
// domains. Scheduler will schedule pods in a way which abides by the constraints.
// refer to https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
// +optional
TopologySpreadConstraints []corev1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"`
// If specified, the pod will be dispatched by specified scheduler.
// If not specified, the pod will be dispatched by default scheduler.
// +optional
SchedulerName string `json:"schedulerName,omitempty"`
}
func (*SchedulingSpec) DeepCopy ¶ added in v0.7.0
func (in *SchedulingSpec) DeepCopy() *SchedulingSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SchedulingSpec.
func (*SchedulingSpec) DeepCopyInto ¶ added in v0.7.0
func (in *SchedulingSpec) DeepCopyInto(out *SchedulingSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SyncProgress ¶ added in v0.7.0
type SyncProgress struct {
// enabled specifies whether to sync the backup progress. If enabled,
// a sidecar container will be created to sync the backup progress to the
// Backup CR status.
// +optional
Enabled *bool `json:"enabled,omitempty"`
// intervalSeconds specifies the interval seconds to sync the backup progress.
// +optional
// +kubebuilder:default=60
IntervalSeconds *int32 `json:"intervalSeconds,omitempty"`
}
func (*SyncProgress) DeepCopy ¶ added in v0.7.0
func (in *SyncProgress) DeepCopy() *SyncProgress
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncProgress.
func (*SyncProgress) DeepCopyInto ¶ added in v0.7.0
func (in *SyncProgress) DeepCopyInto(out *SyncProgress)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TargetVolumeInfo ¶ added in v0.7.0
type TargetVolumeInfo struct {
// Volumes indicates the list of volumes of targeted application that should
// be mounted on the backup job.
// +optional
Volumes []string `json:"volumes,omitempty"`
// volumeMounts specifies the mount for the volumes specified in `Volumes` section.
// +optional
VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`
}
TargetVolumeInfo specifies the volumes and their mounts of the targeted application that should be mounted in backup workload.
func (*TargetVolumeInfo) DeepCopy ¶ added in v0.7.0
func (in *TargetVolumeInfo) DeepCopy() *TargetVolumeInfo
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetVolumeInfo.
func (*TargetVolumeInfo) DeepCopyInto ¶ added in v0.7.0
func (in *TargetVolumeInfo) DeepCopyInto(out *TargetVolumeInfo)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeClaimRestorePolicy ¶ added in v0.7.0
type VolumeClaimRestorePolicy string
VolumeClaimRestorePolicy defines restore policy for persistent volume claim. Supported policies are as follows: 1. Parallel: parallel recovery of persistent volume claim. 2. Serial: restore the persistent volume claim in sequence, and wait until the previous persistent volume claim is restored before restoring a new one. +enum +kubebuilder:validation:Enum={Parallel,Serial}
const ( VolumeClaimRestorePolicyParallel VolumeClaimRestorePolicy = "Parallel" VolumeClaimRestorePolicySerial VolumeClaimRestorePolicy = "Serial" )
type VolumeConfig ¶ added in v0.7.0
type VolumeConfig struct {
// volumeSource describes the volume will be restored from the specified volume of the backup targetVolumes.
// required if the backup uses volume snapshot.
// +optional
VolumeSource string `json:"volumeSource,omitempty"`
// mountPath path within the restoring container at which the volume should be mounted.
// +optional
MountPath string `json:"mountPath,omitempty"`
}
func (*VolumeConfig) DeepCopy ¶ added in v0.7.0
func (in *VolumeConfig) DeepCopy() *VolumeConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeConfig.
func (*VolumeConfig) DeepCopyInto ¶ added in v0.7.0
func (in *VolumeConfig) DeepCopyInto(out *VolumeConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeSnapshotStatus ¶ added in v0.7.0
type VolumeSnapshotStatus struct {
// name is the name of the volume snapshot.
Name string `json:"name,omitempty"`
// contentName is the name of the volume snapshot content.
ContentName string `json:"contentName,omitempty"`
// volumeName is the name of the volume.
// +optional
VolumeName string `json:"volumeName,omitempty"`
// size is the size of the volume snapshot.
// +optional
Size string `json:"size,omitempty"`
}
func (*VolumeSnapshotStatus) DeepCopy ¶ added in v0.7.0
func (in *VolumeSnapshotStatus) DeepCopy() *VolumeSnapshotStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSnapshotStatus.
func (*VolumeSnapshotStatus) DeepCopyInto ¶ added in v0.7.0
func (in *VolumeSnapshotStatus) DeepCopyInto(out *VolumeSnapshotStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.