v1

package
v1.9.6 Latest Latest
Warning

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

Go to latest
Published: Feb 22, 2023 License: Apache-2.0 Imports: 7 Imported by: 275

Documentation

Overview

Package v1 is the v1 version of the API. +groupName=velero.io

Package v1 contains API Schema definitions for the velero v1 API group +kubebuilder:object:generate=true +groupName=velero.io

Index

Constants

View Source
const (
	// DefaultNamespace is the Kubernetes namespace that is used by default for
	// the Velero server and API objects.
	DefaultNamespace = "velero"

	// ResourcesDir is a top-level directory expected in backups which contains sub-directories
	// for each resource type in the backup.
	ResourcesDir = "resources"

	// MetadataDir is a top-level directory expected in backups which contains
	// files that store metadata about the backup, such as the backup version.
	MetadataDir = "metadata"

	// ClusterScopedDir is the name of the directory containing cluster-scoped
	// resources within a Velero backup.
	ClusterScopedDir = "cluster"

	// NamespaceScopedDir is the name of the directory containing namespace-scoped
	// resource within a Velero backup.
	NamespaceScopedDir = "namespaces"

	// CSIFeatureFlag is the feature flag string that defines whether or not CSI features are being used.
	CSIFeatureFlag = "EnableCSI"

	// PreferredVersionDir is the suffix name of the directory containing the preferred version of the API group
	// resource within a Velero backup.
	PreferredVersionDir = "-preferredversion"

	// APIGroupVersionsFeatureFlag is the feature flag string that defines whether or not to handle multiple API Group Versions
	APIGroupVersionsFeatureFlag = "EnableAPIGroupVersions"

	// UploadProgressFeatureFlag is the feature flag string that defines whether or not upload progress monitoring is enabled
	// and whether or not ItemSnapshotters should be invoked
	UploadProgressFeatureFlag = "EnableUploadProgress"
)
View Source
const (
	// BackupNameLabel is the label key used to identify a backup by name.
	BackupNameLabel = "velero.io/backup-name"

	// BackupUIDLabel is the label key used to identify a backup by uid.
	BackupUIDLabel = "velero.io/backup-uid"

	// RestoreNameLabel is the label key used to identify a restore by name.
	RestoreNameLabel = "velero.io/restore-name"

	// ScheduleNameLabel is the label key used to identify a schedule by name.
	ScheduleNameLabel = "velero.io/schedule-name"

	// RestoreUIDLabel is the label key used to identify a restore by uid.
	RestoreUIDLabel = "velero.io/restore-uid"

	// PodUIDLabel is the label key used to identify a pod by uid.
	PodUIDLabel = "velero.io/pod-uid"

	// PVCUIDLabel is the label key used to identify a PVC by uid.
	PVCUIDLabel = "velero.io/pvc-uid"

	// PodVolumeOperationTimeoutAnnotation is the annotation key used to apply
	// a backup/restore-specific timeout value for pod volume operations (i.e.
	// restic backups/restores).
	PodVolumeOperationTimeoutAnnotation = "velero.io/pod-volume-timeout"

	// StorageLocationLabel is the label key used to identify the storage
	// location of a backup.
	StorageLocationLabel = "velero.io/storage-location"

	// ResticVolumeNamespaceLabel is the label key used to identify which
	// namespace a restic repository stores pod volume backups for.
	ResticVolumeNamespaceLabel = "velero.io/volume-namespace"

	// SourceClusterK8sVersionAnnotation is the label key used to identify the k8s
	// git version of the backup , i.e. v1.16.4
	SourceClusterK8sGitVersionAnnotation = "velero.io/source-cluster-k8s-gitversion"

	// SourceClusterK8sMajorVersionAnnotation is the label key used to identify the k8s
	// major version of the backup , i.e. 1
	SourceClusterK8sMajorVersionAnnotation = "velero.io/source-cluster-k8s-major-version"

	// SourceClusterK8sMajorVersionAnnotation is the label key used to identify the k8s
	// minor version of the backup , i.e. 16
	SourceClusterK8sMinorVersionAnnotation = "velero.io/source-cluster-k8s-minor-version"
)
View Source
const (
	// RestorePhaseNew means the restore has been created but not
	// yet processed by the RestoreController
	RestorePhaseNew RestorePhase = "New"

	// RestorePhaseFailedValidation means the restore has failed
	// the controller's validations and therefore will not run.
	RestorePhaseFailedValidation RestorePhase = "FailedValidation"

	// RestorePhaseInProgress means the restore is currently executing.
	RestorePhaseInProgress RestorePhase = "InProgress"

	// RestorePhaseCompleted means the restore has run successfully
	// without errors.
	RestorePhaseCompleted RestorePhase = "Completed"

	// RestorePhasePartiallyFailed means the restore has run to completion
	// but encountered 1+ errors restoring individual items.
	RestorePhasePartiallyFailed RestorePhase = "PartiallyFailed"

	// RestorePhaseFailed means the restore was unable to execute.
	// The failing error is recorded in status.FailureReason.
	RestorePhaseFailed RestorePhase = "Failed"

	// PolicyTypeNone means velero will not overwrite the resource
	// in cluster with the one in backup whether changed/unchanged.
	PolicyTypeNone PolicyType = "none"

	// PolicyTypeUpdate means velero will try to attempt a patch on
	// the changed resources.
	PolicyTypeUpdate PolicyType = "update"
)

Variables

