Puppet Class: nova::scheduler

Defined in:
manifests/scheduler.pp

Overview

Class: nova::scheduler

Install and manage nova scheduler

Parameters:

enabled

(Optional) Whether to run the scheduler service Defaults to true

manage_service

(Optional) Whether to start/stop the service Defaults to true

ensure_package

(Optional) The state of the scheduler package Defaults to ‘present’

workers

(Optional) The amount of scheduler workers. Defaults to $::os_workers

scheduler_driver

(Optional) Default driver to use for the scheduler Defaults to ‘filter_scheduler’

discover_hosts_in_cells_interval

(Optional) This value controls how often (in seconds) the scheduler should attempt to discover new hosts that have been added to cells. Defaults to $::os_service_default

query_placement_for_image_type_support

(Optional) This setting causes the scheduler to ask placement only for compute hosts that support the “disk_format“ of the image used in the request. Defaults to $::os_service_default

limit_tenants_to_placement_aggregate

(Optional) This setting allows to have tenant isolation with placement. It ensures hosts in tenant-isolated host aggregate and availability zones will only be available to specific set of tenants. Defaults to $::os_service_default

placement_aggregate_required_for_tenants

(Optional) This setting controls if a tenant with no aggregate affinity will be allowed to schedule to any availalbe node when “limit_tenants_to_placement_aggregate“ is set to True. If aggregates are used to limit some tenants but not all, then this should be False. If all tenants should be confined via aggregate, then this should be True. Defaults to $::os_service_default

max_placement_results

(Optional) This setting determines the maximum limit on results received from the placement service during a scheduling operation. Defaults to $::os_service_default

enable_isolated_aggregate_filtering

(Optional) This setting allows the scheduler to restrict hosts in aggregates based on matching required traits in the aggregate metadata and the instance flavor/image. Defaults to $::os_service_default

Parameters:

  • enabled (Any) (defaults to: true)
  • manage_service (Any) (defaults to: true)
  • ensure_package (Any) (defaults to: 'present')
  • workers (Any) (defaults to: $::os_workers)
  • scheduler_driver (Any) (defaults to: 'filter_scheduler')
  • discover_hosts_in_cells_interval (Any) (defaults to: $::os_service_default)
  • query_placement_for_image_type_support (Any) (defaults to: $::os_service_default)
  • limit_tenants_to_placement_aggregate (Any) (defaults to: $::os_service_default)
  • placement_aggregate_required_for_tenants (Any) (defaults to: $::os_service_default)
  • max_placement_results (Any) (defaults to: $::os_service_default)
  • enable_isolated_aggregate_filtering (Any) (defaults to: $::os_service_default)


64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'manifests/scheduler.pp', line 64

class nova::scheduler(
  $enabled                                  = true,
  $manage_service                           = true,
  $ensure_package                           = 'present',
  $workers                                  = $::os_workers,
  $scheduler_driver                         = 'filter_scheduler',
  $discover_hosts_in_cells_interval         = $::os_service_default,
  $query_placement_for_image_type_support   = $::os_service_default,
  $limit_tenants_to_placement_aggregate     = $::os_service_default,
  $placement_aggregate_required_for_tenants = $::os_service_default,
  $max_placement_results                    = $::os_service_default,
  $enable_isolated_aggregate_filtering      = $::os_service_default,
) {

  include nova::deps
  include nova::db
  include nova::params
  include nova::availability_zone

  nova::generic_service { 'scheduler':
    enabled        => $enabled,
    manage_service => $manage_service,
    package_name   => $::nova::params::scheduler_package_name,
    service_name   => $::nova::params::scheduler_service_name,
    ensure_package => $ensure_package,
  }

  nova_config {
    'scheduler/workers':                                  value => $workers;
    'scheduler/driver':                                   value => $scheduler_driver;
    'scheduler/discover_hosts_in_cells_interval':         value => $discover_hosts_in_cells_interval;
    'scheduler/query_placement_for_image_type_support':   value => $query_placement_for_image_type_support;
    'scheduler/limit_tenants_to_placement_aggregate':     value => $limit_tenants_to_placement_aggregate;
    'scheduler/placement_aggregate_required_for_tenants': value => $placement_aggregate_required_for_tenants;
    'scheduler/max_placement_results':                    value => $max_placement_results;
    'scheduler/enable_isolated_aggregate_filtering':      value => $enable_isolated_aggregate_filtering;
  }
}