Documentation
¶
Index ¶
- type CinderSchedulerConfig
- type CinderSchedulerPipelineConfig
- type CinderSchedulerStepConfig
- type Config
- type MachineSchedulerConfig
- type MachineSchedulerPipelineConfig
- type MachineSchedulerStepConfig
- type ManilaSchedulerConfig
- type ManilaSchedulerPipelineConfig
- type ManilaSchedulerStepConfig
- type NovaHypervisorType
- type NovaSchedulerConfig
- type NovaSchedulerLiquidAPIConfig
- type NovaSchedulerPipelineConfig
- type NovaSchedulerStepConfig
- type NovaSchedulerStepExtraConfig
- type NovaSchedulerStepHostCapabilities
- type NovaSchedulerStepHostSelector
- type NovaSchedulerStepScope
- type NovaSchedulerStepSpecScope
- type NovaSchedulerStepSpecSelector
- type SchedulerAPIConfig
- type SchedulerConfig
- type SyncConfig
- type SyncOpenStackConfig
- type SyncOpenStackIdentityConfig
- type SyncOpenStackManilaConfig
- type SyncOpenStackNovaConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CinderSchedulerConfig ¶
type CinderSchedulerConfig struct {
// Pipelines in this scheduler.
Pipelines []CinderSchedulerPipelineConfig `json:"pipelines"`
}
type CinderSchedulerPipelineConfig ¶
type CinderSchedulerPipelineConfig struct {
// Scheduler step plugins by their name.
Plugins []CinderSchedulerStepConfig `json:"plugins"`
// The name of this scheduler pipeline.
// The name is used to distinguish and route between multiple pipelines.
Name string `json:"name"`
}
type CinderSchedulerStepConfig ¶
type CinderSchedulerStepConfig = libconf.SchedulerStepConfig[struct{}]
type Config ¶
type Config struct {
SchedulerConfig `json:"scheduler"`
// Lib modules configs.
libconf.MonitoringConfig `json:"monitoring"`
libconf.LoggingConfig `json:"logging"`
libconf.DBConfig `json:"db"`
libconf.MQTTConfig `json:"mqtt"`
// Required for e2e tests.
libconf.KeystoneConfig `json:"keystone"`
libconf.APIConfig `json:"api"`
SyncConfig `json:"sync"`
}
type MachineSchedulerConfig ¶
type MachineSchedulerConfig struct {
// Pipelines in this scheduler.
Pipelines []MachineSchedulerPipelineConfig `json:"pipelines"`
}
type MachineSchedulerPipelineConfig ¶
type MachineSchedulerPipelineConfig struct {
// Scheduler step plugins by their name.
Plugins []MachineSchedulerStepConfig `json:"plugins"`
// The name of this scheduler pipeline.
// The name is used to distinguish and route between multiple pipelines.
Name string `json:"name"`
}
type MachineSchedulerStepConfig ¶
type MachineSchedulerStepConfig = libconf.SchedulerStepConfig[struct{}]
type ManilaSchedulerConfig ¶
type ManilaSchedulerConfig struct {
// Pipelines in this scheduler.
Pipelines []ManilaSchedulerPipelineConfig `json:"pipelines"`
}
type ManilaSchedulerPipelineConfig ¶
type ManilaSchedulerPipelineConfig struct {
// Scheduler step plugins by their name.
Plugins []ManilaSchedulerStepConfig `json:"plugins"`
// The name of this scheduler pipeline.
// The name is used to distinguish and route between multiple pipelines.
Name string `json:"name"`
}
type ManilaSchedulerStepConfig ¶
type ManilaSchedulerStepConfig = libconf.SchedulerStepConfig[struct{}]
type NovaHypervisorType ¶
type NovaHypervisorType = string
const ( NovaHypervisorTypeQEMU NovaHypervisorType = "QEMU" NovaHypervisorTypeCH NovaHypervisorType = "CH" // Cloud hypervisor NovaHypervisorTypeVMware NovaHypervisorType = "VMware vCenter Server" NovaHypervisorTypeIronic NovaHypervisorType = "ironic" )
type NovaSchedulerConfig ¶
type NovaSchedulerConfig struct {
// Pipelines in this scheduler.
Pipelines []NovaSchedulerPipelineConfig `json:"pipelines"`
// Configuration for the Liquid API.
LiquidAPI NovaSchedulerLiquidAPIConfig `json:"liquidAPI"`
}
type NovaSchedulerLiquidAPIConfig ¶
type NovaSchedulerLiquidAPIConfig struct {
// Hypervisors that should be handled by the api.
Hypervisors []NovaHypervisorType `json:"hypervisors"`
}
type NovaSchedulerPipelineConfig ¶
type NovaSchedulerPipelineConfig struct {
// Scheduler step plugins by their name.
Plugins []NovaSchedulerStepConfig `json:"plugins"`
// Dependencies needed by all the Nova scheduler steps.
libconf.DependencyConfig `json:"dependencies,omitempty"`
// The name of this scheduler pipeline.
// The name is used to distinguish and route between multiple pipelines.
Name string `json:"name"`
// If all available hosts should be selected in the request,
// regardless of what nova sends us in the request.
// By default, this is false (use the hosts nova gives us).
PreselectAllHosts bool `json:"preselectAllHosts"`
}
type NovaSchedulerStepConfig ¶
type NovaSchedulerStepConfig = libconf.SchedulerStepConfig[NovaSchedulerStepExtraConfig]
type NovaSchedulerStepExtraConfig ¶
type NovaSchedulerStepExtraConfig struct {
// The scope of the step, i.e. which hosts it should be applied to.
Scope NovaSchedulerStepScope `json:"scope,omitempty"`
}
type NovaSchedulerStepHostCapabilities ¶
type NovaSchedulerStepHostCapabilities struct {
// If given, the scheduler step will only be applied to hosts
// that have ONE of the given traits.
AnyOfTraitInfixes []string `json:"anyOfTraitInfixes,omitempty"`
// If given, the scheduler step will only be applied to hosts
// that have ONE of the given hypervisor types.
AnyOfHypervisorTypeInfixes []string `json:"anyOfHypervisorTypeInfixes,omitempty"`
// If given, the scheduler step will only be applied to hosts
// that have ALL of the given traits.
AllOfTraitInfixes []string `json:"allOfTraitInfixes,omitempty"`
// If the selection should be inverted, i.e. the step should be applied to hosts
// that do NOT match the aforementioned criteria.
InvertSelection bool `json:"invertSelection,omitempty"`
}
func (NovaSchedulerStepHostCapabilities) IsUndefined ¶
func (s NovaSchedulerStepHostCapabilities) IsUndefined() bool
type NovaSchedulerStepHostSelector ¶
type NovaSchedulerStepHostSelector struct {
// One of: "trait", "hypervisorType"
Subject string `json:"subject"`
// Selector type, currently only "infix" is supported.
Type string `json:"type,omitempty"`
// Value of the selector (typed to the given type).
Value any `json:"value,omitempty"`
// How the selector should be applied:
// Let A be the previous set of hosts, and B the scoped hosts.
// - "union" means that the scoped hosts are added to the previous set of hosts.
// - "difference" means that the scoped hosts are removed from the previous set of hosts.
// - "intersection" means that the scoped hosts are the only ones that remain in the previous set of hosts.
Operation string `json:"operation,omitempty"`
}
type NovaSchedulerStepScope ¶
type NovaSchedulerStepScope struct {
// Selectors applied to the compute hosts.
HostSelectors []NovaSchedulerStepHostSelector `json:"hostSelectors,omitempty"`
// Selectors applied to the given nova spec.
SpecSelectors []NovaSchedulerStepSpecSelector `json:"specSelectors,omitempty"`
}
Scope that defines which hosts a scheduler step should be applied to. In addition, it also defines the traits for which the step should be applied.
type NovaSchedulerStepSpecScope ¶
type NovaSchedulerStepSpecScope struct {
// If given, the scheduler step will only be applied to specs
// that contain ALL of the following infixes.
AllOfFlavorNameInfixes []string `json:"allOfFlavorNameInfixes,omitempty"`
}
func (NovaSchedulerStepSpecScope) IsUndefined ¶
func (s NovaSchedulerStepSpecScope) IsUndefined() bool
type NovaSchedulerStepSpecSelector ¶
type NovaSchedulerStepSpecSelector struct {
// One of: "flavor", "vmware"
Subject string `json:"subject"`
// Selector type: bool, infix.
Type string `json:"type,omitempty"`
// Value of the selector (typed to the given type).
Value any `json:"value,omitempty"`
// What to do if the selector is matched:
// - "skip" means that the step is skipped.
// - "continue" means that the step is applied.
Action string `json:"action,omitempty"`
}
type SchedulerAPIConfig ¶
type SchedulerAPIConfig struct {
// If request bodies should be logged out.
// This feature is intended for debugging purposes only.
LogRequestBodies bool `json:"logRequestBodies"`
}
Configuration for the scheduler API.
type SchedulerConfig ¶
type SchedulerConfig struct {
Nova NovaSchedulerConfig `json:"nova"`
Manila ManilaSchedulerConfig `json:"manila"`
Cinder CinderSchedulerConfig `json:"cinder"`
API SchedulerAPIConfig `json:"api"`
}
Configuration for the scheduler module.
type SyncConfig ¶
type SyncConfig struct {
OpenStack SyncOpenStackConfig `json:"openstack"`
}
Configuration for the sync module.
type SyncOpenStackConfig ¶
type SyncOpenStackConfig struct {
// Configuration for the nova service.
Nova SyncOpenStackNovaConfig `json:"nova"`
// Configuration for the identity service.
Identity SyncOpenStackIdentityConfig `json:"identity"`
// Configuration for the manila service.
Manila SyncOpenStackManilaConfig `json:"manila"`
}
Configuration for the sync/openstack module.
type SyncOpenStackIdentityConfig ¶
type SyncOpenStackIdentityConfig struct {
// Availability of the service, such as "public", "internal", or "admin".
Availability string `json:"availability"`
}
Configuration for the identity service.
type SyncOpenStackManilaConfig ¶
type SyncOpenStackManilaConfig struct {
// Availability of the service, such as "public", "internal", or "admin".
Availability string `json:"availability"`
}
Configuration for the manila service.
type SyncOpenStackNovaConfig ¶
type SyncOpenStackNovaConfig struct {
// Availability of the service, such as "public", "internal", or "admin".
Availability string `json:"availability"`
}
Configuration for the nova service.
Click to show internal directories.
Click to hide internal directories.