Deploy block-storage service type

The official service type name defined in service type authority is
not volume or volumevN but "block-storage". In the recent discussion[1]
it was recommended that a keystone service with that official name is
created along with optional service types with legacy names.

[1] https://lists.openstack.org/archives/list/openstack-discuss@lists.openstack.org/thread/QQ7L44VE4MOWOQVOFCZQPTIVI35A6SCK/

Change-Id: Iafcb614532639391b6c2612f4ca5546f5940a912
This commit is contained in:
Takashi Kajinami 2024-10-09 22:14:32 +09:00
parent bb1eba7195
commit b0957ff6a6
3 changed files with 60 additions and 7 deletions

View File

@ -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':

View File

@ -0,0 +1,5 @@
---
features:
- |
The ``cinder::keystone::auth`` class now manages the block-storage service
type and its endpoints.

View File

@ -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(