Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // This error is returned from the step at any time when the step should be skipped. ErrStepSkipped = errors.New("step skipped") )
View Source
var SupportedSteps = []Step{ &kvm.AvoidHighStealPctStep{}, }
Configuration of steps supported by the descheduler. The steps actually used by the scheduler are defined through the configuration file.
Functions ¶
This section is empty.
Types ¶
type Cleanup ¶
type Cleanup struct {
// Client for the kubernetes API.
client.Client
// Kubernetes scheme to use for the deschedulings.
Scheme *runtime.Scheme
}
Removes old deschedulings.
type CleanupOnStartup ¶
type CleanupOnStartup struct{ *Cleanup }
type CycleDetector ¶
type CycleDetector interface {
// Filter descheduling decisions to avoid cycles.
Filter(ctx context.Context, decisions []plugins.Decision) ([]plugins.Decision, error)
}
func NewCycleDetector ¶
func NewCycleDetector(novaAPI NovaAPI, config conf.DeschedulerConfig) CycleDetector
type Executor ¶
type Executor struct {
// Client for the kubernetes API.
client.Client
// Kubernetes scheme to use for the deschedulings.
Scheme *runtime.Scheme
// Nova API to execute the descheduling operations.
NovaAPI NovaAPI
// Configuration for the descheduler.
Conf conf.Config
// Monitor for tracking the descheduler execution.
Monitor Monitor
}
type Monitor ¶
type Monitor struct {
// contains filtered or unexported fields
}
func NewPipelineMonitor ¶
func NewPipelineMonitor(registry *monitoring.Registry) Monitor
type NovaAPI ¶
type NovaAPI interface {
// Initialize the Nova API with the Keystone authentication.
Init(ctx context.Context)
// Get a server by ID.
Get(ctx context.Context, id string) (server, error)
// Live migrate a server to a new host (doesnt wait for it to complete).
LiveMigrate(ctx context.Context, id string) error
// Get migrations for a server by ID.
GetServerMigrations(ctx context.Context, id string) ([]migration, error)
}
func NewNovaAPI ¶
func NewNovaAPI(keystoneAPI keystone.KeystoneAPI, conf conf.NovaDeschedulerConfig) NovaAPI
type Pipeline ¶
type Pipeline struct {
// Client for the kubernetes API.
client.Client
// Kubernetes scheme to use for the deschedulings.
Scheme *runtime.Scheme
// Configuration for the descheduler.
Config conf.DeschedulerConfig
// Nova API to use for the descheduler.
NovaAPI NovaAPI
// Cycle detector to avoid cycles in descheduling.
CycleDetector CycleDetector
// Monitor to use for tracking the pipeline.
Monitor Monitor
// contains filtered or unexported fields
}
func (*Pipeline) CreateDeschedulingsPeriodically ¶
type Step ¶
type Step interface {
// Get the VMs on their current hosts that should be considered for descheduling.
Run() ([]plugins.Decision, error)
// Get the name of this step, used for identification in config, logs, metrics, etc.
GetName() string
// Configure the step with a database and options.
Init(db db.DB, opts conf.RawOpts) error
}
type StepMonitor ¶
type StepMonitor struct {
// contains filtered or unexported fields
}
func (StepMonitor) GetName ¶
func (m StepMonitor) GetName() string
Get the name of the step being monitored.
Source Files
¶
Click to show internal directories.
Click to hide internal directories.