Add "scheduler_use_baremetal_filters" option in nova conf for ironic
This attribute decides whether to use baremetal_scheduler_default_filters or not. Set the ironic default attributes for True case. Change-Id: I2c58707140a1e54fb8fdd7627d23aa23f1a236ea Closes-Bug: #1444860
This commit is contained in:
parent
ef40354293
commit
3b6b4a9de0
12
README.md
12
README.md
|
@ -281,6 +281,18 @@ Libvirt Configuration Attributes
|
|||
* `openstack["compute"]["libvirt"]["rbd"]["cinder"]["secret_uuid"]` - A shared secret between cinder and libvirt. It should be the same as the secret_uuid that is defined in block-storage.
|
||||
* `openstack["compute"]["libvirt"]["rng_dev_path"]` - A path to a device that will be used as source of entropy on the host. Permitted options are: /dev/random or /dev/hwrng (string value)
|
||||
|
||||
Bare Metal Configuration Attributes
|
||||
-----------------------------------
|
||||
|
||||
* `openstack['compute']['scheduler']['use_baremetal_filters']` Boolean that decides whether to use baremetal_scheduler_default_filters or not.
|
||||
If this attribute is set to true, the following attributes will be overwritten:
|
||||
`openstack['compute']['driver']`
|
||||
`openstack['compute']['manager']`
|
||||
`openstack['compute']['scheduler']['scheduler_host_manager']`
|
||||
`openstack['compute']['config']['ram_allocation_ratio']`
|
||||
`openstack['compute']['config']['reserved_host_memory_mb']`
|
||||
* `openstack['compute']['scheduler']['baremetal_default_filters']` A list of filters enabled for baremetal schedulers that support them.
|
||||
|
||||
Scheduler Configuration Attributes
|
||||
----------------------------------
|
||||
|
||||
|
|
|
@ -587,6 +587,28 @@ default['openstack']['compute']['vmware']['integration_bridge'] = 'br-int'
|
|||
default['openstack']['compute']['bare-metal']['admin_username'] = 'ironic'
|
||||
default['openstack']['compute']['bare-metal']['admin_tenant_name'] = 'service'
|
||||
|
||||
# Boolean to decide whether to use baremetal_scheduler_default_filters or not.
|
||||
default['openstack']['compute']['scheduler']['use_baremetal_filters'] = false
|
||||
|
||||
default['openstack']['compute']['scheduler']['baremetal_default_filters'] = %w(
|
||||
RetryFilter
|
||||
AvailabilityZoneFilter
|
||||
ComputeFilter
|
||||
ComputeCapabilitiesFilter
|
||||
ImagePropertiesFilter
|
||||
ExactRamFilter
|
||||
ExactDiskFilter
|
||||
ExactCoreFilter)
|
||||
|
||||
# For true case, this logic allows the following ironic-related attribtes to be overwritten automatically.
|
||||
if node['openstack']['compute']['scheduler']['use_baremetal_filters']
|
||||
default['openstack']['compute']['driver'] = 'nova.virt.ironic.IronicDriver'
|
||||
default['openstack']['compute']['manager'] = 'ironic.nova.compute.manager.ClusteredComputeManager'
|
||||
default['openstack']['compute']['scheduler']['scheduler_host_manager'] = 'nova.scheduler.ironic_host_manager.IronicHostManager'
|
||||
default['openstack']['compute']['config']['ram_allocation_ratio'] = 1.0
|
||||
default['openstack']['compute']['config']['reserved_host_memory_mb'] = 0
|
||||
end
|
||||
|
||||
# Lock the version of RPC messages and allow live upgrading of the services
|
||||
# without interruption caused by version mismatch.
|
||||
# The configuration options allow the specification of RPC version numbers if desired,
|
||||
|
|
|
@ -725,13 +725,36 @@ describe 'openstack-compute::nova-common' do
|
|||
end
|
||||
|
||||
it 'has scheduler options' do
|
||||
[/^scheduler_manager=nova.scheduler.manager.SchedulerManager$/,
|
||||
[/^scheduler_use_baremetal_filters=false$/,
|
||||
/^baremetal_scheduler_default_filters=RetryFilter,AvailabilityZoneFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ExactRamFilter,ExactDiskFilter,ExactCoreFilter$/,
|
||||
/^scheduler_manager=nova.scheduler.manager.SchedulerManager$/,
|
||||
/^scheduler_driver=nova.scheduler.filter_scheduler.FilterScheduler$/,
|
||||
/^scheduler_host_manager=nova.scheduler.host_manager.HostManager$/,
|
||||
/^scheduler_available_filters=nova.scheduler.filters.all_filters$/,
|
||||
/^scheduler_default_filters=RetryFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter$/
|
||||
].each do |line|
|
||||
expect(chef_run).to render_file(file.name).with_content(line)
|
||||
expect(chef_run).to render_config_file(file.name).with_section_content('DEFAULT', line)
|
||||
end
|
||||
end
|
||||
|
||||
it 'sets to use baremetal default attributes' do
|
||||
node.set['openstack']['compute']['scheduler']['use_baremetal_filters'] = true
|
||||
|
||||
expect(chef_run.node['openstack']['compute']['driver']).to eq('nova.virt.ironic.IronicDriver')
|
||||
expect(chef_run.node['openstack']['compute']['manager']).to eq('ironic.nova.compute.manager.ClusteredComputeManager')
|
||||
expect(chef_run.node['openstack']['compute']['scheduler']['scheduler_host_manager']).to eq('nova.scheduler.ironic_host_manager.IronicHostManager')
|
||||
expect(chef_run.node['openstack']['compute']['config']['ram_allocation_ratio']).to eq(1.0)
|
||||
expect(chef_run.node['openstack']['compute']['config']['reserved_host_memory_mb']).to eq(0)
|
||||
|
||||
[
|
||||
/^scheduler_use_baremetal_filters=true$/,
|
||||
/^compute_driver=nova.virt.ironic.IronicDriver$/,
|
||||
/^compute_manager=ironic.nova.compute.manager.ClusteredComputeManager$/,
|
||||
/^scheduler_host_manager=nova.scheduler.ironic_host_manager.IronicHostManager$/,
|
||||
/^ram_allocation_ratio=1.0$/,
|
||||
/^reserved_host_memory_mb=0$/
|
||||
].each do |line|
|
||||
expect(chef_run).to render_config_file(file.name).with_section_content('DEFAULT', line)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -38,6 +38,12 @@ rpc_backend=<%= node["openstack"]["compute"]["rpc_backend"] %>
|
|||
|
||||
|
||||
##### SCHEDULER #####
|
||||
# Flag to decide whether to use baremetal_scheduler_default_filters or not (boolean value).
|
||||
scheduler_use_baremetal_filters=<%= node["openstack"]["compute"]["scheduler"]["use_baremetal_filters"] %>
|
||||
|
||||
# Which filter class names to use for filtering baremetal hosts when not specified in the request.
|
||||
baremetal_scheduler_default_filters=<%= node["openstack"]["compute"]["scheduler"]["baremetal_default_filters"].join(",") %>
|
||||
|
||||
scheduler_manager=<%= node["openstack"]["compute"]["scheduler"]["scheduler_manager"] %>
|
||||
scheduler_driver=<%= node["openstack"]["compute"]["scheduler"]["scheduler_driver"] %>
|
||||
scheduler_available_filters=<%= node["openstack"]["compute"]["scheduler"]["available_filters"] %>
|
||||
|
|
Loading…
Reference in New Issue