Documentation
¶
Index ¶
Constants ¶
const (
Namespace = "velero"
)
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Backup ¶
type Backup struct {
metav1.TypeMeta `json:",inline"`
Metadata metav1.ObjectMeta `json:"metadata"`
// +optional
Spec BackupSpec `json:"spec,omitempty"`
// +optional
Status BackupStatus `json:"status,omitempty"`
}
Backup is a Velero resource that respresents the capture of Kubernetes cluster state at a point in time (API objects and associated volume state).
func (Backup) DeepCopyObject ¶
func (Backup) GetObjectKind ¶
func (in Backup) GetObjectKind() schema.ObjectKind
type BackupHooks ¶
type BackupHooks struct {
// Resources are hooks that should be executed when backing up individual instances of a resource.
// +optional
// +nullable
Resources []BackupResourceHookSpec `json:"resources,omitempty"`
}
BackupHooks contains custom behaviors that should be executed at different phases of the backup.
type BackupList ¶
type BackupList struct {
metav1.TypeMeta `json:",inline"`
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
Items []Backup `json:"items"`
}
BackupList is a list of Backups.
type BackupPhase ¶
type BackupPhase string
BackupPhase is a string representation of the lifecycle phase of a Velero backup. +kubebuilder:validation:Enum=New;FailedValidation;InProgress;Completed;PartiallyFailed;Failed;Deleting
const ( // BackupPhaseNew means the backup has been created but not // yet processed by the BackupController. BackupPhaseNew BackupPhase = "New" // BackupPhaseFailedValidation means the backup has failed // the controller's validations and therefore will not run. BackupPhaseFailedValidation BackupPhase = "FailedValidation" // BackupPhaseInProgress means the backup is currently executing. BackupPhaseInProgress BackupPhase = "InProgress" // BackupPhaseCompleted means the backup has run successfully without // errors. BackupPhaseCompleted BackupPhase = "Completed" // BackupPhasePartiallyFailed means the backup has run to completion // but encountered 1+ errors backing up individual items. BackupPhasePartiallyFailed BackupPhase = "PartiallyFailed" // 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 BackupResourceHook ¶
type BackupResourceHook struct {
// Exec defines an exec hook.
Exec *ExecHook `json:"exec"`
}
BackupResourceHook defines a hook for a resource.
type BackupResourceHookSpec ¶
type BackupResourceHookSpec struct {
// Name is the name of this hook.
Name string `json:"name"`
// IncludedNamespaces specifies the namespaces to which this hook spec applies. If empty, it applies
// to all namespaces.
// +optional
// +nullable
IncludedNamespaces []string `json:"includedNamespaces,omitempty"`
// ExcludedNamespaces specifies the namespaces to which this hook spec does not apply.
// +optional
// +nullable
ExcludedNamespaces []string `json:"excludedNamespaces,omitempty"`
// IncludedResources specifies the resources to which this hook spec applies. If empty, it applies
// to all resources.
// +optional
// +nullable
IncludedResources []string `json:"includedResources,omitempty"`
// ExcludedResources specifies the resources to which this hook spec does not apply.
// +optional
// +nullable
ExcludedResources []string `json:"excludedResources,omitempty"`
// LabelSelector, if specified, filters the resources to which this hook spec applies.
// +optional
// +nullable
LabelSelector *metav1.LabelSelector `json:"labelSelector,omitempty"`
// PreHooks is a list of BackupResourceHooks to execute prior to storing the item in the backup.
// These are executed before any "additional items" from item actions are processed.
// +optional
PreHooks []BackupResourceHook `json:"pre,omitempty"`
// PostHooks is a list of BackupResourceHooks to execute after storing the item in the backup.
// These are executed after all "additional items" from item actions are processed.
// +optional
PostHooks []BackupResourceHook `json:"post,omitempty"`
}
BackupResourceHookSpec defines one or more BackupResourceHooks that should be executed based on the rules defined for namespaces, resources, and label selector.
type BackupSpec ¶
type BackupSpec struct {
// IncludedNamespaces is a slice of namespace names to include objects
// from. If empty, all namespaces are included.
// +optional
// +nullable
IncludedNamespaces []string `json:"includedNamespaces,omitempty"`
// ExcludedNamespaces contains a list of namespaces that are not
// included in the backup.
// +optional
// +nullable
ExcludedNamespaces []string `json:"excludedNamespaces,omitempty"`
// IncludedResources is a slice of resource names to include
// in the backup. If empty, all resources are included.
// +optional
// +nullable
IncludedResources []string `json:"includedResources,omitempty"`
// ExcludedResources is a slice of resource names that are not
// included in the backup.
// +optional
// +nullable
ExcludedResources []string `json:"excludedResources,omitempty"`
// LabelSelector is a metav1.LabelSelector to filter with
// when adding individual objects to the backup. If empty
// or nil, all objects are included. Optional.
// +optional
// +nullable
LabelSelector *metav1.LabelSelector `json:"labelSelector,omitempty"`
// SnapshotVolumes specifies whether to take cloud snapshots
// of any PV's referenced in the set of objects included
// in the Backup.
// +optional
// +nullable
SnapshotVolumes *bool `json:"snapshotVolumes,omitempty"`
// TTL is a time.Duration-parseable string describing how long
// the Backup should be retained for.
// +optional
TTL metav1.Duration `json:"ttl,omitempty"`
// IncludeClusterResources specifies whether cluster-scoped resources
// should be included for consideration in the backup.
// +optional
// +nullable
IncludeClusterResources *bool `json:"includeClusterResources,omitempty"`
// Hooks represent custom behaviors that should be executed at different phases of the backup.
// +optional
Hooks BackupHooks `json:"hooks,omitempty"`
// StorageLocation is a string containing the name of a BackupStorageLocation where the backup should be stored.
// +optional
StorageLocation string `json:"storageLocation,omitempty"`
// VolumeSnapshotLocations is a list containing names of VolumeSnapshotLocations associated with this backup.
// +optional
VolumeSnapshotLocations []string `json:"volumeSnapshotLocations,omitempty"`
}
type BackupStatus ¶
type BackupStatus struct {
// Version is the backup format version.
// +optional
Version int `json:"version,omitempty"`
// Expiration is when this Backup is eligible for garbage-collection.
// +optional
// +nullable
Expiration *metav1.Time `json:"expiration,omitempty"`
// Phase is the current state of the Backup.
// +optional
Phase BackupPhase `json:"phase,omitempty"`
// ValidationErrors is a slice of all validation errors (if
// applicable).
// +optional
// +nullable
ValidationErrors []string `json:"validationErrors,omitempty"`
// StartTimestamp records the time a backup was started.
// Separate from CreationTimestamp, since that value changes
// on restores.
// The server's time is used for StartTimestamps
// +optional
// +nullable
StartTimestamp *metav1.Time `json:"startTimestamp,omitempty"`
// CompletionTimestamp records the time a backup was completed.
// Completion time is recorded even on failed backups.
// Completion time is recorded before uploading the backup object.
// The server's time is used for CompletionTimestamps
// +optional
// +nullable
CompletionTimestamp *metav1.Time `json:"completionTimestamp,omitempty"`
// VolumeSnapshotsAttempted is the total number of attempted
// volume snapshots for this backup.
// +optional
VolumeSnapshotsAttempted int `json:"volumeSnapshotsAttempted,omitempty"`
// VolumeSnapshotsCompleted is the total number of successfully
// completed volume snapshots for this backup.
// +optional
VolumeSnapshotsCompleted int `json:"volumeSnapshotsCompleted,omitempty"`
// Warnings is a count of all warning messages that were generated during
// execution of the backup. The actual warnings are in the backup's log
// file in object storage.
// +optional
Warnings int `json:"warnings,omitempty"`
// Errors is a count of all error messages that were generated during
// execution of the backup. The actual errors are in the backup's log
// file in object storage.
// +optional
Errors int `json:"errors,omitempty"`
}
BackupStatus captures the current status of a Velero backup.
type ExecHook ¶
type ExecHook 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 Velero should behave if it encounters an error executing this hook.
// +optional
OnError HookErrorMode `json:"onError,omitempty"`
// Timeout defines the maximum amount of time Velero should wait for the hook to complete before
// considering the execution a failure.
// +optional
Timeout metav1.Duration `json:"timeout,omitempty"`
}
ExecHook is a hook that uses the pod exec API to execute a command in a container in a pod.
type HookErrorMode ¶
type HookErrorMode string
HookErrorMode defines how Velero should treat an error from a hook. +kubebuilder:validation:Enum=Continue;Fail
const ( // HookErrorModeContinue means that an error from a hook is acceptable, and the backup can // proceed. HookErrorModeContinue HookErrorMode = "Continue" // HookErrorModeFail means that an error from a hook is problematic, and the backup should be in // error. HookErrorModeFail HookErrorMode = "Fail" )