Merge pull request #524 from enovance/use-internal-endpoints

Allow specifying the endpoint types for inter components communication
This commit is contained in:
Emilien Macchi 2014-07-03 14:12:58 +02:00
commit eff1c1b12d
10 changed files with 66 additions and 37 deletions

View File

@ -86,7 +86,8 @@ class cloud::compute(
$neutron_password = 'neutronpassword', $neutron_password = 'neutronpassword',
$neutron_region_name = 'RegionOne', $neutron_region_name = 'RegionOne',
$memcache_servers = ['127.0.0.1:11211'], $memcache_servers = ['127.0.0.1:11211'],
$availability_zone = 'RegionOne' $availability_zone = 'RegionOne',
$cinder_endpoint_type = 'publicURL'
) { ) {
if !defined(Resource['nova_config']) { if !defined(Resource['nova_config']) {
@ -131,6 +132,7 @@ class cloud::compute(
'DEFAULT/default_availability_zone': value => $availability_zone; 'DEFAULT/default_availability_zone': value => $availability_zone;
'DEFAULT/servicegroup_driver': value => 'mc'; 'DEFAULT/servicegroup_driver': value => 'mc';
'DEFAULT/glance_num_retries': value => '10'; 'DEFAULT/glance_num_retries': value => '10';
'DEFAULT/cinder_catalog_info': value => "volume:cinder:${cinder_endpoint_type}";
} }
# Note(EmilienM): # Note(EmilienM):

View File

@ -94,7 +94,8 @@ class cloud::dashboard(
$horizon_cert = undef, $horizon_cert = undef,
$horizon_key = undef, $horizon_key = undef,
$horizon_ca = undef, $horizon_ca = undef,
$ssl_forward = false $ssl_forward = false,
$os_endpoint_type = undef
) { ) {
# We build the param needed for horizon class # We build the param needed for horizon class
@ -115,24 +116,25 @@ class cloud::dashboard(
}) })
class { 'horizon': class { 'horizon':
secret_key => $secret_key, secret_key => $secret_key,
can_set_mount_point => 'False', can_set_mount_point => 'False',
# fqdn can can be ambiguous since we use reverse DNS here, # fqdn can can be ambiguous since we use reverse DNS here,
# e.g: 127.0.0.1 instead of a public IP address. # e.g: 127.0.0.1 instead of a public IP address.
# We force $api_eth to avoid this situation # We force $api_eth to avoid this situation
fqdn => $api_eth, fqdn => $api_eth,
servername => $servername, servername => $servername,
bind_address => $api_eth, bind_address => $api_eth,
swift => true, swift => true,
keystone_url => $keystone_url, keystone_url => $keystone_url,
cache_server_ip => false, cache_server_ip => false,
django_debug => $debug, django_debug => $debug,
neutron_options => { 'enable_lb' => true }, neutron_options => { 'enable_lb' => true },
listen_ssl => $listen_ssl, listen_ssl => $listen_ssl,
horizon_cert => $horizon_cert, horizon_cert => $horizon_cert,
horizon_key => $horizon_key, horizon_key => $horizon_key,
horizon_ca => $horizon_ca, horizon_ca => $horizon_ca,
vhost_extra_params => $vhost_extra_params vhost_extra_params => $vhost_extra_params,
openstack_endpoint_type => $os_endpoint_type,
} }
if ($::osfamily == 'Debian') { if ($::osfamily == 'Debian') {

View File

@ -110,7 +110,8 @@ class cloud::orchestration(
$verbose = true, $verbose = true,
$debug = true, $debug = true,
$use_syslog = true, $use_syslog = true,
$log_facility = 'LOG_LOCAL0' $log_facility = 'LOG_LOCAL0',
$os_endpoint_type = 'publicURL'
) { ) {
# Disable twice logging if syslog is enabled # Disable twice logging if syslog is enabled
@ -153,4 +154,7 @@ class cloud::orchestration(
unless => "/usr/bin/mysql heat -h ${heat_db_host} -u ${encoded_user} -p${encoded_password} -e \"show tables\" | /bin/grep Tables" unless => "/usr/bin/mysql heat -h ${heat_db_host} -u ${encoded_user} -p${encoded_password} -e \"show tables\" | /bin/grep Tables"
} }
heat_config {
'clients/endpoint_type': value => $os_endpoint_type;
}
} }

