supervisor

package
v0.44.1 Latest Latest
Warning

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

Go to latest
Published: Apr 28, 2021 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BackupProvisioner added in v0.44.0

type BackupProvisioner interface {
	TriggerBackup(backupMeta *model.InstallationBackup, cluster *model.Cluster, installation *model.Installation) (*model.S3DataResidence, error)
	CheckBackupStatus(backupMeta *model.InstallationBackup, cluster *model.Cluster) (int64, error)
	CleanupBackupJob(backup *model.InstallationBackup, cluster *model.Cluster) error
}

BackupProvisioner provisions backup jobs on a cluster.

type BackupSupervisor added in v0.44.0

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

BackupSupervisor finds backup pending work and effects the required changes.

The degree of parallelism is controlled by a weighted semaphore, intended to be shared with other clients needing to coordinate background jobs.

func NewBackupSupervisor added in v0.44.0

func NewBackupSupervisor(
	store installationBackupStore,
	backupOperator BackupProvisioner,
	aws aws.AWS,
	instanceID string,
	logger log.FieldLogger) *BackupSupervisor

NewBackupSupervisor creates a new BackupSupervisor.

func (*BackupSupervisor) Do added in v0.44.0

func (s *BackupSupervisor) Do() error

Do looks for work to be done on any pending backups and attempts to schedule the required work.

func (*BackupSupervisor) Shutdown added in v0.44.0

func (s *BackupSupervisor) Shutdown()

Shutdown performs graceful shutdown tasks for the backup supervisor.

func (*BackupSupervisor) Supervise added in v0.44.0

func (s *BackupSupervisor) Supervise(backup *model.InstallationBackup)

Supervise schedules the required work on the given backup.

type ClusterInstallationSupervisor

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

ClusterInstallationSupervisor finds cluster installations pending work and effects the required changes.

The degree of parallelism is controlled by a weighted semaphore, intended to be shared with other clients needing to coordinate background jobs.

func NewClusterInstallationSupervisor

func NewClusterInstallationSupervisor(store clusterInstallationStore, clusterInstallationProvisioner clusterInstallationProvisioner, aws aws.AWS, instanceID string, logger log.FieldLogger) *ClusterInstallationSupervisor

NewClusterInstallationSupervisor creates a new ClusterInstallationSupervisor.

func (*ClusterInstallationSupervisor) Do

Do looks for work to be done on any pending cluster installations and attempts to schedule the required work.

func (*ClusterInstallationSupervisor) Shutdown added in v0.20.0

func (s *ClusterInstallationSupervisor) Shutdown()

Shutdown performs graceful shutdown tasks for the cluster installation supervisor.

func (*ClusterInstallationSupervisor) Supervise

func (s *ClusterInstallationSupervisor) Supervise(clusterInstallation *model.ClusterInstallation)

Supervise schedules the required work on the given cluster installation.

type ClusterSupervisor

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

ClusterSupervisor finds clusters pending work and effects the required changes.

The degree of parallelism is controlled by a weighted semaphore, intended to be shared with other clients needing to coordinate background jobs.

func NewClusterSupervisor

func NewClusterSupervisor(store clusterStore, clusterProvisioner clusterProvisioner, aws aws.AWS, instanceID string, logger log.FieldLogger) *ClusterSupervisor

NewClusterSupervisor creates a new ClusterSupervisor.

func (*ClusterSupervisor) Do

func (s *ClusterSupervisor) Do() error

Do looks for work to be done on any pending clusters and attempts to schedule the required work.

func (*ClusterSupervisor) Shutdown added in v0.20.0

func (s *ClusterSupervisor) Shutdown()

Shutdown performs graceful shutdown tasks for the cluster supervisor.

func (*ClusterSupervisor) Supervise

func (s *ClusterSupervisor) Supervise(cluster *model.Cluster)

Supervise schedules the required work on the given cluster.

type Doer

type Doer interface {
	Do() error
	Shutdown()
}

Doer describes an action to be done.

