# == Class: nova:scheduler::filter # # This class is aim to configure nova.scheduler filter # # === Parameters: # # [*scheduler_host_manager*] # (optional) The scheduler host manager class to use # Defaults to 'nova.scheduler.host_manager.HostManager' # # [*scheduler_max_attempts*] # (optional) Maximum number of attempts to schedule an instance # Defaults to '3' # # [*scheduler_host_subset_size*] # (optional) defines the subset size that a host is chosen from # Defaults to '1' # # [*cpu_allocation_ratio*] # (optional) Virtual CPU to Physical CPU allocation ratio # Defaults to '16.0' # # [*disk_allocation_ratio*] # (optional) Virtual disk to physical disk allocation ratio # Defaults to '1.0' # # [*max_io_ops_per_host*] # (optional) Ignore hosts that have too many builds/resizes/snaps/migrations # Defaults to '8' # # [*isolated_images*] # (optional) Images to run on isolated host # Defaults to false # # [*isolated_hosts*] # (optional) Host reserved for specific images # Defaults to false # # [*max_instances_per_host*] # (optional) Ignore hosts that have too many instances # Defaults to '50' # # [*ram_allocation_ratio:*] # (optional) Virtual ram to physical ram allocation ratio # Defaults to '1.5' # # [*scheduler_available_filters*] # (optional) Filter classes available to the scheduler # Defaults to 'nova.scheduler.filters.all_filters' # # [*scheduler_default_filters*] # (optional) An array of filters to be used by default # Defaults to false # # [*scheduler_weight_classes*] # (optional) Which weight class names to use for weighing hosts # Defaults to 'nova.scheduler.weights.all_weighers' # class nova::scheduler::filter ( $scheduler_host_manager = 'nova.scheduler.host_manager.HostManager', $scheduler_max_attempts = '3', $scheduler_host_subset_size = '1', $cpu_allocation_ratio = '16.0', $disk_allocation_ratio = '1.0', $max_io_ops_per_host = '8', $max_instances_per_host = '50', $ram_allocation_ratio = '1.5', $isolated_images = false, $isolated_hosts = false, $scheduler_available_filters = 'nova.scheduler.filters.all_filters', $scheduler_default_filters = false, $scheduler_weight_classes = 'nova.scheduler.weights.all_weighers', ) { nova_config { 'DEFAULT/scheduler_host_manager': value => $scheduler_host_manager; 'DEFAULT/scheduler_max_attempts': value => $scheduler_max_attempts; 'DEFAULT/scheduler_host_subset_size': value => $scheduler_host_subset_size; 'DEFAULT/cpu_allocation_ratio': value => $cpu_allocation_ratio; 'DEFAULT/disk_allocation_ratio': value => $disk_allocation_ratio; 'DEFAULT/max_io_ops_per_host': value => $max_io_ops_per_host; 'DEFAULT/max_instances_per_host': value => $max_instances_per_host; 'DEFAULT/ram_allocation_ratio': value => $ram_allocation_ratio; 'DEFAULT/scheduler_available_filters': value => $scheduler_available_filters; 'DEFAULT/scheduler_weight_classes': value => $scheduler_weight_classes } if ($scheduler_default_filters) { nova_config { 'DEFAULT/scheduler_default_filters': value => join($scheduler_default_filters,',') } } else { nova_config { 'DEFAULT/scheduler_default_filters': ensure => absent } } if ($isolated_images) { nova_config { 'DEFAULT/isolated_images': value => join($isolated_images,',') } } else { nova_config { 'DEFAULT/isolated_images': ensure => absent } } if ($isolated_hosts) { nova_config { 'DEFAULT/isolated_hosts': value => join($isolated_hosts,',') } } else { nova_config { 'DEFAULT/isolated_hosts': ensure => absent } } }