View File

@ -82,6 +82,7 @@ class cloud::telemetry(
$debug = true, $debug = true,
$log_facility = 'LOG_LOCAL0', $log_facility = 'LOG_LOCAL0',
$use_syslog = true, $use_syslog = true,
$os_endpoint_type = 'publicURL'
){ ){
# Disable twice logging if syslog is enabled # Disable twice logging if syslog is enabled
@ -103,6 +104,10 @@ class cloud::telemetry(
log_facility => $log_facility log_facility => $log_facility
} }
ceilometer_config {
'service_credentials/os_endpoint_type': value => $os_endpoint_type;
}
class { 'ceilometer::agent::auth': class { 'ceilometer::agent::auth':
auth_url => "${ks_keystone_internal_proto}://${ks_keystone_internal_host}:${ks_keystone_internal_port}/v2.0", auth_url => "${ks_keystone_internal_proto}://${ks_keystone_internal_host}:${ks_keystone_internal_port}/v2.0",
auth_password => $ks_ceilometer_password, auth_password => $ks_ceilometer_password,

View File

@ -67,7 +67,8 @@ class cloud::volume(
$debug = true, $debug = true,
$log_facility = 'LOG_LOCAL0', $log_facility = 'LOG_LOCAL0',
$storage_availability_zone = 'nova', $storage_availability_zone = 'nova',
$use_syslog = true $use_syslog = true,
$nova_endpoint_type = 'publicURL'
) { ) {
# Disable twice logging if syslog is enabled # Disable twice logging if syslog is enabled
@ -95,6 +96,10 @@ class cloud::volume(
storage_availability_zone => $storage_availability_zone storage_availability_zone => $storage_availability_zone
} }
cinder_config {
'DEFAULT/nova_catalog_info': value => "compute:nova:${nova_endpoint_type}";
}
class { 'cinder::ceilometer': } class { 'cinder::ceilometer': }
# Note(EmilienM): # Note(EmilienM):

View File

@ -40,7 +40,8 @@ describe 'cloud::compute::controller' do
neutron_region_name => 'MyRegion', neutron_region_name => 'MyRegion',
neutron_password => 'secrete', neutron_password => 'secrete',
memcache_servers => ['10.0.0.1','10.0.0.2'], memcache_servers => ['10.0.0.1','10.0.0.2'],
log_facility => 'LOG_LOCAL0' }" log_facility => 'LOG_LOCAL0',
cinder_endpoint_type => 'adminURL' }"
end end
let :params do let :params do
@ -73,6 +74,7 @@ describe 'cloud::compute::controller' do
should contain_nova_config('DEFAULT/default_availability_zone').with('value' => 'MyZone') should contain_nova_config('DEFAULT/default_availability_zone').with('value' => 'MyZone')
should contain_nova_config('DEFAULT/servicegroup_driver').with_value('mc') should contain_nova_config('DEFAULT/servicegroup_driver').with_value('mc')
should contain_nova_config('DEFAULT/glance_num_retries').with_value('10') should contain_nova_config('DEFAULT/glance_num_retries').with_value('10')
should contain_nova_config('DEFAULT/cinder_catalog_info').with_value('volume:cinder:adminURL')
end end
it 'configure neutron on compute node' do it 'configure neutron on compute node' do

View File

