From 78a9bb783a1530732c5fcb9dd17409790afdaeec Mon Sep 17 00:00:00 2001 From: Daniel Alvarez Date: Thu, 21 Dec 2017 13:00:36 +0100 Subject: [PATCH] OVN: Add DVR configuration support This patch adds the ability to configure DVR in networking-ovn environments. Change-Id: I565a5b9918eaf9df1d315c653f76dc4136953ca9 Signed-off-by: Daniel Alvarez --- manifests/plugins/ml2/ovn.pp | 7 +++++++ spec/classes/neutron_plugins_ml2_ovn_spec.rb | 11 +++++++++++ 2 files changed, 18 insertions(+) diff --git a/manifests/plugins/ml2/ovn.pp b/manifests/plugins/ml2/ovn.pp index d07a73758..36568d9bf 100644 --- a/manifests/plugins/ml2/ovn.pp +++ b/manifests/plugins/ml2/ovn.pp @@ -47,6 +47,11 @@ # (optional) Whether to enable metadata service in OVN. # Type: boolean # Defaults to $::os_service_default +# +# [*dvr_enabled*] +# (optional) Whether to enable DVR. +# Type: boolean +# Defaults to $::os_service_default class neutron::plugins::ml2::ovn( $ovn_nb_connection = $::os_service_default, @@ -57,6 +62,7 @@ class neutron::plugins::ml2::ovn( $ovn_l3_mode = $::os_service_default, $vif_type = $::os_service_default, $ovn_metadata_enabled = $::os_service_default, + $dvr_enabled = $::os_service_default, ) { include ::neutron::deps @@ -89,5 +95,6 @@ class neutron::plugins::ml2::ovn( 'ovn/ovn_l3_mode' : value => $ovn_l3_mode; 'ovn/vif_type' : value => $vif_type; 'ovn/ovn_metadata_enabled' : value => $ovn_metadata_enabled; + 'ovn/enable_distributed_floating_ip' : value => $dvr_enabled; } } diff --git a/spec/classes/neutron_plugins_ml2_ovn_spec.rb b/spec/classes/neutron_plugins_ml2_ovn_spec.rb index 4d2671179..e8f9841e1 100644 --- a/spec/classes/neutron_plugins_ml2_ovn_spec.rb +++ b/spec/classes/neutron_plugins_ml2_ovn_spec.rb @@ -18,6 +18,7 @@ describe 'neutron::plugins::ml2::ovn' do :neutron_sync_mode => 'log', :ovn_l3_mode => true, :vif_type => 'ovs', + :dvr_enabled => false, } end @@ -44,6 +45,7 @@ describe 'neutron::plugins::ml2::ovn' do is_expected.to contain_neutron_plugin_ml2('ovn/neutron_sync_mode').with_value(params[:neutron_sync_mode]) is_expected.to contain_neutron_plugin_ml2('ovn/ovn_l3_mode').with_value(params[:ovn_l3_mode]) is_expected.to contain_neutron_plugin_ml2('ovn/vif_type').with_value(params[:vif_type]) + is_expected.to contain_neutron_plugin_ml2('ovn/enable_distributed_floating_ip').with_value(params[:dvr_enabled]) end end @@ -69,6 +71,15 @@ describe 'neutron::plugins::ml2::ovn' do params.delete(:vif_type) is_expected.to contain_neutron_plugin_ml2('ovn/vif_type').with_value('') end + + context 'with DVR' do + before :each do + params.merge!(:dvr_enabled => true) + end + it 'should enable DVR mode' do + is_expected.to contain_neutron_plugin_ml2('ovn/enable_distributed_floating_ip').with_value(params[:dvr_enabled]) + end + end end on_supported_os({