View Source
var (
	// SchemeGroupVersion is group version used to register these objects
	SchemeGroupVersion = schema.GroupVersion{Group: "velero.io", Version: "v1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func CustomResources

func CustomResources() map[string]typeInfo

CustomResources returns a map of all custom resources within the Velero API group, keyed on Kind.

func Resource

func Resource(resource string) schema.GroupResource

Resource gets a Velero GroupResource for a specified resource

Types

type Backup

type Backup struct {
	metav1.TypeMeta `json:",inline"`

	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// +optional
	Spec BackupSpec `json:"spec,omitempty"`

	// +optional
	Status BackupStatus `json:"status,omitempty"`
}

Backup is a Velero resource that represents the capture of Kubernetes cluster state at a point in time (API objects and associated volume state).

func (*Backup) DeepCopy

func (in *Backup) DeepCopy() *Backup

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Backup.

func (*Backup) DeepCopyInto

func (in *Backup) DeepCopyInto(out *Backup)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Backup) DeepCopyObject

func (in *Backup) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

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.

func (*BackupHooks) DeepCopy

func (in *BackupHooks) DeepCopy() *BackupHooks

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupHooks.

func (*BackupHooks) DeepCopyInto

func (in *BackupHooks) DeepCopyInto(out *BackupHooks)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

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.

func (*BackupList) DeepCopy

func (in *BackupList) DeepCopy() *BackupList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupList.

func (*BackupList) DeepCopyInto

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

func (in *BackupList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

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"

	// BackupPhaseUploading means the backups of Kubernetes resources
	// and creation of snapshots was successful and snapshot data
	// is currently uploading.  The backup is not usable yet.
	BackupPhaseUploading BackupPhase = "Uploading"

	// BackupPhaseUploadingPartialFailure means the backup of Kubernetes
	// resources and creation of snapshots partially failed (final phase
	// will be PartiallyFailed) and snapshot data is currently uploading.
	// The backup is not usable yet.
	BackupPhaseUploadingPartialFailure BackupPhase = "UploadingPartialFailure"

	// 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 BackupProgress added in v1.4.0

type BackupProgress struct {
	// TotalItems is the total number of items to be backed up. This number may change
	// throughout the execution of the backup due to plugins that return additional related
	// items to back up, the velero.io/exclude-from-backup label, and various other
	// filters that happen as items are processed.
	// +optional
	TotalItems int `json:"totalItems,omitempty"`

	// ItemsBackedUp is the number of items that have actually been written to the
	// backup tarball so far.
	// +optional
	ItemsBackedUp int `json:"itemsBackedUp,omitempty"`
}

BackupProgress stores information about the progress of a Backup's execution.

func (*BackupProgress) DeepCopy added in v1.4.0

func (in *BackupProgress) DeepCopy() *BackupProgress

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupProgress.

func (*BackupProgress) DeepCopyInto added in v1.4.0

func (in *BackupProgress) DeepCopyInto(out *BackupProgress)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BackupResourceHook

type BackupResourceHook struct {
	// Exec defines an exec hook.
	Exec *ExecHook `json:"exec"`
}

BackupResourceHook defines a hook for a resource.

func (*BackupResourceHook) DeepCopy

func (in *BackupResourceHook) DeepCopy() *BackupResourceHook

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupResourceHook.

func (*BackupResourceHook) DeepCopyInto

func (in *BackupResourceHook) DeepCopyInto(out *BackupResourceHook)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

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.

func (*BackupResourceHookSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupResourceHookSpec.

func (*BackupResourceHookSpec) DeepCopyInto

func (in *BackupResourceHookSpec) DeepCopyInto(out *BackupResourceHookSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BackupSpec

type BackupSpec struct {
	// +optional
	Metadata `json:"metadata,omitempty"`
	// 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"`

	// OrLabelSelectors is list of metav1.LabelSelector to filter with
	// when adding individual objects to the backup. If multiple provided
	// they will be joined by the OR operator. LabelSelector as well as
	// OrLabelSelectors cannot co-exist in backup request, only one of them
	// can be used.
	// +optional
	// +nullable
	OrLabelSelectors []*metav1.LabelSelector `json:"orLabelSelectors,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"`

	// DefaultVolumesToRestic specifies whether restic should be used to take a
	// backup of all pod volumes by default.
	// +optional
	// + nullable
	DefaultVolumesToRestic *bool `json:"defaultVolumesToRestic,omitempty"`

	// OrderedResources specifies the backup order of resources of specific Kind.
	// The map key is the Kind name and value is a list of resource names separated by commas.
	// Each resource name has format "namespace/resourcename".  For cluster resources, simply use "resourcename".
	// +optional
	// +nullable
	OrderedResources map[string]string `json:"orderedResources,omitempty"`

	// CSISnapshotTimeout specifies the time used to wait for CSI VolumeSnapshot status turns to
	// ReadyToUse during creation, before returning error as timeout.
	// The default value is 10 minute.
	// +optional
	CSISnapshotTimeout metav1.Duration `json:"csiSnapshotTimeout,omitempty"`
}

BackupSpec defines the specification for a Velero backup.

func (*BackupSpec) DeepCopy

func (in *BackupSpec) DeepCopy() *BackupSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupSpec.

func (*BackupSpec) DeepCopyInto

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 {
	// Version is the backup format major version.
	// Deprecated: Please see FormatVersion
	// +optional
	Version int `json:"version,omitempty"`

	// FormatVersion is the backup format version, including major, minor, and patch version.
	// +optional
	FormatVersion string `json:"formatVersion,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"`

	// FailureReason is an error that caused the entire backup to fail.
	// +optional
	FailureReason string `json:"failureReason,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"`

	// Progress contains information about the backup's execution progress. Note
	// that this information is best-effort only -- if Velero fails to update it
	// during a backup for any reason, it may be inaccurate/stale.
	// +optional
	// +nullable
	Progress *BackupProgress `json:"progress,omitempty"`

	// CSIVolumeSnapshotsAttempted is the total number of attempted
	// CSI VolumeSnapshots for this backup.
	// +optional
	CSIVolumeSnapshotsAttempted int `json:"csiVolumeSnapshotsAttempted,omitempty"`

	// CSIVolumeSnapshotsCompleted is the total number of successfully
	// completed CSI VolumeSnapshots for this backup.
	// +optional
	CSIVolumeSnapshotsCompleted int `json:"csiVolumeSnapshotsCompleted,omitempty"`
}

BackupStatus captures the current status of a Velero backup.

func (*BackupStatus) DeepCopy

func (in *BackupStatus) DeepCopy() *BackupStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupStatus.

func (*BackupStatus) DeepCopyInto

func (in *BackupStatus) DeepCopyInto(out *BackupStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BackupStorageLocation

type BackupStorageLocation struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   BackupStorageLocationSpec   `json:"spec,omitempty"`
	Status BackupStorageLocationStatus `json:"status,omitempty"`
}

BackupStorageLocation is a location where Velero stores backup objects

func (*BackupStorageLocation) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupStorageLocation.

func (*BackupStorageLocation) DeepCopyInto

func (in *BackupStorageLocation) DeepCopyInto(out *BackupStorageLocation)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*BackupStorageLocation) DeepCopyObject

func (in *BackupStorageLocation) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type BackupStorageLocationAccessMode

type BackupStorageLocationAccessMode string

BackupStorageLocationAccessMode represents the permissions for a BackupStorageLocation. +kubebuilder:validation:Enum=ReadOnly;ReadWrite

const (
	// BackupStorageLocationAccessModeReadOnly represents read-only access to a BackupStorageLocation.
	BackupStorageLocationAccessModeReadOnly BackupStorageLocationAccessMode = "ReadOnly"

	// BackupStorageLocationAccessModeReadWrite represents read and write access to a BackupStorageLocation.
	BackupStorageLocationAccessModeReadWrite BackupStorageLocationAccessMode = "ReadWrite"
)

type BackupStorageLocationList

type BackupStorageLocationList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []BackupStorageLocation `json:"items"`
}

BackupStorageLocationList contains a list of BackupStorageLocation

func (*BackupStorageLocationList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupStorageLocationList.

func (*BackupStorageLocationList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*BackupStorageLocationList) DeepCopyObject

func (in *BackupStorageLocationList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type BackupStorageLocationPhase

type BackupStorageLocationPhase string

BackupStorageLocationPhase is the lifecycle phase of a Velero BackupStorageLocation. +kubebuilder:validation:Enum=Available;Unavailable +kubebuilder:default=Unavailable

const (
	// BackupStorageLocationPhaseAvailable means the location is available to read and write from.
	BackupStorageLocationPhaseAvailable BackupStorageLocationPhase = "Available"

	// BackupStorageLocationPhaseUnavailable means the location is unavailable to read and write from.
	BackupStorageLocationPhaseUnavailable BackupStorageLocationPhase = "Unavailable"
)

type BackupStorageLocationSpec

type BackupStorageLocationSpec struct {
	// Provider is the provider of the backup storage.
	Provider string `json:"provider"`

	// Config is for provider-specific configuration fields.
	// +optional
	Config map[string]string `json:"config,omitempty"`

	// Credential contains the credential information intended to be used with this location
	// +optional
	Credential *corev1api.SecretKeySelector `json:"credential,omitempty"`

	StorageType `json:",inline"`

	// Default indicates this location is the default backup storage location.
	// +optional
	Default bool `json:"default,omitempty"`

	// AccessMode defines the permissions for the backup storage location.
	// +optional
	AccessMode BackupStorageLocationAccessMode `json:"accessMode,omitempty"`

	// BackupSyncPeriod defines how frequently to sync backup API objects from object storage. A value of 0 disables sync.
	// +optional
	// +nullable
	BackupSyncPeriod *metav1.Duration `json:"backupSyncPeriod,omitempty"`

	// ValidationFrequency defines how frequently to validate the corresponding object storage. A value of 0 disables validation.
	// +optional
	// +nullable
	ValidationFrequency *metav1.Duration `json:"validationFrequency,omitempty"`
}

BackupStorageLocationSpec defines the desired state of a Velero BackupStorageLocation

func (*BackupStorageLocationSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupStorageLocationSpec.

func (*BackupStorageLocationSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BackupStorageLocationStatus

type BackupStorageLocationStatus struct {
	// Phase is the current state of the BackupStorageLocation.
	// +optional
	Phase BackupStorageLocationPhase `json:"phase,omitempty"`

	// LastSyncedTime is the last time the contents of the location were synced into
	// the cluster.
	// +optional
	// +nullable
	LastSyncedTime *metav1.Time `json:"lastSyncedTime,omitempty"`

	// LastValidationTime is the last time the backup store location was validated
	// the cluster.
	// +optional
	// +nullable
	LastValidationTime *metav1.Time `json:"lastValidationTime,omitempty"`

	// Message is a message about the backup storage location's status.
	// +optional
	Message string `json:"message,omitempty"`

	// LastSyncedRevision is the value of the `metadata/revision` file in the backup
	// storage location the last time the BSL's contents were synced into the cluster.
	//
	// Deprecated: this field is no longer updated or used for detecting changes to
	// the location's contents and will be removed entirely in v2.0.
	// +optional
	LastSyncedRevision types.UID `json:"lastSyncedRevision,omitempty"`

	// AccessMode is an unused field.
	//
	// Deprecated: there is now an AccessMode field on the Spec and this field
	// will be removed entirely as of v2.0.
	// +optional
	AccessMode BackupStorageLocationAccessMode `json:"accessMode,omitempty"`
}

BackupStorageLocationStatus defines the observed state of BackupStorageLocation

func (*BackupStorageLocationStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupStorageLocationStatus.

func (*BackupStorageLocationStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeleteBackupRequest

type DeleteBackupRequest struct {
	metav1.TypeMeta `json:",inline"`

	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// +optional
	Spec DeleteBackupRequestSpec `json:"spec,omitempty"`

	// +optional
	Status DeleteBackupRequestStatus `json:"status,omitempty"`
}

DeleteBackupRequest is a request to delete one or more backups.

func (*DeleteBackupRequest) DeepCopy

func (in *DeleteBackupRequest) DeepCopy() *DeleteBackupRequest

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeleteBackupRequest.

func (*DeleteBackupRequest) DeepCopyInto

func (in *DeleteBackupRequest) DeepCopyInto(out *DeleteBackupRequest)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DeleteBackupRequest) DeepCopyObject

func (in *DeleteBackupRequest) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type DeleteBackupRequestList

type DeleteBackupRequestList struct {
	metav1.TypeMeta `json:",inline"`

	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []DeleteBackupRequest `json:"items"`
}

DeleteBackupRequestList is a list of DeleteBackupRequests.

func (*DeleteBackupRequestList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeleteBackupRequestList.

func (*DeleteBackupRequestList) DeepCopyInto

func (in *DeleteBackupRequestList) DeepCopyInto(out *DeleteBackupRequestList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DeleteBackupRequestList) DeepCopyObject

func (in *DeleteBackupRequestList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type DeleteBackupRequestPhase

type DeleteBackupRequestPhase string

DeleteBackupRequestPhase represents the lifecycle phase of a DeleteBackupRequest. +kubebuilder:validation:Enum=New;InProgress;Processed

const (
	// DeleteBackupRequestPhaseNew means the DeleteBackupRequest has not been processed yet.
	DeleteBackupRequestPhaseNew DeleteBackupRequestPhase = "New"

	// DeleteBackupRequestPhaseInProgress means the DeleteBackupRequest is being processed.
	DeleteBackupRequestPhaseInProgress DeleteBackupRequestPhase = "InProgress"

	// DeleteBackupRequestPhaseProcessed means the DeleteBackupRequest has been processed.
	DeleteBackupRequestPhaseProcessed DeleteBackupRequestPhase = "Processed"
)

type DeleteBackupRequestSpec

type DeleteBackupRequestSpec struct {
	BackupName string `json:"backupName"`
}

DeleteBackupRequestSpec is the specification for which backups to delete.

func (*DeleteBackupRequestSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeleteBackupRequestSpec.

func (*DeleteBackupRequestSpec) DeepCopyInto

func (in *DeleteBackupRequestSpec) DeepCopyInto(out *DeleteBackupRequestSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeleteBackupRequestStatus

type DeleteBackupRequestStatus struct {
	// Phase is the current state of the DeleteBackupRequest.
	// +optional
	Phase DeleteBackupRequestPhase `json:"phase,omitempty"`

	// Errors contains any errors that were encountered during the deletion process.
	// +optional
	// +nullable
	Errors []string `json:"errors,omitempty"`
}

DeleteBackupRequestStatus is the current status of a DeleteBackupRequest.

func (*DeleteBackupRequestStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeleteBackupRequestStatus.

func (*DeleteBackupRequestStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DownloadRequest

type DownloadRequest struct {
	metav1.TypeMeta `json:",inline"`

	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// +optional
	Spec DownloadRequestSpec `json:"spec,omitempty"`

	// +optional
	Status DownloadRequestStatus `json:"status,omitempty"`
}

DownloadRequest is a request to download an artifact from backup object storage, such as a backup log file.

func (*DownloadRequest) DeepCopy

func (in *DownloadRequest) DeepCopy() *DownloadRequest

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DownloadRequest.

func (*DownloadRequest) DeepCopyInto

func (in *DownloadRequest) DeepCopyInto(out *DownloadRequest)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DownloadRequest) DeepCopyObject

func (in *DownloadRequest) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type DownloadRequestList

type DownloadRequestList struct {
	metav1.TypeMeta `json:",inline"`

	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []DownloadRequest `json:"items"`
}

DownloadRequestList is a list of DownloadRequests.

func (*DownloadRequestList) DeepCopy

func (in *DownloadRequestList) DeepCopy() *DownloadRequestList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DownloadRequestList.

func (*DownloadRequestList) DeepCopyInto

func (in *DownloadRequestList) DeepCopyInto(out *DownloadRequestList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DownloadRequestList) DeepCopyObject

func (in *DownloadRequestList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type DownloadRequestPhase

type DownloadRequestPhase string

DownloadRequestPhase represents the lifecycle phase of a DownloadRequest. +kubebuilder:validation:Enum=New;Processed

const (
	// DownloadRequestPhaseNew means the DownloadRequest has not been processed by the
	// DownloadRequestController yet.
	DownloadRequestPhaseNew DownloadRequestPhase = "New"

	// DownloadRequestPhaseProcessed means the DownloadRequest has been processed by the
	// DownloadRequestController.
	DownloadRequestPhaseProcessed DownloadRequestPhase = "Processed"
)

type DownloadRequestSpec

type DownloadRequestSpec struct {
	// Target is what to download (e.g. logs for a backup).
	Target DownloadTarget `json:"target"`
}

DownloadRequestSpec is the specification for a download request.

func (*DownloadRequestSpec) DeepCopy

func (in *DownloadRequestSpec) DeepCopy() *DownloadRequestSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DownloadRequestSpec.

func (*DownloadRequestSpec) DeepCopyInto

func (in *DownloadRequestSpec) DeepCopyInto(out *DownloadRequestSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DownloadRequestStatus

type DownloadRequestStatus struct {
	// Phase is the current state of the DownloadRequest.
	// +optional
	Phase DownloadRequestPhase `json:"phase,omitempty"`

	// DownloadURL contains the pre-signed URL for the target file.
	// +optional
	DownloadURL string `json:"downloadURL,omitempty"`

	// Expiration is when this DownloadRequest expires and can be deleted by the system.
	// +optional
	// +nullable
	Expiration *metav1.Time `json:"expiration,omitempty"`
}

DownloadRequestStatus is the current status of a DownloadRequest.

func (*DownloadRequestStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DownloadRequestStatus.

func (*DownloadRequestStatus) DeepCopyInto

func (in *DownloadRequestStatus) DeepCopyInto(out *DownloadRequestStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DownloadTarget

type DownloadTarget struct {
	// Kind is the type of file to download.
	Kind DownloadTargetKind `json:"kind"`

	// Name is the name of the kubernetes resource with which the file is associated.
	Name string `json:"name"`
}

DownloadTarget is the specification for what kind of file to download, and the name of the resource with which it's associated.

func (*DownloadTarget) DeepCopy

func (in *DownloadTarget) DeepCopy() *DownloadTarget

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DownloadTarget.

func (*DownloadTarget) DeepCopyInto

func (in *DownloadTarget) DeepCopyInto(out *DownloadTarget)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DownloadTargetKind

type DownloadTargetKind string

DownloadTargetKind represents what type of file to download. +kubebuilder:validation:Enum=BackupLog;BackupContents;BackupVolumeSnapshots;BackupItemSnapshots;BackupResourceList;RestoreLog;RestoreResults;CSIBackupVolumeSnapshots;CSIBackupVolumeSnapshotContents

const (
	DownloadTargetKindBackupLog                       DownloadTargetKind = "BackupLog"
	DownloadTargetKindBackupContents                  DownloadTargetKind = "BackupContents"
	DownloadTargetKindBackupVolumeSnapshots           DownloadTargetKind = "BackupVolumeSnapshots"
	DownloadTargetKindBackupItemSnapshots             DownloadTargetKind = "BackupItemSnapshots"
	DownloadTargetKindBackupResourceList              DownloadTargetKind = "BackupResourceList"
	DownloadTargetKindRestoreLog                      DownloadTargetKind = "RestoreLog"
	DownloadTargetKindRestoreResults                  DownloadTargetKind = "RestoreResults"
	DownloadTargetKindCSIBackupVolumeSnapshots        DownloadTargetKind = "CSIBackupVolumeSnapshots"
	DownloadTargetKindCSIBackupVolumeSnapshotContents DownloadTargetKind = "CSIBackupVolumeSnapshotContents"
)

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.

func (*ExecHook) DeepCopy

func (in *ExecHook) DeepCopy() *ExecHook

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecHook.

func (*ExecHook) DeepCopyInto

func (in *ExecHook) DeepCopyInto(out *ExecHook)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExecRestoreHook added in v1.5.0

type ExecRestoreHook 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 from within a container after a pod has been restored.
	// +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"`

	// ExecTimeout defines the maximum amount of time Velero should wait for the hook to complete before
	// considering the execution a failure.
	// +optional
	ExecTimeout metav1.Duration `json:"execTimeout,omitempty"`

	// WaitTimeout defines the maximum amount of time Velero should wait for the container to be Ready
	// before attempting to run the command.
	// +optional
	WaitTimeout metav1.Duration `json:"waitTimeout,omitempty"`
}

ExecRestoreHook is a hook that uses pod exec API to execute a command inside a container in a pod

func (*ExecRestoreHook) DeepCopy added in v1.5.0

func (in *ExecRestoreHook) DeepCopy() *ExecRestoreHook

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecRestoreHook.

func (*ExecRestoreHook) DeepCopyInto added in v1.5.0

func (in *ExecRestoreHook) DeepCopyInto(out *ExecRestoreHook)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

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"
)

type InitRestoreHook added in v1.5.0

type InitRestoreHook struct {
	// InitContainers is list of init containers to be added to a pod during its restore.
	// +optional
	InitContainers []v1.Container `json:"initContainers"`

	// Timeout defines the maximum amount of time Velero should wait for the initContainers to complete.
	// +optional
	Timeout metav1.Duration `json:"timeout,omitempty"`
}

InitRestoreHook is a hook that adds an init container to a PodSpec to run commands before the workload pod is able to start.

func (*InitRestoreHook) DeepCopy added in v1.5.0

func (in *InitRestoreHook) DeepCopy() *InitRestoreHook

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InitRestoreHook.

func (*InitRestoreHook) DeepCopyInto added in v1.5.0

func (in *InitRestoreHook) DeepCopyInto(out *InitRestoreHook)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Metadata added in v1.7.0

type Metadata struct {
	Labels map[string]string `json:"labels,omitempty"`
}

func (*Metadata) DeepCopy added in v1.7.0

func (in *Metadata) DeepCopy() *Metadata

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Metadata.

func (*Metadata) DeepCopyInto added in v1.7.0

func (in *Metadata) DeepCopyInto(out *Metadata)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ObjectStorageLocation

type ObjectStorageLocation struct {
	// Bucket is the bucket to use for object storage.
	Bucket string `json:"bucket"`

	// Prefix is the path inside a bucket to use for Velero storage. Optional.
	// +optional
	Prefix string `json:"prefix,omitempty"`

	// CACert defines a CA bundle to use when verifying TLS connections to the provider.
	// +optional
	CACert []byte `json:"caCert,omitempty"`
}

ObjectStorageLocation specifies the settings necessary to connect to a provider's object storage.

func (*ObjectStorageLocation) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectStorageLocation.

func (*ObjectStorageLocation) DeepCopyInto

func (in *ObjectStorageLocation) DeepCopyInto(out *ObjectStorageLocation)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PluginInfo added in v1.0.1

type PluginInfo struct {
	Name string `json:"name"`
	Kind string `json:"kind"`
}

PluginInfo contains attributes of a Velero plugin

func (*PluginInfo) DeepCopy added in v1.0.1

func (in *PluginInfo) DeepCopy() *PluginInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginInfo.

func (*PluginInfo) DeepCopyInto added in v1.0.1

func (in *PluginInfo) DeepCopyInto(out *PluginInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PodVolumeBackup

type PodVolumeBackup struct {
	metav1.TypeMeta `json:",inline"`

	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// +optional
	Spec PodVolumeBackupSpec `json:"spec,omitempty"`

	// +optional
	Status PodVolumeBackupStatus `json:"status,omitempty"`
}

func (*PodVolumeBackup) DeepCopy

func (in *PodVolumeBackup) DeepCopy() *PodVolumeBackup

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodVolumeBackup.

func (*PodVolumeBackup) DeepCopyInto

func (in *PodVolumeBackup) DeepCopyInto(out *PodVolumeBackup)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PodVolumeBackup) DeepCopyObject

func (in *PodVolumeBackup) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PodVolumeBackupList

type PodVolumeBackupList struct {
	metav1.TypeMeta `json:",inline"`

	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []PodVolumeBackup `json:"items"`
}

PodVolumeBackupList is a list of PodVolumeBackups.

func (*PodVolumeBackupList) DeepCopy

func (in *PodVolumeBackupList) DeepCopy() *PodVolumeBackupList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodVolumeBackupList.

func (*PodVolumeBackupList) DeepCopyInto

func (in *PodVolumeBackupList) DeepCopyInto(out *PodVolumeBackupList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PodVolumeBackupList) DeepCopyObject

func (in *PodVolumeBackupList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PodVolumeBackupPhase

type PodVolumeBackupPhase string

PodVolumeBackupPhase represents the lifecycle phase of a PodVolumeBackup. +kubebuilder:validation:Enum=New;InProgress;Completed;Failed

const (
	PodVolumeBackupPhaseNew        PodVolumeBackupPhase = "New"
	PodVolumeBackupPhaseInProgress PodVolumeBackupPhase = "InProgress"
	PodVolumeBackupPhaseCompleted  PodVolumeBackupPhase = "Completed"
	PodVolumeBackupPhaseFailed     PodVolumeBackupPhase = "Failed"
)

type PodVolumeBackupSpec

type PodVolumeBackupSpec struct {
	// Node is the name of the node that the Pod is running on.
	Node string `json:"node"`

	// Pod is a reference to the pod containing the volume to be backed up.
	Pod corev1api.ObjectReference `json:"pod"`

	// Volume is the name of the volume within the Pod to be backed
	// up.
	Volume string `json:"volume"`

	// BackupStorageLocation is the name of the backup storage location
	// where the restic repository is stored.
	BackupStorageLocation string `json:"backupStorageLocation"`

	// RepoIdentifier is the restic repository identifier.
	RepoIdentifier string `json:"repoIdentifier"`

	// Tags are a map of key-value pairs that should be applied to the
	// volume backup as tags.
	// +optional
	Tags map[string]string `json:"tags,omitempty"`
}

PodVolumeBackupSpec is the specification for a PodVolumeBackup.

func (*PodVolumeBackupSpec) DeepCopy

func (in *PodVolumeBackupSpec) DeepCopy() *PodVolumeBackupSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodVolumeBackupSpec.

func (*PodVolumeBackupSpec) DeepCopyInto

func (in *PodVolumeBackupSpec) DeepCopyInto(out *PodVolumeBackupSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PodVolumeBackupStatus

type PodVolumeBackupStatus struct {
	// Phase is the current state of the PodVolumeBackup.
	// +optional
	Phase PodVolumeBackupPhase `json:"phase,omitempty"`

	// Path is the full path within the controller pod being backed up.
	// +optional
	Path string `json:"path,omitempty"`

	// SnapshotID is the identifier for the snapshot of the pod volume.
	// +optional
	SnapshotID string `json:"snapshotID,omitempty"`

	// Message is a message about the pod volume backup's status.
	// +optional
	Message string `json:"message,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"`

	// Progress holds the total number of bytes of the volume and the current
	// number of backed up bytes. This can be used to display progress information
	// about the backup operation.
	// +optional
	Progress PodVolumeOperationProgress `json:"progress,omitempty"`
}

PodVolumeBackupStatus is the current status of a PodVolumeBackup.

func (*PodVolumeBackupStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodVolumeBackupStatus.

func (*PodVolumeBackupStatus) DeepCopyInto

func (in *PodVolumeBackupStatus) DeepCopyInto(out *PodVolumeBackupStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PodVolumeOperationProgress added in v1.2.0

type PodVolumeOperationProgress struct {
	// +optional
	TotalBytes int64 `json:"totalBytes,omitempty"`

	// +optional
	BytesDone int64 `json:"bytesDone,omitempty"`
}

PodVolumeOperationProgress represents the progress of a PodVolumeBackup/Restore (restic) operation

func (*PodVolumeOperationProgress) DeepCopy added in v1.2.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodVolumeOperationProgress.

func (*PodVolumeOperationProgress) DeepCopyInto added in v1.2.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PodVolumeRestore

type PodVolumeRestore struct {
	metav1.TypeMeta `json:",inline"`

	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// +optional
	Spec PodVolumeRestoreSpec `json:"spec,omitempty"`

	// +optional
	Status PodVolumeRestoreStatus `json:"status,omitempty"`
}

func (*PodVolumeRestore) DeepCopy

func (in *PodVolumeRestore) DeepCopy() *PodVolumeRestore

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodVolumeRestore.

func (*PodVolumeRestore) DeepCopyInto

func (in *PodVolumeRestore) DeepCopyInto(out *PodVolumeRestore)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PodVolumeRestore) DeepCopyObject

func (in *PodVolumeRestore) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PodVolumeRestoreList

type PodVolumeRestoreList struct {
	metav1.TypeMeta `json:",inline"`

	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []PodVolumeRestore `json:"items"`
}

PodVolumeRestoreList is a list of PodVolumeRestores.

func (*PodVolumeRestoreList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodVolumeRestoreList.

func (*PodVolumeRestoreList) DeepCopyInto

func (in *PodVolumeRestoreList) DeepCopyInto(out *PodVolumeRestoreList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PodVolumeRestoreList) DeepCopyObject

func (in *PodVolumeRestoreList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PodVolumeRestorePhase

type PodVolumeRestorePhase string

PodVolumeRestorePhase represents the lifecycle phase of a PodVolumeRestore. +kubebuilder:validation:Enum=New;InProgress;Completed;Failed

const (
	PodVolumeRestorePhaseNew        PodVolumeRestorePhase = "New"
	PodVolumeRestorePhaseInProgress PodVolumeRestorePhase = "InProgress"
	PodVolumeRestorePhaseCompleted  PodVolumeRestorePhase = "Completed"
	PodVolumeRestorePhaseFailed     PodVolumeRestorePhase = "Failed"
)

type PodVolumeRestoreSpec

type PodVolumeRestoreSpec struct {
	// Pod is a reference to the pod containing the volume to be restored.
	Pod corev1api.ObjectReference `json:"pod"`

	// Volume is the name of the volume within the Pod to be restored.
	Volume string `json:"volume"`

	// BackupStorageLocation is the name of the backup storage location
	// where the restic repository is stored.
	BackupStorageLocation string `json:"backupStorageLocation"`

	// RepoIdentifier is the restic repository identifier.
	RepoIdentifier string `json:"repoIdentifier"`

	// SnapshotID is the ID of the volume snapshot to be restored.
	SnapshotID string `json:"snapshotID"`
}

PodVolumeRestoreSpec is the specification for a PodVolumeRestore.

func (*PodVolumeRestoreSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodVolumeRestoreSpec.

func (*PodVolumeRestoreSpec) DeepCopyInto

func (in *PodVolumeRestoreSpec) DeepCopyInto(out *PodVolumeRestoreSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PodVolumeRestoreStatus

type PodVolumeRestoreStatus struct {
	// Phase is the current state of the PodVolumeRestore.
	// +optional
	Phase PodVolumeRestorePhase `json:"phase,omitempty"`

	// Message is a message about the pod volume restore's status.
	// +optional
	Message string `json:"message,omitempty"`

	// StartTimestamp records the time a restore was started.
	// The server's time is used for StartTimestamps
	// +optional
	// +nullable
	StartTimestamp *metav1.Time `json:"startTimestamp,omitempty"`

	// CompletionTimestamp records the time a restore was completed.
	// Completion time is recorded even on failed restores.
	// The server's time is used for CompletionTimestamps
	// +optional
	// +nullable
	CompletionTimestamp *metav1.Time `json:"completionTimestamp,omitempty"`

	// Progress holds the total number of bytes of the snapshot and the current
	// number of restored bytes. This can be used to display progress information
	// about the restore operation.
	// +optional
	Progress PodVolumeOperationProgress `json:"progress,omitempty"`
}

PodVolumeRestoreStatus is the current status of a PodVolumeRestore.

func (*PodVolumeRestoreStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodVolumeRestoreStatus.

func (*PodVolumeRestoreStatus) DeepCopyInto

func (in *PodVolumeRestoreStatus) DeepCopyInto(out *PodVolumeRestoreStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PolicyType added in v1.9.0

type PolicyType string

PolicyType helps specify the ExistingResourcePolicy

type ResticRepository

type ResticRepository struct {
	metav1.TypeMeta `json:",inline"`

	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// +optional
	Spec ResticRepositorySpec `json:"spec,omitempty"`

	// +optional
	Status ResticRepositoryStatus `json:"status,omitempty"`
}

func (*ResticRepository) DeepCopy

func (in *ResticRepository) DeepCopy() *ResticRepository

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResticRepository.

func (*ResticRepository) DeepCopyInto

func (in *ResticRepository) DeepCopyInto(out *ResticRepository)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ResticRepository) DeepCopyObject

func (in *ResticRepository) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ResticRepositoryList

type ResticRepositoryList struct {
	metav1.TypeMeta `json:",inline"`

	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []ResticRepository `json:"items"`
}

ResticRepositoryList is a list of ResticRepositories.

func (*ResticRepositoryList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResticRepositoryList.

func (*ResticRepositoryList) DeepCopyInto

func (in *ResticRepositoryList) DeepCopyInto(out *ResticRepositoryList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ResticRepositoryList) DeepCopyObject

func (in *ResticRepositoryList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ResticRepositoryPhase

type ResticRepositoryPhase string

ResticRepositoryPhase represents the lifecycle phase of a ResticRepository. +kubebuilder:validation:Enum=New;Ready;NotReady

const (
	ResticRepositoryPhaseNew      ResticRepositoryPhase = "New"
	ResticRepositoryPhaseReady    ResticRepositoryPhase = "Ready"
	ResticRepositoryPhaseNotReady ResticRepositoryPhase = "NotReady"
)

type ResticRepositorySpec

type ResticRepositorySpec struct {
	// VolumeNamespace is the namespace this restic repository contains
	// pod volume backups for.
	VolumeNamespace string `json:"volumeNamespace"`

	// BackupStorageLocation is the name of the BackupStorageLocation
	// that should contain this repository.
	BackupStorageLocation string `json:"backupStorageLocation"`

	// ResticIdentifier is the full restic-compatible string for identifying
	// this repository.
	ResticIdentifier string `json:"resticIdentifier"`

	// MaintenanceFrequency is how often maintenance should be run.
	MaintenanceFrequency metav1.Duration `json:"maintenanceFrequency"`
}

ResticRepositorySpec is the specification for a ResticRepository.

func (*ResticRepositorySpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResticRepositorySpec.

func (*ResticRepositorySpec) DeepCopyInto

func (in *ResticRepositorySpec) DeepCopyInto(out *ResticRepositorySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ResticRepositoryStatus

type ResticRepositoryStatus struct {
	// Phase is the current state of the ResticRepository.
	// +optional
	Phase ResticRepositoryPhase `json:"phase,omitempty"`

	// Message is a message about the current status of the ResticRepository.
	// +optional
	Message string `json:"message,omitempty"`

	// LastMaintenanceTime is the last time maintenance was run.
	// +optional
	// +nullable
	LastMaintenanceTime *metav1.Time `json:"lastMaintenanceTime,omitempty"`
}

ResticRepositoryStatus is the current status of a ResticRepository.

func (*ResticRepositoryStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResticRepositoryStatus.

func (*ResticRepositoryStatus) DeepCopyInto

func (in *ResticRepositoryStatus) DeepCopyInto(out *ResticRepositoryStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Restore

type Restore struct {
	metav1.TypeMeta `json:",inline"`

	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// +optional
	Spec RestoreSpec `json:"spec,omitempty"`

	// +optional
	Status RestoreStatus `json:"status,omitempty"`
}

Restore is a Velero resource that represents the application of resources from a Velero backup to a target Kubernetes cluster.

func (*Restore) DeepCopy

func (in *Restore) DeepCopy() *Restore

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Restore.

func (*Restore) DeepCopyInto

func (in *Restore) DeepCopyInto(out *Restore)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Restore) DeepCopyObject

func (in *Restore) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type RestoreHooks added in v1.5.0

type RestoreHooks struct {
	Resources []RestoreResourceHookSpec `json:"resources,omitempty"`
}

RestoreHooks contains custom behaviors that should be executed during or post restore.

func (*RestoreHooks) DeepCopy added in v1.5.0

func (in *RestoreHooks) DeepCopy() *RestoreHooks

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestoreHooks.

func (*RestoreHooks) DeepCopyInto added in v1.5.0

func (in *RestoreHooks) DeepCopyInto(out *RestoreHooks)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RestoreList

type RestoreList struct {
	metav1.TypeMeta `json:",inline"`

	// +optional
	metav1.ListMeta `json:"metadata"`

	Items []Restore `json:"items"`
}

RestoreList is a list of Restores.

func (*RestoreList) DeepCopy

func (in *RestoreList) DeepCopy() *RestoreList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestoreList.

func (*RestoreList) DeepCopyInto

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

func (in *RestoreList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type RestorePhase

type RestorePhase string

RestorePhase is a string representation of the lifecycle phase of a Velero restore +kubebuilder:validation:Enum=New;FailedValidation;InProgress;Completed;PartiallyFailed;Failed

type RestoreProgress added in v1.6.0

type RestoreProgress struct {
	// TotalItems is the total number of items to be restored. This number may change
	// throughout the execution of the restore due to plugins that return additional related
	// items to restore
	// +optional
	TotalItems int `json:"totalItems,omitempty"`
	// ItemsRestored is the number of items that have actually been restored so far
	// +optional
	ItemsRestored int `json:"itemsRestored,omitempty"`
}

RestoreProgress stores information about the restore's execution progress

func (*RestoreProgress) DeepCopy added in v1.6.0

func (in *RestoreProgress) DeepCopy() *RestoreProgress

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestoreProgress.

func (*RestoreProgress) DeepCopyInto added in v1.6.0

func (in *RestoreProgress) DeepCopyInto(out *RestoreProgress)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RestoreResourceHook added in v1.5.0

type RestoreResourceHook struct {
	// Exec defines an exec restore hook.
	Exec *ExecRestoreHook `json:"exec,omitempty"`

	// Init defines an init restore hook.
	Init *InitRestoreHook `json:"init,omitempty"`
}

RestoreResourceHook defines a restore hook for a resource.

func (*RestoreResourceHook) DeepCopy added in v1.5.0

func (in *RestoreResourceHook) DeepCopy() *RestoreResourceHook

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestoreResourceHook.

func (*RestoreResourceHook) DeepCopyInto added in v1.5.0

func (in *RestoreResourceHook) DeepCopyInto(out *RestoreResourceHook)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RestoreResourceHookSpec added in v1.5.0

type RestoreResourceHookSpec 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"`

	// PostHooks is a list of RestoreResourceHooks to execute during and after restoring a resource.
	// +optional
	PostHooks []RestoreResourceHook `json:"postHooks,omitempty"`
}

RestoreResourceHookSpec defines one or more RestoreResrouceHooks that should be executed based on the rules defined for namespaces, resources, and label selector.

func (*RestoreResourceHookSpec) DeepCopy added in v1.5.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestoreResourceHookSpec.

func (*RestoreResourceHookSpec) DeepCopyInto added in v1.5.0

func (in *RestoreResourceHookSpec) DeepCopyInto(out *RestoreResourceHookSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RestoreSpec

type RestoreSpec struct {
	// BackupName is the unique name of the Velero backup to restore
	// from.
	BackupName string `json:"backupName"`

	// ScheduleName is the unique name of the Velero schedule to restore
	// from. If specified, and BackupName is empty, Velero will restore
	// from the most recent successful backup created from this schedule.
	// +optional
	ScheduleName string `json:"scheduleName,omitempty"`

	// 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 restore.
	// +optional
	// +nullable
	ExcludedNamespaces []string `json:"excludedNamespaces,omitempty"`

	// IncludedResources is a slice of resource names to include
	// in the restore. If empty, all resources in the backup are included.
	// +optional
	// +nullable
	IncludedResources []string `json:"includedResources,omitempty"`

	// ExcludedResources is a slice of resource names that are not
	// included in the restore.
	// +optional
	// +nullable
	ExcludedResources []string `json:"excludedResources,omitempty"`

	// NamespaceMapping is a map of source namespace names
	// to target namespace names to restore into. Any source
	// namespaces not included in the map will be restored into
	// namespaces of the same name.
	// +optional
	NamespaceMapping map[string]string `json:"namespaceMapping,omitempty"`

	// LabelSelector is a metav1.LabelSelector to filter with
	// when restoring individual objects from the backup. If empty
	// or nil, all objects are included. Optional.
	// +optional
	// +nullable
	LabelSelector *metav1.LabelSelector `json:"labelSelector,omitempty"`

	// OrLabelSelectors is list of metav1.LabelSelector to filter with
	// when restoring individual objects from the backup. If multiple provided
	// they will be joined by the OR operator. LabelSelector as well as
	// OrLabelSelectors cannot co-exist in restore request, only one of them
	// can be used
	// +optional
	// +nullable
	OrLabelSelectors []*metav1.LabelSelector `json:"orLabelSelectors,omitempty"`

	// RestorePVs specifies whether to restore all included
	// PVs from snapshot (via the cloudprovider).
	// +optional
	// +nullable
	RestorePVs *bool `json:"restorePVs,omitempty"`

	// RestoreStatus specifies which resources we should restore the status
	// field. If nil, no objects are included. Optional.
	// +optional
	// +nullable
	RestoreStatus *RestoreStatusSpec `json:"restoreStatus,omitempty"`

	// PreserveNodePorts specifies whether to restore old nodePorts from backup.
	// +optional
	// +nullable
	PreserveNodePorts *bool `json:"preserveNodePorts,omitempty"`

	// IncludeClusterResources specifies whether cluster-scoped resources
	// should be included for consideration in the restore. If null, defaults
	// to true.
	// +optional
	// +nullable
	IncludeClusterResources *bool `json:"includeClusterResources,omitempty"`

	// Hooks represent custom behaviors that should be executed during or post restore.
	// +optional
	Hooks RestoreHooks `json:"hooks,omitempty"`

	// ExistingResourcePolicy specifies the restore behaviour for the kubernetes resource to be restored
	// +optional
	// +nullable
	ExistingResourcePolicy PolicyType `json:"existingResourcePolicy,omitempty"`
}

RestoreSpec defines the specification for a Velero restore.

func (*RestoreSpec) DeepCopy

func (in *RestoreSpec) DeepCopy() *RestoreSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestoreSpec.

func (*RestoreSpec) DeepCopyInto

func (in *RestoreSpec) DeepCopyInto(out *RestoreSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RestoreStatus

type RestoreStatus struct {
	// Phase is the current state of the Restore
	// +optional
	Phase RestorePhase `json:"phase,omitempty"`

	// ValidationErrors is a slice of all validation errors (if
	// applicable)
	// +optional
	// +nullable
	ValidationErrors []string `json:"validationErrors,omitempty"`

	// Warnings is a count of all warning messages that were generated during
	// execution of the restore. The actual warnings are stored in object storage.
	// +optional
	Warnings int `json:"warnings,omitempty"`

	// Errors is a count of all error messages that were generated during
	// execution of the restore. The actual errors are stored in object storage.
	// +optional
	Errors int `json:"errors,omitempty"`

	// FailureReason is an error that caused the entire restore to fail.
	// +optional
	FailureReason string `json:"failureReason,omitempty"`

	// StartTimestamp records the time the restore operation was started.
	// The server's time is used for StartTimestamps
	// +optional
	// +nullable
	StartTimestamp *metav1.Time `json:"startTimestamp,omitempty"`

	// CompletionTimestamp records the time the restore operation was completed.
	// Completion time is recorded even on failed restore.
	// The server's time is used for StartTimestamps
	// +optional
	// +nullable
	CompletionTimestamp *metav1.Time `json:"completionTimestamp,omitempty"`

	// Progress contains information about the restore's execution progress. Note
	// that this information is best-effort only -- if Velero fails to update it
	// during a restore for any reason, it may be inaccurate/stale.
	// +optional
	// +nullable
	Progress *RestoreProgress `json:"progress,omitempty"`
}

RestoreStatus captures the current status of a Velero restore

func (*RestoreStatus) DeepCopy

func (in *RestoreStatus) DeepCopy() *RestoreStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestoreStatus.

func (*RestoreStatus) DeepCopyInto

func (in *RestoreStatus) DeepCopyInto(out *RestoreStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RestoreStatusSpec added in v1.9.0

type RestoreStatusSpec struct {
	// IncludedResources specifies the resources to which will restore the status.
	// If empty, it applies to all resources.
	// +optional
	// +nullable
	IncludedResources []string `json:"includedResources,omitempty"`

	// ExcludedResources specifies the resources to which will not restore the status.
	// +optional
	// +nullable
	ExcludedResources []string `json:"excludedResources,omitempty"`
}

func (*RestoreStatusSpec) DeepCopy added in v1.9.0

func (in *RestoreStatusSpec) DeepCopy() *RestoreStatusSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestoreStatusSpec.

func (*RestoreStatusSpec) DeepCopyInto added in v1.9.0

func (in *RestoreStatusSpec) DeepCopyInto(out *RestoreStatusSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Schedule

type Schedule struct {
	metav1.TypeMeta `json:",inline"`

	// +optional
	metav1.ObjectMeta `json:"metadata"`

	// +optional
	Spec ScheduleSpec `json:"spec,omitempty"`

	// +optional
	Status ScheduleStatus `json:"status,omitempty"`
}

Schedule is a Velero resource that represents a pre-scheduled or periodic Backup that should be run.

func (*Schedule) DeepCopy

func (in *Schedule) DeepCopy() *Schedule

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Schedule.

func (*Schedule) DeepCopyInto

func (in *Schedule) DeepCopyInto(out *Schedule)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Schedule) DeepCopyObject

func (in *Schedule) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Schedule) TimestampedName added in v1.5.0

func (s *Schedule) TimestampedName(timestamp time.Time) string

TimestampedName returns the default backup name format based on the schedule

type ScheduleList

type ScheduleList struct {
	metav1.TypeMeta `json:",inline"`

	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []Schedule `json:"items"`
}

ScheduleList is a list of Schedules.

func (*ScheduleList) DeepCopy

func (in *ScheduleList) DeepCopy() *ScheduleList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScheduleList.

func (*ScheduleList) DeepCopyInto

func (in *ScheduleList) DeepCopyInto(out *ScheduleList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ScheduleList) DeepCopyObject

func (in *ScheduleList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SchedulePhase

type SchedulePhase string

SchedulePhase is a string representation of the lifecycle phase of a Velero schedule +kubebuilder:validation:Enum=New;Enabled;FailedValidation

const (
	// SchedulePhaseNew means the schedule has been created but not
	// yet processed by the ScheduleController
	SchedulePhaseNew SchedulePhase = "New"

	// SchedulePhaseEnabled means the schedule has been validated and
	// will now be triggering backups according to the schedule spec.
	SchedulePhaseEnabled SchedulePhase = "Enabled"

	// SchedulePhaseFailedValidation means the schedule has failed
	// the controller's validations and therefore will not trigger backups.
	SchedulePhaseFailedValidation SchedulePhase = "FailedValidation"
)

type ScheduleSpec

type ScheduleSpec struct {
	// Template is the definition of the Backup to be run
	// on the provided schedule
	Template BackupSpec `json:"template"`

	// Schedule is a Cron expression defining when to run
	// the Backup.
	Schedule string `json:"schedule"`

	// UseOwnerReferencesBackup specifies whether to use
	// OwnerReferences on backups created by this Schedule.
	// +optional
	// +nullable
	UseOwnerReferencesInBackup *bool `json:"useOwnerReferencesInBackup,omitempty"`
}

ScheduleSpec defines the specification for a Velero schedule

func (*ScheduleSpec) DeepCopy

func (in *ScheduleSpec) DeepCopy() *ScheduleSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScheduleSpec.

func (*ScheduleSpec) DeepCopyInto

func (in *ScheduleSpec) DeepCopyInto(out *ScheduleSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ScheduleStatus

type ScheduleStatus struct {
	// Phase is the current phase of the Schedule
	// +optional
	Phase SchedulePhase `json:"phase,omitempty"`

	// LastBackup is the last time a Backup was run for this
	// Schedule schedule
	// +optional
	// +nullable
	LastBackup *metav1.Time `json:"lastBackup,omitempty"`

	// ValidationErrors is a slice of all validation errors (if
	// applicable)
	// +optional
	ValidationErrors []string `json:"validationErrors,omitempty"`
}

ScheduleStatus captures the current state of a Velero schedule

func (*ScheduleStatus) DeepCopy

func (in *ScheduleStatus) DeepCopy() *ScheduleStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScheduleStatus.

func (*ScheduleStatus) DeepCopyInto

func (in *ScheduleStatus) DeepCopyInto(out *ScheduleStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServerStatusRequest

type ServerStatusRequest struct {
	metav1.TypeMeta `json:",inline"`

	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// +optional
	Spec ServerStatusRequestSpec `json:"spec,omitempty"`

	// +optional
	Status ServerStatusRequestStatus `json:"status,omitempty"`
}

ServerStatusRequest is a request to access current status information about the Velero server.

func (*ServerStatusRequest) DeepCopy

func (in *ServerStatusRequest) DeepCopy() *ServerStatusRequest

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerStatusRequest.

func (*ServerStatusRequest) DeepCopyInto

func (in *ServerStatusRequest) DeepCopyInto(out *ServerStatusRequest)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServerStatusRequest) DeepCopyObject

func (in *ServerStatusRequest) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ServerStatusRequestList

type ServerStatusRequestList struct {
	metav1.TypeMeta `json:",inline"`

	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []ServerStatusRequest `json:"items"`
}

ServerStatusRequestList is a list of ServerStatusRequests.

func (*ServerStatusRequestList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerStatusRequestList.

func (*ServerStatusRequestList) DeepCopyInto

func (in *ServerStatusRequestList) DeepCopyInto(out *ServerStatusRequestList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServerStatusRequestList) DeepCopyObject

func (in *ServerStatusRequestList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ServerStatusRequestPhase

type ServerStatusRequestPhase string

ServerStatusRequestPhase represents the lifecycle phase of a ServerStatusRequest. +kubebuilder:validation:Enum=New;Processed

const (
	// ServerStatusRequestPhaseNew means the ServerStatusRequest has not been processed yet.
	ServerStatusRequestPhaseNew ServerStatusRequestPhase = "New"
	// ServerStatusRequestPhaseProcessed means the ServerStatusRequest has been processed.
	ServerStatusRequestPhaseProcessed ServerStatusRequestPhase = "Processed"
)

type ServerStatusRequestSpec

type ServerStatusRequestSpec struct {
}

ServerStatusRequestSpec is the specification for a ServerStatusRequest.

func (*ServerStatusRequestSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerStatusRequestSpec.

func (*ServerStatusRequestSpec) DeepCopyInto

func (in *ServerStatusRequestSpec) DeepCopyInto(out *ServerStatusRequestSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServerStatusRequestStatus

type ServerStatusRequestStatus struct {
	// Phase is the current lifecycle phase of the ServerStatusRequest.
	// +optional
	Phase ServerStatusRequestPhase `json:"phase,omitempty"`

	// ProcessedTimestamp is when the ServerStatusRequest was processed
	// by the ServerStatusRequestController.
	// +optional
	// +nullable
	ProcessedTimestamp *metav1.Time `json:"processedTimestamp,omitempty"`

	// ServerVersion is the Velero server version.
	// +optional
	ServerVersion string `json:"serverVersion,omitempty"`

	// Plugins list information about the plugins running on the Velero server
	// +optional
	// +nullable
	Plugins []PluginInfo `json:"plugins,omitempty"`
}

ServerStatusRequestStatus is the current status of a ServerStatusRequest.

func (*ServerStatusRequestStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerStatusRequestStatus.

func (*ServerStatusRequestStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StorageType

type StorageType struct {
	ObjectStorage *ObjectStorageLocation `json:"objectStorage"`
}

StorageType represents the type of storage that a backup location uses. ObjectStorage must be non-nil, since it is currently the only supported StorageType.

func (*StorageType) DeepCopy

func (in *StorageType) DeepCopy() *StorageType

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageType.

func (*StorageType) DeepCopyInto

func (in *StorageType) DeepCopyInto(out *StorageType)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VolumeSnapshotLocation

type VolumeSnapshotLocation struct {
	metav1.TypeMeta `json:",inline"`

	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// +optional
	Spec VolumeSnapshotLocationSpec `json:"spec,omitempty"`

	// +optional
	Status VolumeSnapshotLocationStatus `json:"status,omitempty"`
}

VolumeSnapshotLocation is a location where Velero stores volume snapshots.

func (*VolumeSnapshotLocation) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSnapshotLocation.

func (*VolumeSnapshotLocation) DeepCopyInto

func (in *VolumeSnapshotLocation) DeepCopyInto(out *VolumeSnapshotLocation)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VolumeSnapshotLocation) DeepCopyObject

func (in *VolumeSnapshotLocation) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type VolumeSnapshotLocationList

type VolumeSnapshotLocationList struct {
	metav1.TypeMeta `json:",inline"`

	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []VolumeSnapshotLocation `json:"items"`
}

VolumeSnapshotLocationList is a list of VolumeSnapshotLocations.

func (*VolumeSnapshotLocationList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSnapshotLocationList.

func (*VolumeSnapshotLocationList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VolumeSnapshotLocationList) DeepCopyObject

func (in *VolumeSnapshotLocationList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type VolumeSnapshotLocationPhase

type VolumeSnapshotLocationPhase string

VolumeSnapshotLocationPhase is the lifecycle phase of a Velero VolumeSnapshotLocation. +kubebuilder:validation:Enum=Available;Unavailable

const (
	// VolumeSnapshotLocationPhaseAvailable means the location is available to read and write from.
	VolumeSnapshotLocationPhaseAvailable VolumeSnapshotLocationPhase = "Available"

	// VolumeSnapshotLocationPhaseUnavailable means the location is unavailable to read and write from.
	VolumeSnapshotLocationPhaseUnavailable VolumeSnapshotLocationPhase = "Unavailable"
)

type VolumeSnapshotLocationSpec

type VolumeSnapshotLocationSpec struct {
	// Provider is the provider of the volume storage.
	Provider string `json:"provider"`

	// Config is for provider-specific configuration fields.
	// +optional
	Config map[string]string `json:"config,omitempty"`
}

VolumeSnapshotLocationSpec defines the specification for a Velero VolumeSnapshotLocation.

func (*VolumeSnapshotLocationSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSnapshotLocationSpec.

func (*VolumeSnapshotLocationSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VolumeSnapshotLocationStatus

type VolumeSnapshotLocationStatus struct {
	// +optional
	Phase VolumeSnapshotLocationPhase `json:"phase,omitempty"`
}

VolumeSnapshotLocationStatus describes the current status of a Velero VolumeSnapshotLocation.

func (*VolumeSnapshotLocationStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSnapshotLocationStatus.

func (*VolumeSnapshotLocationStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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