restore

package
v0.9.3-beta.21 Latest Latest
Warning

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

Go to latest
Published: Jan 13, 2025 License: AGPL-3.0 Imports: 27 Imported by: 1

Documentation

Index

Constants

View Source
const (
	// condition types
	ConditionTypeRestoreValidationPassed = "ValidationPassed"
	ConditionTypeRestorePreparedData     = "PrepareData"
	ConditionTypeReadinessProbe          = "ReadinessProbe"
	ConditionTypeRestorePostReady        = "PostReady"
	ConditionTypeRestoreCheckBackupRepo  = "CheckBackupRepo"
	// condition reasons
	ReasonRestoreStarting             = "RestoreStarting"
	ReasonRestoreCompleted            = "RestoreCompleted"
	ReasonRestoreFailed               = "RestoreFailed"
	ReasonCheckBackupRepoFailed       = "CheckBackupRepoFailed"
	ReasonWaitForBackupRepo           = "WaitForBackupRepo"
	ReasonCheckBackupRepoSuccessfully = "CheckBackupRepoSuccessfully"
	ReasonValidateFailed              = "ValidateFailed"
	ReasonValidateSuccessfully        = "ValidateSuccessfully"
	ReasonProcessing                  = "Processing"
	ReasonFailed                      = "Failed"
	ReasonSucceed                     = "Succeed"
)

Restore condition constants

View Source
const (
	DataProtectionRestoreLabelKey          = "dataprotection.kubeblocks.io/restore"
	DataProtectionRestoreNamespaceLabelKey = "dataprotection.kubeblocks.io/restore-namespace"
	DataProtectionPopulatePVCLabelKey      = "dataprotection.kubeblocks.io/populate-pvc"
)

labels key

View Source
const (
	DPRestoreTime              = "DP_RESTORE_TIME"
	DPRestoreTimestamp         = "DP_RESTORE_TIMESTAMP"
	DPBaseBackupStartTime      = "DP_BASE_BACKUP_START_TIME"
	DPBaseBackupStartTimestamp = "DP_BASE_BACKUP_START_TIMESTAMP"
	DPBaseBackupStopTime       = "DP_BASE_BACKUP_STOP_TIME"
	DPBaseBackupStopTimestamp  = "DP_BASE_BACKUP_STOP_TIMESTAMP"
)
View Source
const (
	DataProtectionBackupExtrasLabelKey = "dataprotection.kubeblocks.io/backup-extras"
)

Annotations key

View Source
const Restore = "restore"

Restore constant

Variables

View Source
var VolumeSnapshotGroup = "snapshot.storage.k8s.io"

Functions

func BackupFilePathEnv

func BackupFilePathEnv(filePath, targetName, targetPodName string) []corev1.EnvVar

BackupFilePathEnv returns the envs for backup root path and target relative path.

func BuildJobKeyForActionStatus added in v0.8.2

func BuildJobKeyForActionStatus(jobName string) string

func BuildRestoreLabels

func BuildRestoreLabels(restoreName string) map[string]string

func FormatRestoreTimeAndValidate added in v0.8.0

func FormatRestoreTimeAndValidate(restoreTimeStr string, continuousBackup *dpv1alpha1.Backup) (string, error)

func GetRestoreActionsCountForPrepareData

func GetRestoreActionsCountForPrepareData(config *dpv1alpha1.PrepareDataConfig) int

func GetRestoreDuration

func GetRestoreDuration(status dpv1alpha1.RestoreStatus) *metav1.Duration

func GetRestoreFromBackupAnnotation added in v0.8.0

func GetRestoreFromBackupAnnotation(backup *dpv1alpha1.Backup, volumeRestorePolicy, restoreTime string, env []corev1.EnvVar, doReadyRestoreAfterClusterRunning bool) (string, error)

func GetSourcePodNameFromTarget added in v0.9.0

func GetSourcePodNameFromTarget(target *dpv1alpha1.BackupStatusTarget,
	requiredPolicy *dpv1alpha1.RequiredPolicyForAllPodSelection,
	index int) (string, error)

GetSourcePodNameFromTarget gets the source pod name from backup status target according to 'RequiredPolicyForAllPodSelection'.

func GetTargetRelativePath

func GetTargetRelativePath(targetName, targetPodName string) string

GetTargetRelativePath returns the target relative path.

func GetVolumeSnapshotsBySourcePod added in v0.9.0

func GetVolumeSnapshotsBySourcePod(backup *dpv1alpha1.Backup, target *dpv1alpha1.BackupStatusTarget, sourcePodName string) map[string]string

GetVolumeSnapshotsBySourcePod gets the volume snapshots of the backup and group by source target pod.

func SetRestoreCheckBackupRepoCondition added in v0.9.0

func SetRestoreCheckBackupRepoCondition(restore *dpv1alpha1.Restore, reason, message string)

func SetRestoreCondition

func SetRestoreCondition(restore *dpv1alpha1.Restore, status metav1.ConditionStatus, conditionType, reason, message string)

func SetRestoreStageCondition

func SetRestoreStageCondition(restore *dpv1alpha1.Restore, stage dpv1alpha1.RestoreStage, reason, message string)

SetRestoreStageCondition sets restore stage condition.

func SetRestoreStatusAction

func SetRestoreStatusAction(actions *[]dpv1alpha1.RestoreStatusAction,
	statusAction dpv1alpha1.RestoreStatusAction)

func SetRestoreValidationCondition

func SetRestoreValidationCondition(restore *dpv1alpha1.Restore, reason, message string)

SetRestoreValidationCondition sets restore condition which type is ConditionTypeRestoreValidationPassed.

