Add support for the resource_provider_default_hypervisor parameter

Related-Bug: #1926693
Depends-on: https://review.opendev.org/763563
Change-Id: I35c0a76cade37ccbaf7920b30ac162fe0f49e173
This commit is contained in:
Takashi Kajinami 2021-06-15 09:49:31 +09:00
parent ea79d50ef5
commit 38d85c0e78
5 changed files with 90 additions and 57 deletions

View File

@ -193,6 +193,11 @@
# (optional) List of <bridge>:<hypervisor>
# Defaults to empty list
#
# [*resource_provider_default_hypervisor*]
# (optional) The default hypervisor name used to locate the parent of
# the resource provider.
# Defaults to $::os_service_default
#
# [*explicitly_egress_direct*]
# (optional) When set to True, the accepted egress unicast traffic will not
# use action NORMAL. The accepted egress packets will be taken care of in the
@ -200,43 +205,44 @@
# Defaults to $::os_service_default
#
class neutron::agents::ml2::ovs (
$package_ensure = 'present',
$enabled = true,
$manage_service = true,
$extensions = $::os_service_default,
$bridge_uplinks = [],
$bridge_mappings = [],
$ovsdb_timeout = $::os_service_default,
$of_connect_timeout = $::os_service_default,
$of_request_timeout = $::os_service_default,
$of_inactivity_probe = $::os_service_default,
$integration_bridge = 'br-int',
$tunnel_types = [],
$local_ip = false,
$tunnel_bridge = 'br-tun',
$vxlan_udp_port = 4789,
$polling_interval = $::os_service_default,
$l2_population = $::os_service_default,
$arp_responder = $::os_service_default,
$firewall_driver = 'iptables_hybrid',
$enable_distributed_routing = $::os_service_default,
$drop_flows_on_start = false,
$manage_vswitch = true,
$int_peer_patch_port = $::os_service_default,
$tun_peer_patch_port = $::os_service_default,
$datapath_type = $::os_service_default,
$vhostuser_socket_dir = $::os_service_default,
$purge_config = false,
$enable_dpdk = false,
$enable_security_group = $::os_service_default,
$permitted_ethertypes = $::os_service_default,
$minimize_polling = $::os_service_default,
$tunnel_csum = $::os_service_default,
$bridge_mac_table_size = $::os_service_default,
$igmp_snooping_enable = $::os_service_default,
$resource_provider_bandwidths = [],
$resource_provider_hypervisors = [],
$explicitly_egress_direct = $::os_service_default,
$package_ensure = 'present',
$enabled = true,
$manage_service = true,
$extensions = $::os_service_default,
$bridge_uplinks = [],
$bridge_mappings = [],
$ovsdb_timeout = $::os_service_default,
$of_connect_timeout = $::os_service_default,
$of_request_timeout = $::os_service_default,
$of_inactivity_probe = $::os_service_default,
$integration_bridge = 'br-int',
$tunnel_types = [],
$local_ip = false,
$tunnel_bridge = 'br-tun',
$vxlan_udp_port = 4789,
$polling_interval = $::os_service_default,
$l2_population = $::os_service_default,
$arp_responder = $::os_service_default,
$firewall_driver = 'iptables_hybrid',
$enable_distributed_routing = $::os_service_default,
$drop_flows_on_start = false,
$manage_vswitch = true,
$int_peer_patch_port = $::os_service_default,
$tun_peer_patch_port = $::os_service_default,
$datapath_type = $::os_service_default,
$vhostuser_socket_dir = $::os_service_default,
$purge_config = false,
$enable_dpdk = false,
$enable_security_group = $::os_service_default,
$permitted_ethertypes = $::os_service_default,
$minimize_polling = $::os_service_default,
$tunnel_csum = $::os_service_default,
$bridge_mac_table_size = $::os_service_default,
$igmp_snooping_enable = $::os_service_default,
$resource_provider_bandwidths = [],
$resource_provider_hypervisors = [],
$resource_provider_default_hypervisor = $::os_service_default,
$explicitly_egress_direct = $::os_service_default,
) {
include neutron::deps
@ -332,8 +338,9 @@ class neutron::agents::ml2::ovs (
}
neutron_agent_ovs {
'ovs/resource_provider_bandwidths': value => $resource_provider_bandwidths_real;
'ovs/resource_provider_hypervisors': value => $resource_provider_hypervisors_real;
'ovs/resource_provider_bandwidths': value => $resource_provider_bandwidths_real;
'ovs/resource_provider_hypervisors': value => $resource_provider_hypervisors_real;
'ovs/resource_provider_default_hypervisor': value => $resource_provider_default_hypervisor;
}
neutron_agent_ovs {

View File

@ -77,18 +77,24 @@
# (optional) List of <bridge>:<hypervisor>
# Defaults to empty list
#
# [*resource_provider_default_hypervisor*]
# (optional) The default hypervisor name used to locate the parent of
# the resource provider.
# Defaults to $::os_service_default
#
class neutron::agents::ml2::sriov (
$package_ensure = 'present',
$enabled = true,
$manage_service = true,
$physical_device_mappings = $::os_service_default,
$polling_interval = 2,
$exclude_devices = $::os_service_default,
$extensions = $::os_service_default,
$purge_config = false,
$number_of_vfs = $::os_service_default,
$resource_provider_bandwidths = [],
$resource_provider_hypervisors = [],
$package_ensure = 'present',
$enabled = true,
$manage_service = true,
$physical_device_mappings = $::os_service_default,
$polling_interval = 2,
$exclude_devices = $::os_service_default,
$extensions = $::os_service_default,
$purge_config = false,
$number_of_vfs = $::os_service_default,
$resource_provider_bandwidths = [],
$resource_provider_hypervisors = [],
$resource_provider_default_hypervisor = $::os_service_default,
) {
include neutron::deps
@ -146,8 +152,9 @@ class neutron::agents::ml2::sriov (
}
neutron_sriov_agent_config {
'sriov_nic/resource_provider_bandwidths': value => $resource_provider_bandwidths_real;
'sriov_nic/resource_provider_hypervisors': value => $resource_provider_hypervisors_real;
'sriov_nic/resource_provider_bandwidths': value => $resource_provider_bandwidths_real;
'sriov_nic/resource_provider_hypervisors': value => $resource_provider_hypervisors_real;
'sriov_nic/resource_provider_default_hypervisor': value => $resource_provider_default_hypervisor;
}
}

View File

@ -0,0 +1,7 @@
---
features:
- |
Now the ``neutron::agents::ml2::ovs`` class and
the ``neutron::agents::ml2::sriov`` class supports
the resource_provider_default_hypervisor parameter to set the corresponding
parameter in ovs-agent and sriov-agent.

View File

@ -70,6 +70,8 @@ describe 'neutron::agents::ml2::ovs' do
with_value('<SERVICE DEFAULT>')
should contain_neutron_agent_ovs('ovs/resource_provider_hypervisors').\
with_value('<SERVICE DEFAULT>')
should contain_neutron_agent_ovs('ovs/resource_provider_default_hypervisor').\
with_value('<SERVICE DEFAULT>')
should contain_neutron_agent_ovs('agent/explicitly_egress_direct').with_value(['<SERVICE DEFAULT>'])
end
@ -328,8 +330,9 @@ describe 'neutron::agents::ml2::ovs' do
context 'when parameters for resource providers are set' do
before :each do
params.merge!(
:resource_provider_bandwidths => ['provider-a', 'provider-b'],
:resource_provider_hypervisors => ['provider-a:compute-a', 'provider-b:compute-b'],
:resource_provider_bandwidths => ['provider-a', 'provider-b'],
:resource_provider_hypervisors => ['provider-a:compute-a', 'provider-b:compute-b'],
:resource_provider_default_hypervisor => 'compute-c',
)
end
@ -338,6 +341,8 @@ describe 'neutron::agents::ml2::ovs' do
with_value('provider-a,provider-b')
should contain_neutron_agent_ovs('ovs/resource_provider_hypervisors').\
with_value('provider-a:compute-a,provider-b:compute-b')
should contain_neutron_agent_ovs('ovs/resource_provider_default_hypervisor').\
with_value('compute-c')
end
end

View File

@ -66,9 +66,13 @@ describe 'neutron::agents::ml2::sriov' do
should contain_service('neutron-sriov-nic-agent-service').that_notifies('Anchor[neutron::service::end]')
end
it 'does not configure resource_provider_bandwidths by default' do
it 'does not configure resource provider parameters by default' do
should contain_neutron_sriov_agent_config('sriov_nic/resource_provider_bandwidths').\
with_value('<SERVICE DEFAULT>')
should contain_neutron_sriov_agent_config('sriov_nic/resource_provider_hypervisors').\
with_value('<SERVICE DEFAULT>')
should contain_neutron_sriov_agent_config('sriov_nic/resource_provider_default_hypervisor').\
with_value('<SERVICE DEFAULT>')
end
context 'when number_of_vfs is empty' do
@ -138,8 +142,9 @@ describe 'neutron::agents::ml2::sriov' do
context 'when parameters for resource providers are set' do
before :each do
params.merge!(
:resource_provider_bandwidths => ['provider-a', 'provider-b'],
:resource_provider_hypervisors => ['provider-a:compute-a', 'provider-b:compute-b'],
:resource_provider_bandwidths => ['provider-a', 'provider-b'],
:resource_provider_hypervisors => ['provider-a:compute-a', 'provider-b:compute-b'],
:resource_provider_default_hypervisor => 'compute-c'
)
end
@ -148,6 +153,8 @@ describe 'neutron::agents::ml2::sriov' do
with_value('provider-a,provider-b')
should contain_neutron_sriov_agent_config('sriov_nic/resource_provider_hypervisors').\
with_value('provider-a:compute-a,provider-b:compute-b')
should contain_neutron_sriov_agent_config('sriov_nic/resource_provider_default_hypervisor').\
with_value('compute-c')
end
end
end