From 8777b5031c611b7a4dd9cc9afbf0e65a0069ccf1 Mon Sep 17 00:00:00 2001 From: Flavio Fernandes Date: Thu, 5 Mar 2020 16:40:44 -0500 Subject: [PATCH] Add Octavia OVN Provider configuration (2 of 2) This patch enhances Octavia's OVN driver config, so it can connect to OVN_Northbound DB using TLS. Related-Bug: #1861886 Change-Id: Ic2602e7a219f3c3be7f085726ee9736975062306 --- manifests/api.pp | 12 +++++++++--- manifests/provider/ovn.pp | 5 ++++- .../notes/add-ovn-provider-71b506e3d81e92fe.yaml | 4 ++++ spec/classes/octavia_api_spec.rb | 3 --- spec/classes/octavia_ovn_provider_spec.rb | 16 ++++++++-------- 5 files changed, 25 insertions(+), 15 deletions(-) diff --git a/manifests/api.pp b/manifests/api.pp index 2a218e6d..25059f96 100644 --- a/manifests/api.pp +++ b/manifests/api.pp @@ -63,9 +63,11 @@ # (optional) Configure the loadbalancer provider drivers. # Defaults to $::os_service_default # +# DEPRECATED PARAMETERS +# # [*ovn_nb_connection*] # (optional) The connection string for the OVN_Northbound OVSDB. -# Defaults to $::os_service_default +# Defaults to undef # class octavia::api ( $enabled = true, @@ -82,7 +84,8 @@ class octavia::api ( $sync_db = false, $default_provider_driver = $::os_service_default, $provider_drivers = $::os_service_default, - $ovn_nb_connection = $::os_service_default, + # DEPRECATED PARAMETERS + $ovn_nb_connection = undef ) inherits octavia::params { include octavia::deps @@ -93,6 +96,10 @@ class octavia::api ( include octavia::keystone::authtoken } + if $ovn_nb_connection { + warning('The ovn_nb_connection parameter is deprecated from octavia::api. Use octavia::provider::ovn::ovn_nb_connection.') + } + package { 'octavia-api': ensure => $package_ensure, name => $::octavia::params::api_package_name, @@ -142,6 +149,5 @@ class octavia::api ( 'api_settings/allow_tls_terminated_listeners': value => $allow_tls_terminated_listeners; 'api_settings/default_provider_driver': value => $default_provider_driver; 'api_settings/enabled_provider_drivers': value => $provider_drivers; - 'ovn/ovn_nb_connection': value => $ovn_nb_connection; } } diff --git a/manifests/provider/ovn.pp b/manifests/provider/ovn.pp index 740aaa74..4e24b4dd 100644 --- a/manifests/provider/ovn.pp +++ b/manifests/provider/ovn.pp @@ -36,7 +36,10 @@ class octavia::provider::ovn ( $ovn_nb_connection_real = $ovn_nb_connection } - octavia_ovn_provider_config { + # TODO(flaviof): We need to replace octavia_config with octavia_ovn_provider_config in the future. + # For now, the config below uses octavia_config until we can figure out how to pass extra + # configuration files to the api running as wsgi process. + octavia_config { 'ovn/ovn_nb_connection': value => $ovn_nb_connection_real; 'ovn/ovn_nb_private_key': value => $ovn_nb_private_key; 'ovn/ovn_nb_certificate': value => $ovn_nb_certificate; diff --git a/releasenotes/notes/add-ovn-provider-71b506e3d81e92fe.yaml b/releasenotes/notes/add-ovn-provider-71b506e3d81e92fe.yaml index fbbb0b10..4afd6f9e 100644 --- a/releasenotes/notes/add-ovn-provider-71b506e3d81e92fe.yaml +++ b/releasenotes/notes/add-ovn-provider-71b506e3d81e92fe.yaml @@ -2,3 +2,7 @@ features: - | Added octavia::provider::ovn for configuring OVN driver properties. +deprecations: + - | + octavia::api::ovn_nb_connection is now deprecated and will be removed in the + future release. Please use octavia::provider::ovn::ovn_nb_connection instead. diff --git a/spec/classes/octavia_api_spec.rb b/spec/classes/octavia_api_spec.rb index 9d95acf0..5b811afd 100644 --- a/spec/classes/octavia_api_spec.rb +++ b/spec/classes/octavia_api_spec.rb @@ -13,7 +13,6 @@ describe 'octavia::api' do :allow_tls_terminated_listeners => false, :default_provider_driver => 'ovn', :provider_drivers => { 'amphora' => 'Octavia Amphora Driver', 'ovn' => 'Octavia OVN driver' }, - :ovn_nb_connection => 'tcp:127.0.0.1:6641' } end @@ -54,7 +53,6 @@ describe 'octavia::api' do is_expected.to contain_octavia_config('api_settings/allow_tls_terminated_listeners').with_value('') is_expected.to contain_octavia_config('api_settings/default_provider_driver').with_value('') is_expected.to contain_octavia_config('api_settings/enabled_provider_drivers').with_value('') - is_expected.to contain_octavia_config('ovn/ovn_nb_connection').with_value('') end it 'does not sync the database' do is_expected.not_to contain_class('octavia::db::sync') @@ -70,7 +68,6 @@ describe 'octavia::api' do is_expected.to contain_octavia_config('api_settings/allow_tls_terminated_listeners').with_value( params[:allow_tls_terminated_listeners] ) is_expected.to contain_octavia_config('api_settings/default_provider_driver').with_value( params[:default_provider_driver] ) is_expected.to contain_octavia_config('api_settings/enabled_provider_drivers').with_value( params[:provider_drivers] ) - is_expected.to contain_octavia_config('ovn/ovn_nb_connection').with_value(params[:ovn_nb_connection]) end [{:enabled => true}, {:enabled => false}].each do |param_hash| diff --git a/spec/classes/octavia_ovn_provider_spec.rb b/spec/classes/octavia_ovn_provider_spec.rb index 07205659..e7611c29 100644 --- a/spec/classes/octavia_ovn_provider_spec.rb +++ b/spec/classes/octavia_ovn_provider_spec.rb @@ -10,10 +10,10 @@ describe 'octavia::provider::ovn' do shared_examples_for 'octavia-ovn-provider' do context 'with default parameters' do - it { is_expected.to contain_octavia_ovn_provider_config('ovn/ovn_nb_connection').with_value('') } - it { is_expected.to contain_octavia_ovn_provider_config('ovn/ovn_nb_private_key').with_value('') } - it { is_expected.to contain_octavia_ovn_provider_config('ovn/ovn_nb_certificate').with_value('') } - it { is_expected.to contain_octavia_ovn_provider_config('ovn/ovn_nb_ca_cert').with_value('') } + it { is_expected.to contain_octavia_config('ovn/ovn_nb_connection').with_value('') } + it { is_expected.to contain_octavia_config('ovn/ovn_nb_private_key').with_value('') } + it { is_expected.to contain_octavia_config('ovn/ovn_nb_certificate').with_value('') } + it { is_expected.to contain_octavia_config('ovn/ovn_nb_ca_cert').with_value('') } end context 'with specific parameters' do @@ -26,10 +26,10 @@ describe 'octavia::provider::ovn' do }) end - it { is_expected.to contain_octavia_ovn_provider_config('ovn/ovn_nb_connection').with_value('tcp:127.0.0.1:6641') } - it { is_expected.to contain_octavia_ovn_provider_config('ovn/ovn_nb_private_key').with_value('/foo.key') } - it { is_expected.to contain_octavia_ovn_provider_config('ovn/ovn_nb_certificate').with_value('/foo.pem') } - it { is_expected.to contain_octavia_ovn_provider_config('ovn/ovn_nb_ca_cert').with_value('/ca_foo.pem') } + it { is_expected.to contain_octavia_config('ovn/ovn_nb_connection').with_value('tcp:127.0.0.1:6641') } + it { is_expected.to contain_octavia_config('ovn/ovn_nb_private_key').with_value('/foo.key') } + it { is_expected.to contain_octavia_config('ovn/ovn_nb_certificate').with_value('/foo.pem') } + it { is_expected.to contain_octavia_config('ovn/ovn_nb_ca_cert').with_value('/ca_foo.pem') } end end