conf

package
v0.0.0-...-c951766 Latest Latest
Warning

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

Go to latest
Published: Oct 23, 2025 License: Apache-2.0 Imports: 1 Imported by: 0

Documentation

Index

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"`
}

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"`

	// 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 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.

Jump to

Keyboard shortcuts

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