diff --git a/manifests/agents/ml2/mlnx.pp b/manifests/agents/ml2/mlnx.pp index c76d71945..83402d6a3 100644 --- a/manifests/agents/ml2/mlnx.pp +++ b/manifests/agents/ml2/mlnx.pp @@ -94,20 +94,28 @@ class neutron::agents::ml2::mlnx ( $mappings_array = pick(join(any2array($multi_interface_driver_mappings), ','), $::os_service_default); neutron_dhcp_agent_config { - 'DEFAULT/dhcp_broadcast_reply' : value => $dhcp_broadcast_reply; - 'DEFAULT/interface_driver' : value => $interface_driver; 'DEFAULT/multi_interface_driver_mappings' : value => $mappings_array; 'DEFAULT/ipoib_physical_interface' : value => $ipoib_physical_interface; 'DEFAULT/enable_multi_interface_driver_cache_maintenance' : value => $enable_multi_interface_driver_cache_maintenance; } neutron_l3_agent_config { - 'DEFAULT/interface_driver' : value => $interface_driver; 'DEFAULT/multi_interface_driver_mappings' : value => $mappings_array; 'DEFAULT/ipoib_physical_interface' : value => $ipoib_physical_interface; 'DEFAULT/enable_multi_interface_driver_cache_maintenance' : value => $enable_multi_interface_driver_cache_maintenance; } + # NOTE(tkajinam): These are required to allow workaround for bug 1987460 + ensure_resource('neutron_dhcp_agent_config', 'DEFAULT/interface_driver', { + 'value' => $interface_driver + }) + ensure_resource('neutron_l3_agent_config', 'DEFAULT/interface_driver', { + 'value' => $interface_driver + }) + ensure_resource('neutron_dhcp_agent_config', 'DEFAULT/dhcp_broadcast_reply', { + 'value' => $dhcp_broadcast_reply + }) + if $manage_package { ensure_packages($mlnx_agent_package, { ensure => $package_ensure, diff --git a/releasenotes/notes/bug-1987460-c5bfc6d98ccd3375.yaml b/releasenotes/notes/bug-1987460-c5bfc6d98ccd3375.yaml new file mode 100644 index 000000000..9d245d5c5 --- /dev/null +++ b/releasenotes/notes/bug-1987460-c5bfc6d98ccd3375.yaml @@ -0,0 +1,14 @@ +--- +fixes: + - | + `Bug #1987460 `_: + Previously the ``neutron::agents::ml2::mlnx`` class causes duplicate + resources when used with the ``neutron::agents::dhcp`` class or + the ``neutron::agents::l3`` class. Now it is possible to workaround + the error by implementing the following mitigation. + + - Include the ``neutron::agents::ml2::mlnx`` class AFTER + the ``neutron::agents::dhcp`` class or the ``neutron::agents::l3`` + + - Set the ``interface_driver`` parameter and the ``dhcp_broadcast_reply`` + parameter consistently.