Octavia recently introduced keystoneauth options to the [neutron] section, and these will be required in a future release. This introduces support for the basic keystoneauth options to meet that requirement. The default values intentionally lack the password value, which triggers the fallback logic in Octavia to use service_auth options instead. Depends-on: https://review.opendev.org/c/openstack/octavia/+/866327 Change-Id: I72c61970e4878c2a06fd42026e53b788943cf945
78 lines
3.4 KiB
Ruby
78 lines
3.4 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe 'octavia::service_auth' do
|
|
|
|
shared_examples_for 'service-auth' do
|
|
|
|
let :params do
|
|
{
|
|
:password => 'secrete'
|
|
}
|
|
end
|
|
|
|
context 'with default params' do
|
|
it 'configures default auth' do
|
|
is_expected.to contain_octavia_config('service_auth/auth_url').with_value('http://localhost:5000')
|
|
is_expected.to contain_octavia_config('service_auth/username').with_value('octavia')
|
|
is_expected.to contain_octavia_config('service_auth/project_name').with_value('services')
|
|
is_expected.to contain_octavia_config('service_auth/password').with_value('secrete').with_secret(true)
|
|
is_expected.to contain_octavia_config('service_auth/user_domain_name').with_value('Default')
|
|
is_expected.to contain_octavia_config('service_auth/project_domain_name').with_value('Default')
|
|
is_expected.to contain_octavia_config('service_auth/system_scope').with_value('<SERVICE DEFAULT>')
|
|
is_expected.to contain_octavia_config('service_auth/auth_type').with_value('password')
|
|
is_expected.to contain_octavia_config('service_auth/region_name').with_value('<SERVICE DEFAULT>')
|
|
end
|
|
end
|
|
|
|
context 'when credentials are configured' do
|
|
before do
|
|
params.merge!({
|
|
:auth_url => 'http://127.0.0.1:5000',
|
|
:username => 'some_user',
|
|
:project_name => 'some_project_name',
|
|
:user_domain_name => 'my_domain_name',
|
|
:project_domain_name => 'our_domain_name',
|
|
:auth_type => 'v3password',
|
|
:region_name => 'regionOne',
|
|
})
|
|
end
|
|
|
|
it 'configures credentials' do
|
|
is_expected.to contain_octavia_config('service_auth/auth_url').with_value('http://127.0.0.1:5000')
|
|
is_expected.to contain_octavia_config('service_auth/username').with_value('some_user')
|
|
is_expected.to contain_octavia_config('service_auth/project_name').with_value('some_project_name')
|
|
is_expected.to contain_octavia_config('service_auth/password').with_value('secrete').with_secret(true)
|
|
is_expected.to contain_octavia_config('service_auth/user_domain_name').with_value('my_domain_name')
|
|
is_expected.to contain_octavia_config('service_auth/project_domain_name').with_value('our_domain_name')
|
|
is_expected.to contain_octavia_config('service_auth/system_scope').with_value('<SERVICE DEFAULT>')
|
|
is_expected.to contain_octavia_config('service_auth/auth_type').with_value('v3password')
|
|
is_expected.to contain_octavia_config('service_auth/region_name').with_value('regionOne')
|
|
end
|
|
end
|
|
|
|
context 'when system_scope is set' do
|
|
before do
|
|
params.merge!(
|
|
:system_scope => 'all'
|
|
)
|
|
end
|
|
it 'configures system-scoped credential' do
|
|
is_expected.to contain_octavia_config('service_auth/project_domain_name').with_value('<SERVICE DEFAULT>')
|
|
is_expected.to contain_octavia_config('service_auth/project_name').with_value('<SERVICE DEFAULT>')
|
|
is_expected.to contain_octavia_config('service_auth/system_scope').with_value('all')
|
|
end
|
|
end
|
|
end
|
|
|
|
on_supported_os({
|
|
:supported_os => OSDefaults.get_supported_os
|
|
}).each do |os,facts|
|
|
context "on #{os}" do
|
|
let (:facts) do
|
|
facts.merge!(OSDefaults.get_facts())
|
|
end
|
|
it_behaves_like 'service-auth'
|
|
end
|
|
end
|
|
end
|