Files
puppet-octavia/spec/classes/octavia_service_auth_spec.rb
Takashi Kajinami 296a7a31ff Add support for [neutron] keystoneauth options
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
2023-09-07 20:24:07 +09:00

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