Documentation

Index

Constants

View Source
const BackupVersion = 1

BackupVersion is the current backup version for Velero.

Variables

This section is empty.

Functions

func NewClusterRoleBindingListerMap

func NewClusterRoleBindingListerMap(clientset kubernetes.Interface) map[string]ClusterRoleBindingLister

NewClusterRoleBindingListerMap creates a map of RBAC version strings to their associated ClusterRoleBindingLister structs. Necessary so that callers to the ClusterRoleBindingLister interfaces don't need the kubernetes.Interface.

func NewDeleteBackupRequest

func NewDeleteBackupRequest(name string, uid string) *v1.DeleteBackupRequest

NewDeleteBackupRequest creates a DeleteBackupRequest for the backup identified by name and uid.

func NewDeleteBackupRequestListOptions

func NewDeleteBackupRequestListOptions(name, uid string) metav1.ListOptions

NewDeleteBackupRequestListOptions creates a ListOptions with a label selector configured to find DeleteBackupRequests for the backup identified by name and uid.

Types

type Backupper

type Backupper interface {
	// Backup takes a backup using the specification in the api.Backup and writes backup and log data
	// to the given writers.
	Backup(logger logrus.FieldLogger, backup *Request, backupFile io.Writer, actions []velero.BackupItemAction, volumeSnapshotterGetter VolumeSnapshotterGetter) error
}

Backupper performs backups.

func NewKubernetesBackupper

func NewKubernetesBackupper(
	discoveryHelper discovery.Helper,
	dynamicFactory client.DynamicFactory,
	podCommandExecutor podexec.PodCommandExecutor,
	resticBackupperFactory restic.BackupperFactory,
	resticTimeout time.Duration,
) (Backupper, error)

NewKubernetesBackupper creates a new kubernetesBackupper.

type ClusterRoleBinding

type ClusterRoleBinding interface {
	// Name returns the name of a ClusterRoleBinding.
	Name() string
	// ServiceAccountSubjects returns the names of subjects that are service accounts in the given namespace.
	ServiceAccountSubjects(namespace string) []string
	// RoleRefName returns the name of a ClusterRoleBinding's RoleRef.
	RoleRefName() string
}

ClusterRoleBinding abstracts access to ClusterRoleBindings whether they're v1 or v1beta1.

type ClusterRoleBindingLister

type ClusterRoleBindingLister interface {
	// List returns a slice of ClusterRoleBindings which can represent either v1 or v1beta1 ClusterRoleBindings.
	List() ([]ClusterRoleBinding, error)
}

ClusterRoleBindingLister allows for listing ClusterRoleBindings in a version-independent way.

type ItemBackupper

type ItemBackupper interface {
	// contains filtered or unexported methods
}

type PVCAction

type PVCAction struct {
	// contains filtered or unexported fields
}

PVCAction inspects a PersistentVolumeClaim for the PersistentVolume that it references and backs it up

func NewPVCAction

func NewPVCAction(logger logrus.FieldLogger) *PVCAction

func (*PVCAction) AppliesTo

func (a *PVCAction) AppliesTo() (velero.ResourceSelector, error)

func (*PVCAction) Execute

Execute finds the PersistentVolume bound by the provided PersistentVolumeClaim, if any, and backs it up

type PodAction

type PodAction struct {
	// contains filtered or unexported fields
}

PodAction implements ItemAction.

func NewPodAction

func NewPodAction(logger logrus.FieldLogger) *PodAction

NewPodAction creates a new ItemAction for pods.

func (*PodAction) AppliesTo

func (a *PodAction) AppliesTo() (velero.ResourceSelector, error)

AppliesTo returns a ResourceSelector that applies only to pods.

func (*PodAction) Execute

Execute scans the pod's spec.volumes for persistentVolumeClaim volumes and returns a ResourceIdentifier list containing references to all of the persistentVolumeClaim volumes used by the pod. This ensures that when a pod is backed up, all referenced PVCs are backed up too.

type RemapCRDVersionAction

type RemapCRDVersionAction struct {
	// contains filtered or unexported fields
}

RemapCRDVersionAction inspects CustomResourceDefinition and decides if it is a v1 CRD that needs to be backed up as v1beta1.

func NewRemapCRDVersionAction

func NewRemapCRDVersionAction(logger logrus.FieldLogger) *RemapCRDVersionAction

NewRemapCRDVersionAction instantiates a new RemapCRDVersionAction plugin.

func (*RemapCRDVersionAction) AppliesTo

AppliesTo selects the resources the plugin should run against. In this case, CustomResourceDefinitions.

func (*RemapCRDVersionAction) Execute

Execute executes logic necessary to check a CustomResourceDefinition and inspect it for characteristics that necessitate saving it as v1beta1 instead of v1.

type Request

type Request struct {
	*velerov1api.Backup

	StorageLocation           *velerov1api.BackupStorageLocation
	SnapshotLocations         []*velerov1api.VolumeSnapshotLocation
	NamespaceIncludesExcludes *collections.IncludesExcludes
	ResourceIncludesExcludes  *collections.IncludesExcludes
	ResourceHooks             []resourceHook
	ResolvedActions           []resolvedAction

	VolumeSnapshots  []*volume.Snapshot
	PodVolumeBackups []*velerov1api.PodVolumeBackup
	BackedUpItems    map[itemKey]struct{}
}

Request is a request for a backup, with all references to other objects materialized (e.g. backup/snapshot locations, includes/excludes, etc.)

func (*Request) BackupResourceList

func (r *Request) BackupResourceList() map[string][]string

BackupResourceList returns the list of backed up resources grouped by the API Version and Kind

type ServiceAccountAction

type ServiceAccountAction struct {
	// contains filtered or unexported fields
}

ServiceAccountAction implements ItemAction.

func NewServiceAccountAction

func NewServiceAccountAction(logger logrus.FieldLogger, clusterRoleBindingListers map[string]ClusterRoleBindingLister, discoveryHelper velerodiscovery.Helper) (*ServiceAccountAction, error)

NewServiceAccountAction creates a new ItemAction for service accounts.

func (*ServiceAccountAction) AppliesTo

AppliesTo returns a ResourceSelector that applies only to service accounts.

func (*ServiceAccountAction) Execute

Execute checks for any ClusterRoleBindings that have this service account as a subject, and adds the ClusterRoleBinding and associated ClusterRole to the list of additional items to be backed up.

type VolumeSnapshotterGetter

type VolumeSnapshotterGetter interface {
	GetVolumeSnapshotter(name string) (velero.VolumeSnapshotter, error)
}

Directories

Path Synopsis
mocks