type GroupSupervisor added in v0.18.0

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

GroupSupervisor finds installations belonging to groups that need to have their configuration reconciled to match a new group configuration setting.

The degree of parallelism is controlled by a weighted semaphore, intended to be shared with other clients needing to coordinate background jobs.

func NewGroupSupervisor added in v0.18.0

func NewGroupSupervisor(store groupStore, instanceID string, logger log.FieldLogger) *GroupSupervisor

NewGroupSupervisor creates a new GroupSupervisor.

func (*GroupSupervisor) Do added in v0.18.0

func (s *GroupSupervisor) Do() error

Do looks for work to be done on any pending groups and attempts to schedule the required work.

func (*GroupSupervisor) Shutdown added in v0.20.0

func (s *GroupSupervisor) Shutdown()

Shutdown performs graceful shutdown tasks for the group supervisor.

func (*GroupSupervisor) Supervise added in v0.18.0

func (s *GroupSupervisor) Supervise(group *model.Group)

Supervise schedules the required work on the given group.

type InstallationSupervisor

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

InstallationSupervisor finds installations pending work and effects the required changes.

The degree of parallelism is controlled by a weighted semaphore, intended to be shared with other clients needing to coordinate background jobs.

func NewInstallationSupervisor

func NewInstallationSupervisor(
	store installationStore,
	installationProvisioner installationProvisioner,
	aws aws.AWS,
	instanceID string,
	keepDatabaseData,
	keepFilestoreData bool,
	scheduling InstallationSupervisorSchedulingOptions,
	resourceUtil *utils.ResourceUtil,
	logger log.FieldLogger,
	metrics *metrics.CloudMetrics,
	forceCRUpgrade bool) *InstallationSupervisor

NewInstallationSupervisor creates a new InstallationSupervisor.

func (*InstallationSupervisor) Do

func (s *InstallationSupervisor) Do() error

Do looks for work to be done on any pending installations and attempts to schedule the required work.

func (*InstallationSupervisor) Shutdown added in v0.20.0

func (s *InstallationSupervisor) Shutdown()

Shutdown performs graceful shutdown tasks for the installation supervisor.

func (*InstallationSupervisor) Supervise

func (s *InstallationSupervisor) Supervise(installation *model.Installation)

Supervise schedules the required work on the given installation.

type InstallationSupervisorSchedulingOptions added in v0.35.0

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

InstallationSupervisorSchedulingOptions are the various options that control how installation scheduling occurs.

func NewInstallationSupervisorSchedulingOptions added in v0.35.0

func NewInstallationSupervisorSchedulingOptions(balanceInstallations bool, clusterResourceThreshold, clusterResourceThresholdScaleValue int) InstallationSupervisorSchedulingOptions

NewInstallationSupervisorSchedulingOptions creates a new InstallationSupervisorSchedulingOptions.

type MultiDoer

type MultiDoer []Doer

MultiDoer is a slice of doers.

func (MultiDoer) Do

func (md MultiDoer) Do() error

Do executes each doer in turn, returning the first error.

func (MultiDoer) Shutdown added in v0.20.0

func (md MultiDoer) Shutdown()

Shutdown tells each doer to perform shutdown tasks.

type Scheduler

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

Scheduler schedules a doer for periodic, serial execution.

func NewScheduler

func NewScheduler(doer Doer, period time.Duration) *Scheduler

NewScheduler creates a new scheduler.

If the period is zero, the scheduler is never run, even if manually run. Otherwise, the period specifies how long to wait after its last successful execution.

func (*Scheduler) Close

func (s *Scheduler) Close() error

Close waits for any active doer to finish, terminates the main thread of the scheduler, and ensures the doer is no longer invoked.

func (*Scheduler) Do

func (s *Scheduler) Do() error

Do requests an execution of the scheduled doer.

The scheduler will never be run if the period is 0. If already running, the doer will be run again when done. Multiple calls to Notify while the doer is running will only trigger a single additional execution. Do never blocks.

Jump to

Keyboard shortcuts

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