@ -33,26 +33,28 @@ describe 'cloud::dashboard' do
:debug => true, :debug => true,
:api_eth => '10.0.0.1', :api_eth => '10.0.0.1',
:ssl_forward => true, :ssl_forward => true,
:servername => 'horizon.openstack.org' } :servername => 'horizon.openstack.org',
:os_endpoint_type => 'internalURL' }
end end
it 'configure horizon' do it 'configure horizon' do
should contain_class('horizon').with( should contain_class('horizon').with(
:listen_ssl => false, :listen_ssl => false,
:secret_key => '/etc/ssl/secret', :secret_key => '/etc/ssl/secret',
:can_set_mount_point => 'False', :can_set_mount_point => 'False',
:fqdn => '10.0.0.1', :fqdn => '10.0.0.1',
:bind_address => '10.0.0.1', :bind_address => '10.0.0.1',
:servername => 'horizon.openstack.org', :servername => 'horizon.openstack.org',
:swift => true, :swift => true,
:cache_server_ip => false, :cache_server_ip => false,
:keystone_url => 'http://keystone.openstack.org:5000/v2.0', :keystone_url => 'http://keystone.openstack.org:5000/v2.0',
:django_debug => true, :django_debug => true,
:neutron_options => { 'enable_lb' => true }, :neutron_options => { 'enable_lb' => true },
:vhost_extra_params => { :vhost_extra_params => {
'add_listen' => true , 'add_listen' => true ,
'setenvif' => ['X-Forwarded-Proto https HTTPS=1'] 'setenvif' => ['X-Forwarded-Proto https HTTPS=1']
} },
:openstack_endpoint_type => 'internalURL'
) )
should contain_class('apache').with(:default_vhost => false) should contain_class('apache').with(:default_vhost => false)
end end

View File

@ -41,7 +41,8 @@ describe 'cloud::orchestration::engine' do
verbose => true, verbose => true,
log_facility => 'LOG_LOCAL0', log_facility => 'LOG_LOCAL0',
use_syslog => true, use_syslog => true,
debug => true }" debug => true,
os_endpoint_type => 'internalURL' }"
end end
let :params do let :params do
@ -71,6 +72,7 @@ describe 'cloud::orchestration::engine' do
:sql_connection => 'mysql://heat:secrete@10.0.0.1/heat?charset=utf8', :sql_connection => 'mysql://heat:secrete@10.0.0.1/heat?charset=utf8',
:log_dir => false :log_dir => false
) )
should contain_heat_config('clients/endpoint_type').with('value' => 'internalURL')
end end
it 'configure heat engine' do it 'configure heat engine' do

View File

@ -35,7 +35,8 @@ describe 'cloud::telemetry::server' do
log_facility => 'LOG_LOCAL0', log_facility => 'LOG_LOCAL0',
use_syslog => true, use_syslog => true,
verbose => true, verbose => true,
debug => true }" debug => true,
os_endpoint_type => 'internalURL' }"
end end
let :params do let :params do
@ -64,6 +65,8 @@ describe 'cloud::telemetry::server' do
:auth_url => 'http://10.0.0.1:5000/v2.0', :auth_url => 'http://10.0.0.1:5000/v2.0',
:auth_region => 'MyRegion' :auth_region => 'MyRegion'
) )
should contain_ceilometer_config('service_credentials/os_endpoint_type').with('value' => 'internalURL')
end end
it 'configure ceilometer collector' do it 'configure ceilometer collector' do

View File

@ -33,7 +33,8 @@ describe 'cloud::volume::controller' do
debug => true, debug => true,
log_facility => 'LOG_LOCAL0', log_facility => 'LOG_LOCAL0',
storage_availability_zone => 'nova', storage_availability_zone => 'nova',
use_syslog => true }" use_syslog => true,
nova_endpoint_type => 'internalURL' }"
end end
let :params do let :params do
@ -64,6 +65,7 @@ describe 'cloud::volume::controller' do
:storage_availability_zone => 'nova' :storage_availability_zone => 'nova'
) )
should contain_class('cinder::ceilometer') should contain_class('cinder::ceilometer')
should contain_cinder_config('DEFAULT/nova_catalog_info').with('value' => 'compute:nova:internalURL')
end end
it 'checks if Cinder DB is populated' do it 'checks if Cinder DB is populated' do