From 854ece099a20a248a5422e4c0ba1f73ecc138d22 Mon Sep 17 00:00:00 2001 From: Jake Yip Date: Tue, 28 Sep 2021 18:01:33 +1000 Subject: [PATCH] ovn: Do not expect the separate plugin package OVN is part of Neutron since Ussuri [1]. As such, there is no longer a separate python-networking-ovn package that needs to be installed. This change removes the logic to install the separate plugin package, and also updates the config file path to use the file provided by the current neutron package. In addition, this change ensures the ovn-metadata-agent package is installed in Ubuntu/Debian as well. [1] https://docs.openstack.org/releasenotes/neutron/ussuri.html#relnotes-16-0-0-stable-ussuri Closes-Bug: #1945973 Change-Id: I8e32e0ca02b841058dc71f00a72b825e6441c1d3 --- .../ovn_metadata_agent_config/ini_setting.rb | 2 +- lib/puppet/type/ovn_metadata_agent_config.rb | 2 +- manifests/agents/ovn_metadata.pp | 2 +- manifests/params.pp | 6 +-- manifests/plugins/ml2/ovn.pp | 7 ---- .../notes/bug-1945973-65195b6dae2009e5.yaml | 10 +++++ .../neutron_agents_ovn_metadata_spec.rb | 41 ++++++++----------- .../ini_setting_spec.rb | 4 +- 8 files changed, 35 insertions(+), 39 deletions(-) create mode 100644 releasenotes/notes/bug-1945973-65195b6dae2009e5.yaml diff --git a/lib/puppet/provider/ovn_metadata_agent_config/ini_setting.rb b/lib/puppet/provider/ovn_metadata_agent_config/ini_setting.rb index 7c74ebc47..ab5b034a0 100644 --- a/lib/puppet/provider/ovn_metadata_agent_config/ini_setting.rb +++ b/lib/puppet/provider/ovn_metadata_agent_config/ini_setting.rb @@ -4,7 +4,7 @@ Puppet::Type.type(:ovn_metadata_agent_config).provide( ) do def self.file_path - '/etc/neutron/plugins/networking-ovn/networking-ovn-metadata-agent.ini' + '/etc/neutron/neutron_ovn_metadata_agent.ini' end # added for backwards compatibility with older versions of inifile diff --git a/lib/puppet/type/ovn_metadata_agent_config.rb b/lib/puppet/type/ovn_metadata_agent_config.rb index 40b7e8811..23076f5b5 100644 --- a/lib/puppet/type/ovn_metadata_agent_config.rb +++ b/lib/puppet/type/ovn_metadata_agent_config.rb @@ -3,7 +3,7 @@ Puppet::Type.newtype(:ovn_metadata_agent_config) do ensurable newparam(:name, :namevar => true) do - desc 'Section/setting name to manage from networking-ovn-metadata-agent.ini' + desc 'Section/setting name to manage from neutron_ovn_metadata_agent.ini' newvalues(/\S+\/\S+/) end diff --git a/manifests/agents/ovn_metadata.pp b/manifests/agents/ovn_metadata.pp index 7c08ff21b..06591d00f 100644 --- a/manifests/agents/ovn_metadata.pp +++ b/manifests/agents/ovn_metadata.pp @@ -1,6 +1,6 @@ # == Class: neutron::agents::ovn_metadata # -# Setup and configure networking-ovn metadata agent. +# Setup and configure neutron ovn metadata agent. # # === Parameters # diff --git a/manifests/params.pp b/manifests/params.pp index 3286512c9..ced441b5a 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -11,7 +11,6 @@ class neutron::params { $linuxbridge_agent_service = 'neutron-linuxbridge-agent' $opencontrail_plugin_package = 'neutron-plugin-contrail' $opencontrail_config_file = '/etc/neutron/plugins/opencontrail/ContrailPlugin.ini' - $ovn_plugin_package = 'python3-networking-ovn' $vpp_plugin_package = 'python3-networking-vpp' $vpp_agent_service = 'neutron-vpp-agent' $nuage_config_file = '/etc/neutron/plugins/nuage/plugin.ini' @@ -20,7 +19,7 @@ class neutron::params { $metering_agent_service = 'neutron-metering-agent' $l3_agent_service = 'neutron-l3-agent' $metadata_agent_service = 'neutron-metadata-agent' - $ovn_metadata_agent_service = 'networking-ovn-metadata-agent' + $ovn_metadata_agent_service = 'neutron-ovn-metadata-agent' $bgp_dragent_service = 'neutron-bgp-dragent' $bagpipe_bgp_package = 'openstack-bagpipe-bgp' $bgpvpn_bagpipe_package = 'python3-networking-bagpipe' @@ -63,7 +62,7 @@ class neutron::params { $vpnaas_agent_package = 'openstack-neutron-vpnaas' $l2gw_agent_package = 'openstack-neutron-l2gw-agent' $l2gw_package = 'python3-networking-l2gw' - $ovn_metadata_agent_package = 'python3-networking-ovn-metadata-agent' + $ovn_metadata_agent_package = 'openstack-neutron-ovn-metadata-agent' $dynamic_routing_package = false $bgp_dragent_package = 'openstack-neutron-bgp-dragent' $openswan_package = 'libreswan' @@ -119,6 +118,7 @@ class neutron::params { $l3_agent_package = 'neutron-l3-agent' $l2gw_agent_package = 'neutron-l2gateway-agent' $l2gw_package = 'python3-networking-l2gw' + $ovn_metadata_agent_package = 'neutron-ovn-metadata-agent' $neutron_wsgi_script_path = '/usr/lib/cgi-bin/neutron' $neutron_wsgi_script_source = '/usr/bin/neutron-api' $mlnx_agent_service = 'neutron-plugin-mlnx-agent' diff --git a/manifests/plugins/ml2/ovn.pp b/manifests/plugins/ml2/ovn.pp index c1e2d40a8..f76ccb3a5 100644 --- a/manifests/plugins/ml2/ovn.pp +++ b/manifests/plugins/ml2/ovn.pp @@ -161,13 +161,6 @@ class neutron::plugins::ml2::ovn( fail( 'Invalid value for neutron_sync_mode parameter' ) } - ensure_resource('package', $::neutron::params::ovn_plugin_package, - { - ensure => $package_ensure, - tag => ['openstack', 'neutron-plugin-ml2-package'] - } - ) - neutron_plugin_ml2 { 'ovn/ovn_nb_connection' : value => $ovn_nb_connection; 'ovn/ovn_sb_connection' : value => $ovn_sb_connection; diff --git a/releasenotes/notes/bug-1945973-65195b6dae2009e5.yaml b/releasenotes/notes/bug-1945973-65195b6dae2009e5.yaml new file mode 100644 index 000000000..4a1792b90 --- /dev/null +++ b/releasenotes/notes/bug-1945973-65195b6dae2009e5.yaml @@ -0,0 +1,10 @@ +--- +fixes: + - | + The independent ovn plugin package(``pythonN-networking-ovn``) is no longer + required. The package is no longer available since Ussuri, and all codes + are now included in the base neutron package. + + - | + The ``neutron-ovn-metadata-agent`` package is now installed in Ubuntu and + Debian. diff --git a/spec/classes/neutron_agents_ovn_metadata_spec.rb b/spec/classes/neutron_agents_ovn_metadata_spec.rb index a488d1ac2..eb75b20ad 100644 --- a/spec/classes/neutron_agents_ovn_metadata_spec.rb +++ b/spec/classes/neutron_agents_ovn_metadata_spec.rb @@ -69,6 +69,19 @@ describe 'neutron::agents::ovn_metadata' do should contain_ovn_metadata_agent_config('ovn/ovn_sb_connection').with(:value => '') should contain_ovn_metadata_agent_config('ovn/ovn_remote_probe_interval').with(:value => '') end + + it 'installs ovn metadata agent package' do + should contain_package('ovn-metadata').with( + :ensure => params[:package_ensure], + :name => platform_params[:ovn_metadata_agent_package], + :tag => ['openstack', 'neutron-package'], + ) + end + + it 'configures subscription to ovn-metadata package' do + should contain_service('ovn-metadata').that_subscribes_to('Anchor[neutron::service::begin]') + should contain_service('ovn-metadata').that_notifies('Anchor[neutron::service::end]') + end end shared_examples 'ovn metadata agent with auth_ca_cert set' do @@ -90,21 +103,6 @@ describe 'neutron::agents::ovn_metadata' do end end - shared_examples 'neutron::agents::ovn::metadata on RedHat based' do - it 'installs ovn metadata agent package' do - should contain_package('ovn-metadata').with( - :ensure => params[:package_ensure], - :name => platform_params[:ovn_metadata_agent_package], - :tag => ['openstack', 'neutron-package'], - ) - end - - it 'configures subscription to ovn-metadata package' do - should contain_service('ovn-metadata').that_subscribes_to('Anchor[neutron::service::begin]') - should contain_service('ovn-metadata').that_notifies('Anchor[neutron::service::end]') - end - end - on_supported_os({ :supported_os => OSDefaults.get_supported_os }).each do |os,facts| @@ -116,21 +114,16 @@ describe 'neutron::agents::ovn_metadata' do let (:platform_params) do case facts[:osfamily] when 'Debian' - { - :ovn_metadata_agent_service => 'networking-ovn-metadata-agent' - } + { :ovn_metadata_agent_package => 'neutron-ovn-metadata-agent', + :ovn_metadata_agent_service => 'neutron-ovn-metadata-agent' } when 'RedHat' - { :ovn_metadata_agent_package => 'python3-networking-ovn-metadata-agent', - :ovn_metadata_agent_service => 'networking-ovn-metadata-agent' } + { :ovn_metadata_agent_package => 'openstack-neutron-ovn-metadata-agent', + :ovn_metadata_agent_service => 'neutron-ovn-metadata-agent' } end end it_behaves_like 'ovn metadata agent' it_behaves_like 'ovn metadata agent with auth_ca_cert set' - - if facts[:osfamily] == 'RedHat' - it_behaves_like 'neutron::agents::ovn::metadata on RedHat based' - end end end end diff --git a/spec/unit/provider/ovn_metadata_agent_config/ini_setting_spec.rb b/spec/unit/provider/ovn_metadata_agent_config/ini_setting_spec.rb index 0149b9837..963d81911 100644 --- a/spec/unit/provider/ovn_metadata_agent_config/ini_setting_spec.rb +++ b/spec/unit/provider/ovn_metadata_agent_config/ini_setting_spec.rb @@ -37,7 +37,7 @@ describe provider_class do provider = provider_class.new(resource) expect(provider.section).to eq('DEFAULT') expect(provider.setting).to eq('foo') - expect(provider.file_path).to eq('/etc/neutron/plugins/networking-ovn/networking-ovn-metadata-agent.ini') + expect(provider.file_path).to eq('/etc/neutron/neutron_ovn_metadata_agent.ini') end it 'should allow setting to be set explicitly' do @@ -50,7 +50,7 @@ describe provider_class do provider = provider_class.new(resource) expect(provider.section).to eq('dude') expect(provider.setting).to eq('foo') - expect(provider.file_path).to eq('/etc/neutron/plugins/networking-ovn/networking-ovn-metadata-agent.ini') + expect(provider.file_path).to eq('/etc/neutron/neutron_ovn_metadata_agent.ini') end it 'should ensure absent when is specified as a value' do