diff --git a/manifests/keystone/auth.pp b/manifests/keystone/auth.pp index dc05d8a6..5eaeef71 100644 --- a/manifests/keystone/auth.pp +++ b/manifests/keystone/auth.pp @@ -15,6 +15,10 @@ # (Optional) Username for Cinder service. # Defaults to 'cinder'. # +# [*configure_endpoint*] +# (Optional) Should Cinder endpoint be configured? +# Defaults to true +# # [*configure_endpoint_v3*] # (Optional) Should Cinder v3 endpoint be configured? # Defaults to true @@ -27,20 +31,36 @@ # (Optional) Should the admin role be configured for the service user? # Defaults to true # -# [*configure_service_v3*] +# [*configure_service*] # (Optional) Should the service be configured? # Defaults to True # +# [*configure_service_v3*] +# (Optional) Should the v3 service be configured? +# Defaults to True +# +# [*service_name*] +# (Optional) Name of the service. +# Defaults to 'cinder'. +# # [*service_name_v3*] # (Optional) Name of the v3 service. # Defaults to 'cinderv3'. # +# [*service_type*] +# (Optional) Type of the service. +# Defaults to 'block-storage'. +# # [*service_type_v3*] -# (Optional) Type of API v3 service. +# (Optional) Type of the v3 service. # Defaults to 'volumev3'. # +# [*service_description*] +# (Optional) Description for the service. +# Defaults to 'OpenStack Block Storage Service'. +# # [*service_description_v3*] -# (Optional) Description for keystone v3 service. +# (Optional) Description for the v3 service. # Defaults to 'Cinder Service v3'. # # [*region*] @@ -135,12 +155,17 @@ class cinder::keystone::auth ( Keystone::PublicEndpointUrl $public_url_v3 = 'http://127.0.0.1:8776/v3', Keystone::EndpointUrl $internal_url_v3 = 'http://127.0.0.1:8776/v3', Keystone::EndpointUrl $admin_url_v3 = 'http://127.0.0.1:8776/v3', + Boolean $configure_endpoint = true, Boolean $configure_endpoint_v3 = true, Boolean $configure_user = true, Boolean $configure_user_role = true, + Boolean $configure_service = true, Boolean $configure_service_v3 = true, + String[1] $service_name = 'cinder', String[1] $service_name_v3 = 'cinderv3', + String[1] $service_type = 'block-storage', String[1] $service_type_v3 = 'volumev3', + String[1] $service_description = 'OpenStack Block Storage Service', String[1] $service_description_v3 = 'Cinder Service v3', String[1] $region = 'RegionOne', # DPERECATED PARAMETERS @@ -170,8 +195,11 @@ and will be removed in a future release.") keystone::resource::service_identity { 'cinder': configure_user => $configure_user, configure_user_role => $configure_user_role, - configure_endpoint => false, - configure_service => false, + configure_endpoint => $configure_endpoint, + configure_service => $configure_service, + service_type => $service_type, + service_description => $service_description, + service_name => $service_name, region => $region, auth_name => $auth_name, password => $password, @@ -180,6 +208,9 @@ and will be removed in a future release.") roles => $roles, system_scope => $system_scope, system_roles => $system_roles, + public_url => $public_url_v3, + admin_url => $admin_url_v3, + internal_url => $internal_url_v3, } keystone::resource::service_identity { 'cinderv3': diff --git a/releasenotes/notes/block-storage-service-type-92f0892c2c2ca144.yaml b/releasenotes/notes/block-storage-service-type-92f0892c2c2ca144.yaml new file mode 100644 index 00000000..711d4a67 --- /dev/null +++ b/releasenotes/notes/block-storage-service-type-92f0892c2c2ca144.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + The ``cinder::keystone::auth`` class now manages the block-storage service + type and its endpoints. diff --git a/spec/classes/cinder_keystone_auth_spec.rb b/spec/classes/cinder_keystone_auth_spec.rb index fa484a00..e0ba473d 100644 --- a/spec/classes/cinder_keystone_auth_spec.rb +++ b/spec/classes/cinder_keystone_auth_spec.rb @@ -14,8 +14,11 @@ describe 'cinder::keystone::auth' do it { is_expected.to contain_keystone__resource__service_identity('cinder').with( :configure_user => true, :configure_user_role => true, - :configure_endpoint => false, - :configure_service => false, + :configure_endpoint => true, + :configure_service => true, + :service_name => 'cinder', + :service_type => 'block-storage', + :service_description => 'OpenStack Block Storage Service', :region => 'RegionOne', :auth_name => 'cinder', :password => 'cinder_password', @@ -24,6 +27,9 @@ describe 'cinder::keystone::auth' do :roles => ['admin'], :system_scope => 'all', :system_roles => [], + :public_url => 'http://127.0.0.1:8776/v3', + :internal_url => 'http://127.0.0.1:8776/v3', + :admin_url => 'http://127.0.0.1:8776/v3', ) } it { is_expected.to contain_keystone__resource__service_identity('cinderv3').with( @@ -67,14 +73,19 @@ describe 'cinder::keystone::auth' do :system_roles_v3 => ['adminv3', 'memberv3', 'readerv3'], :configure_user_v3 => true, :configure_user_role_v3 => true, + :service_description => 'Alternative OpenStack Block Storage Service', :service_description_v3 => 'Alternative Cinder Service v3', + :service_name => 'alt_service', :service_name_v3 => 'alt_servicev3', + :service_type => 'alt_block-storage', :service_type_v3 => 'alt_volumev3', :region => 'RegionTwo', :public_url_v3 => 'https://10.10.10.10:80', :internal_url_v3 => 'http://10.10.10.11:81', :admin_url_v3 => 'http://10.10.10.12:81', + :configure_endpoint => false, :configure_endpoint_v3 => false, + :configure_service => false, :configure_service_v3 => false } end @@ -84,6 +95,9 @@ describe 'cinder::keystone::auth' do :configure_user_role => false, :configure_endpoint => false, :configure_service => false, + :service_name => 'alt_service', + :service_type => 'alt_block-storage', + :service_description => 'Alternative OpenStack Block Storage Service', :region => 'RegionTwo', :auth_name => 'alt_cinder', :password => 'cinder_password', @@ -92,6 +106,9 @@ describe 'cinder::keystone::auth' do :roles => ['admin', 'service'], :system_scope => 'alt_all', :system_roles => ['admin', 'member', 'reader'], + :public_url => 'https://10.10.10.10:80', + :internal_url => 'http://10.10.10.11:81', + :admin_url => 'http://10.10.10.12:81', ) } it { is_expected.to contain_keystone__resource__service_identity('cinderv3').with(