diff --git a/manifests/api.pp b/manifests/api.pp index 25059f96..fab5f3df 100644 --- a/manifests/api.pp +++ b/manifests/api.pp @@ -55,6 +55,11 @@ # (optional) Run octavia-db-manage upgrade head on api nodes after installing the package. # Defaults to false # +# [*enable_proxy_headers_parsing*] +# (Optional) Enable paste middleware to handle SSL requests through +# HTTPProxyToWSGI middleware. +# Defaults to $::os_service_default. +# # [*default_provider_driver*] # (optional) Configure the default provider driver. # Defaults to $::os_service_default @@ -82,6 +87,7 @@ class octavia::api ( $api_v2_enabled = $::os_service_default, $allow_tls_terminated_listeners = $::os_service_default, $sync_db = false, + $enable_proxy_headers_parsing = $::os_service_default, $default_provider_driver = $::os_service_default, $provider_drivers = $::os_service_default, # DEPRECATED PARAMETERS @@ -150,4 +156,8 @@ class octavia::api ( 'api_settings/default_provider_driver': value => $default_provider_driver; 'api_settings/enabled_provider_drivers': value => $provider_drivers; } + + oslo::middleware { 'octavia_config': + enable_proxy_headers_parsing => $enable_proxy_headers_parsing + } } diff --git a/releasenotes/notes/add-api-enable_proxy_headers_parsing-e04ae349155978bc.yaml b/releasenotes/notes/add-api-enable_proxy_headers_parsing-e04ae349155978bc.yaml new file mode 100644 index 00000000..f4a4446d --- /dev/null +++ b/releasenotes/notes/add-api-enable_proxy_headers_parsing-e04ae349155978bc.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + The new ``octavia::api::enable_proxy_headers_parsing`` parameter was added + to support ``enable_proxy_headers_parsing`` parameter in Octavia. diff --git a/spec/classes/octavia_api_spec.rb b/spec/classes/octavia_api_spec.rb index 5b811afd..4ecf7619 100644 --- a/spec/classes/octavia_api_spec.rb +++ b/spec/classes/octavia_api_spec.rb @@ -53,6 +53,9 @@ 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_oslo__middleware('octavia_config').with( + :enable_proxy_headers_parsing => '', + ) end it 'does not sync the database' do is_expected.not_to contain_class('octavia::db::sync') @@ -99,6 +102,18 @@ describe 'octavia::api' do it { is_expected.to contain_class('octavia::db::sync') } end + context 'with enable_proxy_headers_parsing set' do + before do + params.merge!({ + :enable_proxy_headers_parsing => true}) + end + it 'configures enable_proxy_headers_parsing' do + is_expected.to contain_oslo__middleware('octavia_config').with( + :enable_proxy_headers_parsing => true, + ) + end + end + context 'with disabled service managing' do before do params.merge!({