func ValidateAndInitRestoreMGR

func ValidateAndInitRestoreMGR(reqCtx intctrlutil.RequestCtx,
	cli client.Client,
	restoreMgr *RestoreManager) error

ValidateAndInitRestoreMGR validate if the restore CR is valid and init the restore manager.

func ValidateParentBackupSet

func ValidateParentBackupSet(parentBackupSet *BackupActionSet, backupSet *BackupActionSet) error

ValidateParentBackupSet validates the parent backup and child backup.

Types

type BackupActionSet

type BackupActionSet struct {
	Backup *dpv1alpha1.Backup
	// set it when the backup relies on incremental backups, such as Incremental backup
	AncestorIncrementalBackups []*dpv1alpha1.Backup
	// set it when the backup relies on a base backup, such as Continuous backup
	BaseBackup        *dpv1alpha1.Backup
	ActionSet         *dpv1alpha1.ActionSet
	UseVolumeSnapshot bool
}

type RestoreManager

type RestoreManager struct {
	OriginalRestore       *dpv1alpha1.Restore
	Restore               *dpv1alpha1.Restore
	PrepareDataBackupSets []BackupActionSet
	PostReadyBackupSets   []BackupActionSet
	Schema                *runtime.Scheme
	Recorder              record.EventRecorder
	WorkerServiceAccount  string
}

func NewRestoreManager

func NewRestoreManager(restore *dpv1alpha1.Restore, recorder record.EventRecorder, schema *runtime.Scheme) *RestoreManager

func (*RestoreManager) AnalysisRestoreActionsWithBackup

func (r *RestoreManager) AnalysisRestoreActionsWithBackup(stage dpv1alpha1.RestoreStage, backupName string, actionName string) (bool, bool)

AnalysisRestoreActionsWithBackup analysis the restore actions progress group by backup. check if the restore jobs are completed or failed or processing.

func (*RestoreManager) BuildContinuousRestoreManager added in v0.8.2

func (r *RestoreManager) BuildContinuousRestoreManager(reqCtx intctrlutil.RequestCtx, cli client.Client, continuousBackupSet BackupActionSet) error

func (*RestoreManager) BuildDifferentialBackupActionSets

func (r *RestoreManager) BuildDifferentialBackupActionSets(reqCtx intctrlutil.RequestCtx, cli client.Client, sourceBackupSet BackupActionSet) error

BuildDifferentialBackupActionSets builds the backupActionSets for specified incremental backup.

func (*RestoreManager) BuildIncrementalBackupActionSet

func (r *RestoreManager) BuildIncrementalBackupActionSet(reqCtx intctrlutil.RequestCtx, cli client.Client, sourceBackupSet BackupActionSet) error

BuildIncrementalBackupActionSet builds the backupActionSet for specified incremental backup.

func (*RestoreManager) BuildPostReadyActionJobs

func (r *RestoreManager) BuildPostReadyActionJobs(reqCtx intctrlutil.RequestCtx, cli client.Client, backupSet BackupActionSet, target *dpv1alpha1.BackupStatusTarget, step int) ([]*batchv1.Job, error)

BuildPostReadyActionJobs builds the post ready jobs.

func (*RestoreManager) BuildPrepareDataJobs

func (r *RestoreManager) BuildPrepareDataJobs(reqCtx intctrlutil.RequestCtx, cli client.Client, backupSet BackupActionSet, target *dpv1alpha1.BackupStatusTarget, actionName string) ([]*batchv1.Job, error)

BuildPrepareDataJobs builds the restore jobs for prepare pvc's data, and will create the target pvcs if not exist.

func (*RestoreManager) BuildVolumePopulateJob

func (r *RestoreManager) BuildVolumePopulateJob(
	reqCtx intctrlutil.RequestCtx,
	cli client.Client,
	backupSet BackupActionSet,
	target *dpv1alpha1.BackupStatusTarget,
	populatePVC *corev1.PersistentVolumeClaim,
	index int) (*batchv1.Job, error)

func (*RestoreManager) CheckJobsDone

func (r *RestoreManager) CheckJobsDone(
	stage dpv1alpha1.RestoreStage,
	actionName string,
	backupSet BackupActionSet,
	fetchedJobs []*batchv1.Job) (bool, bool)

CheckJobsDone checks if jobs are completed or failed.

func (*RestoreManager) CreateJobsIfNotExist

func (r *RestoreManager) CreateJobsIfNotExist(reqCtx intctrlutil.RequestCtx,
	cli client.Client,
	ownerObj client.Object,
	objs []*batchv1.Job) ([]*batchv1.Job, error)

CreateJobsIfNotExist creates the jobs if not exist.

func (*RestoreManager) GetBackupActionSetByNamespaced

func (r *RestoreManager) GetBackupActionSetByNamespaced(reqCtx intctrlutil.RequestCtx,
	cli client.Client,
	backupName,
	namespace string) (*BackupActionSet, error)

GetBackupActionSetByNamespaced gets the BackupActionSet by name and namespace of backup.

func (*RestoreManager) Recalculation

func (r *RestoreManager) Recalculation(backupName, actionName string, allActionsFinished, existFailedAction *bool)

Recalculation whether all actions have been completed.

func (*RestoreManager) RestorePVCFromSnapshot

func (r *RestoreManager) RestorePVCFromSnapshot(reqCtx intctrlutil.RequestCtx, cli client.Client, backupSet BackupActionSet, target *dpv1alpha1.BackupStatusTarget) error

func (*RestoreManager) SetBackupSets

func (r *RestoreManager) SetBackupSets(backupSets ...BackupActionSet)

Jump to

Keyboard shortcuts

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