controller

package
v1.9.2 Latest Latest
Warning

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

Go to latest
Published: Sep 15, 2022 License: Apache-2.0 Imports: 71 Imported by: 9

Documentation

Index

Constants

View Source
const (
	Backup                = "backup"
	BackupDeletion        = "backup-deletion"
	BackupStorageLocation = "backup-storage-location"
	BackupSync            = "backup-sync"
	DownloadRequest       = "download-request"
	GarbageCollection     = "gc"
	PodVolumeBackup       = "pod-volume-backup"
	PodVolumeRestore      = "pod-volume-restore"
	ResticRepo            = "restic-repo"
	Restore               = "restore"
	Schedule              = "schedule"
	ServerStatusRequest   = "server-status-request"
)

Variables

DisableableControllers is a list of controllers that can be disabled

Functions

func NewBackupDeletionReconciler added in v1.9.0

func NewBackupDeletionReconciler(
	logger logrus.FieldLogger,
	client client.Client,
	backupTracker BackupTracker,
	resticMgr restic.RepositoryManager,
	metrics *metrics.ServerMetrics,
	helper discovery.Helper,
	newPluginManager func(logrus.FieldLogger) clientmgmt.Manager,
	backupStoreGetter persistence.ObjectBackupStoreGetter,
) *backupDeletionReconciler

NewBackupDeletionReconciler creates a new backup deletion reconciler.

func NewScheduleReconciler added in v1.9.0

func NewScheduleReconciler(
	namespace string,
	logger logrus.FieldLogger,
	client client.Client,
	metrics *metrics.ServerMetrics,
) *scheduleReconciler

Types

type BackupExecuter added in v1.9.0

type BackupExecuter interface {
	RunBackup(*restic.Command, logrus.FieldLogger, func(velerov1api.PodVolumeOperationProgress)) (string, string, error)
	GetSnapshotID(*restic.Command) (string, error)
}

BackupExecuter runs backups.

type BackupStorageLocationReconciler added in v1.5.0

type BackupStorageLocationReconciler struct {
	Ctx                       context.Context
	Client                    client.Client
	Scheme                    *runtime.Scheme
	DefaultBackupLocationInfo storage.DefaultBackupLocationInfo
	// use variables to refer to these functions so they can be
	// replaced with fakes for testing.
	NewPluginManager  func(logrus.FieldLogger) clientmgmt.Manager
	BackupStoreGetter persistence.ObjectBackupStoreGetter

	Log logrus.FieldLogger
}

BackupStorageLocationReconciler reconciles a BackupStorageLocation object

func (*BackupStorageLocationReconciler) Reconcile added in v1.5.0

+kubebuilder:rbac:groups=velero.io,resources=backupstoragelocations,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=velero.io,resources=backupstoragelocations/status,verbs=get;update;patch

func (*BackupStorageLocationReconciler) SetupWithManager added in v1.5.0

func (r *BackupStorageLocationReconciler) SetupWithManager(mgr ctrl.Manager) error

type BackupTracker added in v0.8.0

type BackupTracker interface {
	// Add informs the tracker that a backup is in progress.
	Add(ns, name string)
	// Delete informs the tracker that a backup is no longer in progress.
	Delete(ns, name string)
	// Contains returns true if the tracker is tracking the backup.
	Contains(ns, name string) bool
}

BackupTracker keeps track of in-progress backups.

func NewBackupTracker added in v0.8.0

func NewBackupTracker() BackupTracker

NewBackupTracker returns a new BackupTracker.

type DownloadRequestReconciler added in v1.6.0

type DownloadRequestReconciler struct {
	Scheme *runtime.Scheme
	Client kbclient.Client
	Clock  clock.Clock
	// use variables to refer to these functions so they can be
	// replaced with fakes for testing.
	NewPluginManager  func(logrus.FieldLogger) clientmgmt.Manager
	BackupStoreGetter persistence.ObjectBackupStoreGetter

	Log logrus.FieldLogger
}

DownloadRequestReconciler reconciles a DownloadRequest object

func (*DownloadRequestReconciler) Reconcile added in v1.6.0

+kubebuilder:rbac:groups=velero.io,resources=downloadrequests,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=velero.io,resources=downloadrequests/status,verbs=get;update;patch

func (*DownloadRequestReconciler) SetupWithManager added in v1.6.0

func (r *DownloadRequestReconciler) SetupWithManager(mgr ctrl.Manager) error

type Interface

type Interface interface {
	// Run runs the component.
	Run(ctx context.Context, workers int) error
}

Interface represents a runnable component.

func NewBackupController

func NewBackupController(
	backupInformer velerov1informers.BackupInformer,
	client velerov1client.BackupsGetter,
	discoveryHelper discovery.Helper,
	backupper pkgbackup.Backupper,
	logger logrus.FieldLogger,
	backupLogLevel logrus.Level,
	newPluginManager func(logrus.FieldLogger) clientmgmt.Manager,
	backupTracker BackupTracker,
	kbClient kbclient.Client,
	defaultBackupLocation string,
	defaultVolumesToRestic bool,
	defaultBackupTTL time.Duration,
	defaultCSISnapshotTimeout time.Duration,
	volumeSnapshotLocationLister velerov1listers.VolumeSnapshotLocationLister,
	defaultSnapshotLocations map[string]string,
	metrics *metrics.ServerMetrics,
	formatFlag logging.Format,
	volumeSnapshotLister snapshotv1listers.VolumeSnapshotLister,
	volumeSnapshotClient *snapshotterClientSet.Clientset,
	volumeSnapshotContentLister snapshotv1listers.VolumeSnapshotContentLister,
	volumesnapshotClassLister snapshotv1listers.VolumeSnapshotClassLister,
	backupStoreGetter persistence.ObjectBackupStoreGetter,
) Interface

