identity: more flexibility in endpoints protocols

Allow to specify all endpoint type protocols:
- recatorize keystone endpoints
- for each OpenStack service, allow to specify internal & admin
  endpoints procotols

Signed-off-by: Emilien Macchi <emilien.macchi@enovance.com>
This commit is contained in:
Emilien Macchi
2014-06-23 18:16:41 +02:00
parent f34152acf5
commit b4e18e6b1e
2 changed files with 188 additions and 128 deletions

View File

@@ -336,23 +336,31 @@ class cloud::identity (
$ks_ceilometer_public_host = '127.0.0.1', $ks_ceilometer_public_host = '127.0.0.1',
$ks_ceilometer_public_port = 8777, $ks_ceilometer_public_port = 8777,
$ks_ceilometer_public_proto = 'http', $ks_ceilometer_public_proto = 'http',
$ks_ceilometer_admin_proto = 'http',
$ks_ceilometer_internal_proto = 'http',
$ks_cinder_admin_host = '127.0.0.1', $ks_cinder_admin_host = '127.0.0.1',
$ks_cinder_internal_host = '127.0.0.1', $ks_cinder_internal_host = '127.0.0.1',
$ks_cinder_password = 'cinderpassword', $ks_cinder_password = 'cinderpassword',
$ks_cinder_public_host = '127.0.0.1', $ks_cinder_public_host = '127.0.0.1',
$ks_cinder_public_proto = 'http', $ks_cinder_public_proto = 'http',
$ks_cinder_admin_proto = 'http',
$ks_cinder_internal_proto = 'http',
$ks_cinder_public_port = 8776, $ks_cinder_public_port = 8776,
$ks_glance_admin_host = '127.0.0.1', $ks_glance_admin_host = '127.0.0.1',
$ks_glance_internal_host = '127.0.0.1', $ks_glance_internal_host = '127.0.0.1',
$ks_glance_password = 'glancepassword', $ks_glance_password = 'glancepassword',
$ks_glance_public_host = '127.0.0.1', $ks_glance_public_host = '127.0.0.1',
$ks_glance_public_proto = 'http', $ks_glance_public_proto = 'http',
$ks_glance_internal_proto = 'http',
$ks_glance_admin_proto = 'http',
$ks_glance_api_public_port = 9292, $ks_glance_api_public_port = 9292,
$ks_heat_admin_host = '127.0.0.1', $ks_heat_admin_host = '127.0.0.1',
$ks_heat_internal_host = '127.0.0.1', $ks_heat_internal_host = '127.0.0.1',
$ks_heat_password = 'heatpassword', $ks_heat_password = 'heatpassword',
$ks_heat_public_host = '127.0.0.1', $ks_heat_public_host = '127.0.0.1',
$ks_heat_public_proto = 'http', $ks_heat_public_proto = 'http',
$ks_heat_admin_proto = 'http',
$ks_heat_internal_proto = 'http',
$ks_heat_public_port = 8004, $ks_heat_public_port = 8004,
$ks_heat_cfn_public_port = 8000, $ks_heat_cfn_public_port = 8000,
$ks_keystone_admin_host = '127.0.0.1', $ks_keystone_admin_host = '127.0.0.1',
@@ -363,16 +371,22 @@ class cloud::identity (
$ks_keystone_public_port = 5000, $ks_keystone_public_port = 5000,
$ks_keystone_public_proto = 'http', $ks_keystone_public_proto = 'http',
$ks_neutron_admin_host = '127.0.0.1', $ks_neutron_admin_host = '127.0.0.1',
$ks_keystone_admin_proto = 'http',
$ks_keystone_internal_proto = 'http',
$ks_neutron_internal_host = '127.0.0.1', $ks_neutron_internal_host = '127.0.0.1',
$ks_neutron_password = 'neutronpassword', $ks_neutron_password = 'neutronpassword',
$ks_neutron_public_host = '127.0.0.1', $ks_neutron_public_host = '127.0.0.1',
$ks_neutron_public_proto = 'http', $ks_neutron_public_proto = 'http',
$ks_neutron_admin_proto = 'http',
$ks_neutron_internal_proto = 'http',
$ks_neutron_public_port = 9696, $ks_neutron_public_port = 9696,
$ks_nova_admin_host = '127.0.0.1', $ks_nova_admin_host = '127.0.0.1',
$ks_nova_internal_host = '127.0.0.1', $ks_nova_internal_host = '127.0.0.1',
$ks_nova_password = 'novapassword', $ks_nova_password = 'novapassword',
$ks_nova_public_host = '127.0.0.1', $ks_nova_public_host = '127.0.0.1',
$ks_nova_public_proto = 'http', $ks_nova_public_proto = 'http',
$ks_nova_internal_proto = 'http',
$ks_nova_admin_proto = 'http',
$ks_nova_public_port = 8774, $ks_nova_public_port = 8774,
$ks_ec2_public_port = 8773, $ks_ec2_public_port = 8773,
$ks_swift_dispersion_password = 'dispersion', $ks_swift_dispersion_password = 'dispersion',
@@ -382,6 +396,8 @@ class cloud::identity (
$ks_swift_public_host = '127.0.0.1', $ks_swift_public_host = '127.0.0.1',
$ks_swift_public_port = 8080, $ks_swift_public_port = 8080,
$ks_swift_public_proto = 'http', $ks_swift_public_proto = 'http',
$ks_swift_admin_proto = 'http',
$ks_swift_internal_proto = 'http',
$api_eth = '127.0.0.1', $api_eth = '127.0.0.1',
$region = 'RegionOne', $region = 'RegionOne',
$verbose = true, $verbose = true,
@@ -439,13 +455,9 @@ class cloud::identity (
keystone_role { $identity_roles_addons: ensure => present } keystone_role { $identity_roles_addons: ensure => present }
class {'keystone::endpoint': class {'keystone::endpoint':
admin_address => $ks_keystone_admin_host, public_url => "${ks_keystone_public_proto}://${ks_keystone_public_host}:${ks_keystone_public_port}",
admin_port => $ks_keystone_admin_port, internal_url => "${ks_keystone_internal_proto}://${ks_keystone_internal_host}:${ks_keystone_internal_port}",
internal_address => $ks_keystone_internal_host, admin_url => "${ks_keystone_admin_proto}://${ks_keystone_admin_host}:${ks_keystone_admin_port}",
internal_port => $ks_keystone_internal_port,
public_address => $ks_keystone_public_host,
public_port => $ks_keystone_public_port,
public_protocol => $ks_keystone_public_proto,
region => $region, region => $region,
} }
@@ -466,6 +478,8 @@ class cloud::identity (
public_address => $ks_swift_public_host, public_address => $ks_swift_public_host,
public_port => $ks_swift_public_port, public_port => $ks_swift_public_port,
public_protocol => $ks_swift_public_proto, public_protocol => $ks_swift_public_proto,
admin_protocol => $ks_swift_admin_proto,
internal_protocol => $ks_swift_internal_proto,
admin_address => $ks_swift_admin_host, admin_address => $ks_swift_admin_host,
internal_address => $ks_swift_internal_host, internal_address => $ks_swift_internal_host,
region => $region region => $region
@@ -480,6 +494,9 @@ class cloud::identity (
admin_address => $ks_ceilometer_admin_host, admin_address => $ks_ceilometer_admin_host,
internal_address => $ks_ceilometer_internal_host, internal_address => $ks_ceilometer_internal_host,
public_address => $ks_ceilometer_public_host, public_address => $ks_ceilometer_public_host,
public_protocol => $ks_ceilometer_public_proto,
admin_protocol => $ks_ceilometer_admin_proto,
internal_protocol => $ks_ceilometer_internal_proto,
port => $ks_ceilometer_public_port, port => $ks_ceilometer_public_port,
region => $region, region => $region,
password => $ks_ceilometer_password password => $ks_ceilometer_password
@@ -491,6 +508,9 @@ class cloud::identity (
internal_address => $ks_nova_internal_host, internal_address => $ks_nova_internal_host,
public_address => $ks_nova_public_host, public_address => $ks_nova_public_host,
compute_port => $ks_nova_public_port, compute_port => $ks_nova_public_port,
public_protocol => $ks_nova_public_proto,
admin_protocol => $ks_nova_admin_proto,
internal_protocol => $ks_nova_internal_proto,
ec2_port => $ks_ec2_public_port, ec2_port => $ks_ec2_public_port,
region => $region, region => $region,
password => $ks_nova_password password => $ks_nova_password
@@ -500,6 +520,9 @@ class cloud::identity (
admin_address => $ks_neutron_admin_host, admin_address => $ks_neutron_admin_host,
internal_address => $ks_neutron_internal_host, internal_address => $ks_neutron_internal_host,
public_address => $ks_neutron_public_host, public_address => $ks_neutron_public_host,
public_protocol => $ks_neutron_public_proto,
internal_protocol => $ks_neutron_internal_proto,
admin_protocol => $ks_neutron_admin_proto,
port => $ks_neutron_public_port, port => $ks_neutron_public_port,
region => $region, region => $region,
password => $ks_neutron_password password => $ks_neutron_password
@@ -510,6 +533,9 @@ class cloud::identity (
internal_address => $ks_cinder_internal_host, internal_address => $ks_cinder_internal_host,
public_address => $ks_cinder_public_host, public_address => $ks_cinder_public_host,
port => $ks_cinder_public_port, port => $ks_cinder_public_port,
public_protocol => $ks_cinder_public_proto,
admin_protocol => $ks_cinder_admin_proto,
internal_protocol => $ks_cinder_internal_proto,
region => $region, region => $region,
password => $ks_cinder_password password => $ks_cinder_password
} }
@@ -519,6 +545,9 @@ class cloud::identity (
internal_address => $ks_glance_internal_host, internal_address => $ks_glance_internal_host,
public_address => $ks_glance_public_host, public_address => $ks_glance_public_host,
port => $ks_glance_api_public_port, port => $ks_glance_api_public_port,
public_protocol => $ks_glance_public_proto,
internal_protocol => $ks_glance_internal_proto,
admin_protocol => $ks_glance_admin_proto,
region => $region, region => $region,
password => $ks_glance_password password => $ks_glance_password
} }
@@ -528,6 +557,9 @@ class cloud::identity (
internal_address => $ks_heat_internal_host, internal_address => $ks_heat_internal_host,
public_address => $ks_heat_public_host, public_address => $ks_heat_public_host,
port => $ks_heat_public_port, port => $ks_heat_public_port,
public_protocol => $ks_heat_public_proto,
internal_protocol => $ks_heat_internal_proto,
admin_protocol => $ks_heat_admin_proto,
region => $region, region => $region,
password => $ks_heat_password password => $ks_heat_password
} }
@@ -537,6 +569,9 @@ class cloud::identity (
internal_address => $ks_heat_internal_host, internal_address => $ks_heat_internal_host,
public_address => $ks_heat_public_host, public_address => $ks_heat_public_host,
port => $ks_heat_cfn_public_port, port => $ks_heat_cfn_public_port,
public_protocol => $ks_heat_public_proto,
internal_protocol => $ks_heat_internal_proto,
admin_protocol => $ks_heat_admin_proto,
region => $region, region => $region,
password => $ks_heat_password password => $ks_heat_password
} }

View File

@@ -37,23 +37,30 @@ describe 'cloud::identity' do
:ks_ceilometer_password => 'secrete', :ks_ceilometer_password => 'secrete',
:ks_ceilometer_public_host => '10.0.0.1', :ks_ceilometer_public_host => '10.0.0.1',
:ks_ceilometer_public_port => '8777', :ks_ceilometer_public_port => '8777',
:ks_ceilometer_public_proto => 'http', :ks_ceilometer_public_proto => 'https',
:ks_ceilometer_admin_proto => 'https',
:ks_ceilometer_internal_proto => 'https',
:ks_cinder_admin_host => '10.0.0.1', :ks_cinder_admin_host => '10.0.0.1',
:ks_cinder_internal_host => '10.0.0.1', :ks_cinder_internal_host => '10.0.0.1',
:ks_cinder_password => 'secrete', :ks_cinder_password => 'secrete',
:ks_cinder_public_host => '10.0.0.1', :ks_cinder_public_host => '10.0.0.1',
:ks_cinder_public_proto => 'http', :ks_cinder_public_proto => 'https',
:ks_cinder_public_port => '8776', :ks_cinder_public_proto => 'https',
:ks_cinder_admin_proto => 'https',
:ks_glance_admin_host => '10.0.0.1', :ks_glance_admin_host => '10.0.0.1',
:ks_glance_internal_host => '10.0.0.1', :ks_glance_internal_host => '10.0.0.1',
:ks_glance_password => 'secrete', :ks_glance_password => 'secrete',
:ks_glance_public_host => '10.0.0.1', :ks_glance_public_host => '10.0.0.1',
:ks_glance_public_proto => 'http', :ks_glance_public_proto => 'https',
:ks_glance_admin_proto => 'https',
:ks_glance_internal_proto => 'https',
:ks_heat_admin_host => '10.0.0.1', :ks_heat_admin_host => '10.0.0.1',
:ks_heat_internal_host => '10.0.0.1', :ks_heat_internal_host => '10.0.0.1',
:ks_heat_password => 'secrete', :ks_heat_password => 'secrete',
:ks_heat_public_host => '10.0.0.1', :ks_heat_public_host => '10.0.0.1',
:ks_heat_public_proto => 'http', :ks_heat_public_proto => 'https',
:ks_heat_admin_proto => 'https',
:ks_heat_internal_proto => 'https',
:ks_heat_public_port => '8004', :ks_heat_public_port => '8004',
:ks_heat_cfn_public_port => '8000', :ks_heat_cfn_public_port => '8000',
:ks_keystone_admin_host => '10.0.0.1', :ks_keystone_admin_host => '10.0.0.1',
@@ -62,18 +69,24 @@ describe 'cloud::identity' do
:ks_keystone_internal_port => '5000', :ks_keystone_internal_port => '5000',
:ks_keystone_public_host => '10.0.0.1', :ks_keystone_public_host => '10.0.0.1',
:ks_keystone_public_port => '5000', :ks_keystone_public_port => '5000',
:ks_keystone_public_proto => 'http', :ks_keystone_public_proto => 'https',
:ks_keystone_admin_proto => 'https',
:ks_keystone_internal_proto => 'https',
:ks_neutron_admin_host => '10.0.0.1', :ks_neutron_admin_host => '10.0.0.1',
:ks_neutron_internal_host => '10.0.0.1', :ks_neutron_internal_host => '10.0.0.1',
:ks_neutron_password => 'secrete', :ks_neutron_password => 'secrete',
:ks_neutron_public_host => '10.0.0.1', :ks_neutron_public_host => '10.0.0.1',
:ks_neutron_public_proto => 'http', :ks_neutron_admin_proto => 'https',
:ks_neutron_internal_proto => 'https',
:ks_neutron_public_proto => 'https',
:ks_neutron_public_port => '9696', :ks_neutron_public_port => '9696',
:ks_nova_admin_host => '10.0.0.1', :ks_nova_admin_host => '10.0.0.1',
:ks_nova_internal_host => '10.0.0.1', :ks_nova_internal_host => '10.0.0.1',
:ks_nova_password => 'secrete', :ks_nova_password => 'secrete',
:ks_nova_public_host => '10.0.0.1', :ks_nova_public_host => '10.0.0.1',
:ks_nova_public_proto => 'http', :ks_nova_public_proto => 'https',
:ks_nova_internal_proto => 'https',
:ks_nova_admin_proto => 'https',
:ks_nova_public_port => '8774', :ks_nova_public_port => '8774',
:ks_ec2_public_port => '8773', :ks_ec2_public_port => '8773',
:ks_swift_dispersion_password => 'secrete', :ks_swift_dispersion_password => 'secrete',
@@ -81,7 +94,9 @@ describe 'cloud::identity' do
:ks_swift_password => 'secrete', :ks_swift_password => 'secrete',
:ks_swift_public_host => '10.0.0.1', :ks_swift_public_host => '10.0.0.1',
:ks_swift_public_port => '8080', :ks_swift_public_port => '8080',
:ks_swift_public_proto => 'http', :ks_swift_public_proto => 'https',
:ks_swift_admin_proto => 'https',
:ks_swift_internal_proto => 'https',
:ks_swift_admin_host => '10.0.0.1', :ks_swift_admin_host => '10.0.0.1',
:region => 'BigCloud', :region => 'BigCloud',
:verbose => true, :verbose => true,
@@ -148,13 +163,9 @@ describe 'cloud::identity' do
it 'configure keystone endpoint' do it 'configure keystone endpoint' do
should contain_class('keystone::endpoint').with( should contain_class('keystone::endpoint').with(
:admin_address => '10.0.0.1', :public_url => 'https://10.0.0.1:5000',
:admin_port => '35357', :admin_url => 'https://10.0.0.1:35357',
:internal_address => '10.0.0.1', :internal_url => 'https://10.0.0.1:5000',
:internal_port => '5000',
:public_address => '10.0.0.1',
:public_port => '5000',
:public_protocol => 'http',
:region => 'BigCloud' :region => 'BigCloud'
) )
end end
@@ -164,7 +175,9 @@ describe 'cloud::identity' do
:password => 'secrete', :password => 'secrete',
:public_address => '10.0.0.1', :public_address => '10.0.0.1',
:public_port => '8080', :public_port => '8080',
:public_protocol => 'http', :public_protocol => 'https',
:admin_protocol => 'https',
:internal_protocol => 'https',
:admin_address => '10.0.0.1', :admin_address => '10.0.0.1',
:internal_address => '10.0.0.1', :internal_address => '10.0.0.1',
:region => 'BigCloud' :region => 'BigCloud'
@@ -182,7 +195,9 @@ describe 'cloud::identity' do
:password => 'secrete', :password => 'secrete',
:port => '8777', :port => '8777',
:public_address => '10.0.0.1', :public_address => '10.0.0.1',
:public_protocol => 'http', :public_protocol => 'https',
:admin_protocol => 'https',
:internal_protocol => 'https',
:region => 'BigCloud' :region => 'BigCloud'
) )
end end
@@ -194,7 +209,9 @@ describe 'cloud::identity' do
:internal_address => '10.0.0.1', :internal_address => '10.0.0.1',
:password => 'secrete', :password => 'secrete',
:public_address => '10.0.0.1', :public_address => '10.0.0.1',
:public_protocol => 'http', :public_protocol => 'https',
:admin_protocol => 'https',
:internal_protocol => 'https',
:compute_port => '8774', :compute_port => '8774',
:ec2_port => '8773', :ec2_port => '8773',
:region => 'BigCloud' :region => 'BigCloud'
@@ -207,7 +224,9 @@ describe 'cloud::identity' do
:internal_address => '10.0.0.1', :internal_address => '10.0.0.1',
:password => 'secrete', :password => 'secrete',
:public_address => '10.0.0.1', :public_address => '10.0.0.1',
:public_protocol => 'http', :public_protocol => 'https',
:internal_protocol => 'https',
:admin_protocol => 'https',
:port => '9696', :port => '9696',
:region => 'BigCloud' :region => 'BigCloud'
) )
@@ -219,7 +238,7 @@ describe 'cloud::identity' do
:internal_address => '10.0.0.1', :internal_address => '10.0.0.1',
:password => 'secrete', :password => 'secrete',
:public_address => '10.0.0.1', :public_address => '10.0.0.1',
:public_protocol => 'http', :public_protocol => 'https',
:region => 'BigCloud' :region => 'BigCloud'
) )
end end
@@ -230,7 +249,9 @@ describe 'cloud::identity' do
:internal_address => '10.0.0.1', :internal_address => '10.0.0.1',
:password => 'secrete', :password => 'secrete',
:public_address => '10.0.0.1', :public_address => '10.0.0.1',
:public_protocol => 'http', :public_protocol => 'https',
:admin_protocol => 'https',
:internal_protocol => 'https',
:port => '9292', :port => '9292',
:region => 'BigCloud' :region => 'BigCloud'
) )
@@ -242,7 +263,9 @@ describe 'cloud::identity' do
:internal_address => '10.0.0.1', :internal_address => '10.0.0.1',
:password => 'secrete', :password => 'secrete',
:public_address => '10.0.0.1', :public_address => '10.0.0.1',
:public_protocol => 'http', :public_protocol => 'https',
:admin_protocol => 'https',
:internal_protocol => 'https',
:port => '8004', :port => '8004',
:region => 'BigCloud' :region => 'BigCloud'
) )
@@ -254,7 +277,9 @@ describe 'cloud::identity' do
:internal_address => '10.0.0.1', :internal_address => '10.0.0.1',
:password => 'secrete', :password => 'secrete',
:public_address => '10.0.0.1', :public_address => '10.0.0.1',
:public_protocol => 'http', :public_protocol => 'https',
:admin_protocol => 'https',
:internal_protocol => 'https',
:port => '8000', :port => '8000',
:region => 'BigCloud' :region => 'BigCloud'
) )