func NewBackupSyncController

func NewBackupSyncController(
	backupClient velerov1client.BackupsGetter,
	kbClient client.Client,
	podVolumeBackupClient velerov1client.PodVolumeBackupsGetter,
	backupLister velerov1listers.BackupLister,
	csiVSLister snapshotv1listers.VolumeSnapshotLister,
	syncPeriod time.Duration,
	namespace string,
	csiSnapshotClient *snapshotterClientSet.Clientset,
	kubeClient kubernetes.Interface,
	defaultBackupLocation string,
	newPluginManager func(logrus.FieldLogger) clientmgmt.Manager,
	backupStoreGetter persistence.ObjectBackupStoreGetter,
	logger logrus.FieldLogger,
) Interface

func NewGCController

func NewGCController(
	logger logrus.FieldLogger,
	backupInformer velerov1informers.BackupInformer,
	deleteBackupRequestLister velerov1listers.DeleteBackupRequestLister,
	deleteBackupRequestClient velerov1client.DeleteBackupRequestsGetter,
	kbClient client.Client,
	frequency time.Duration,
) Interface

NewGCController constructs a new gcController.

func NewRestoreController

func NewRestoreController(
	namespace string,
	restoreInformer velerov1informers.RestoreInformer,
	restoreClient velerov1client.RestoresGetter,
	podVolumeBackupClient velerov1client.PodVolumeBackupsGetter,
	restorer pkgrestore.Restorer,
	backupLister velerov1listers.BackupLister,
	kbClient client.Client,
	snapshotLocationLister velerov1listers.VolumeSnapshotLocationLister,
	logger logrus.FieldLogger,
	restoreLogLevel logrus.Level,
	newPluginManager func(logrus.FieldLogger) clientmgmt.Manager,
	backupStoreGetter persistence.ObjectBackupStoreGetter,
	metrics *metrics.ServerMetrics,
	logFormat logging.Format,
) Interface

type PluginLister added in v1.5.1

type PluginLister interface {
	// List returns all PluginIdentifiers for kind.
	List(kind framework.PluginKind) []framework.PluginIdentifier
}

type PodVolumeBackupReconciler added in v1.9.0

type PodVolumeBackupReconciler struct {
	Scheme         *runtime.Scheme
	Client         client.Client
	Clock          clock.Clock
	Metrics        *metrics.ServerMetrics
	CredsFileStore credentials.FileStore
	NodeName       string
	FileSystem     filesystem.Interface
	ResticExec     BackupExecuter
	Log            logrus.FieldLogger
}

PodVolumeBackupReconciler reconciles a PodVolumeBackup object

func (*PodVolumeBackupReconciler) Reconcile added in v1.9.0

+kubebuilder:rbac:groups=velero.io,resources=podvolumebackups,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=velero.io,resources=podvolumebackups/status,verbs=get;update;patch

func (*PodVolumeBackupReconciler) SetupWithManager added in v1.9.0

func (r *PodVolumeBackupReconciler) SetupWithManager(mgr ctrl.Manager) error

SetupWithManager registers the PVB controller.

type PodVolumeRestoreReconciler added in v1.9.0

type PodVolumeRestoreReconciler struct {
	client.Client
	// contains filtered or unexported fields
}

func NewPodVolumeRestoreReconciler added in v1.9.0

func NewPodVolumeRestoreReconciler(logger logrus.FieldLogger, client client.Client, credentialsFileStore credentials.FileStore) *PodVolumeRestoreReconciler

func (*PodVolumeRestoreReconciler) Reconcile added in v1.9.0

func (*PodVolumeRestoreReconciler) SetupWithManager added in v1.9.0

func (c *PodVolumeRestoreReconciler) SetupWithManager(mgr ctrl.Manager) error

type ResticRepoReconciler added in v1.9.0

type ResticRepoReconciler struct {
	client.Client
	// contains filtered or unexported fields
}

func NewResticRepoReconciler added in v1.9.0

func NewResticRepoReconciler(namespace string, logger logrus.FieldLogger, client client.Client,
	defaultMaintenanceFrequency time.Duration, repositoryManager restic.RepositoryManager) *ResticRepoReconciler

func (*ResticRepoReconciler) Reconcile added in v1.9.0

func (r *ResticRepoReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error)

func (*ResticRepoReconciler) SetupWithManager added in v1.9.0

func (r *ResticRepoReconciler) SetupWithManager(mgr ctrl.Manager) error

type ServerStatusRequestReconciler added in v1.5.1

type ServerStatusRequestReconciler struct {
	Scheme         *runtime.Scheme
	Client         client.Client
	Ctx            context.Context
	PluginRegistry PluginLister
	Clock          clock.Clock

	Log logrus.FieldLogger
}

ServerStatusRequestReconciler reconciles a ServerStatusRequest object

func (*ServerStatusRequestReconciler) Reconcile added in v1.5.1

+kubebuilder:rbac:groups=velero.io,resources=serverstatusrequests,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=velero.io,resources=serverstatusrequests/status,verbs=get;update;patch

func (*ServerStatusRequestReconciler) SetupWithManager added in v1.5.1

func (r *ServerStatusRequestReconciler) SetupWithManager(mgr ctrl.Manager) error

Jump to

Keyboard shortcuts

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