trove: add API binding in HAproxy

As an option, bring support of Trove API binding in HAproxy
configuration.
Note: there is no unit tests, since we already cover this code.

Signed-off-by: Emilien Macchi <emilien.macchi@enovance.com>
This commit is contained in:
Emilien Macchi 2014-07-03 00:15:02 +02:00
parent 3bf68c7237
commit 37ffc88e07
2 changed files with 18 additions and 0 deletions

View File

@ -119,6 +119,13 @@
# If set to false, no binding will be configure # If set to false, no binding will be configure
# Defaults to true # Defaults to true
# #
# [*trive_api*]
# (optional) Enable or not Trove public binding.
# If true, both public and internal will attempt to be created except if vip_internal_ip is set to false (backward compatibility).
# If set to ['10.0.0.1'], only IP in the array (or in the string) will be configured in the pool. They must be part of keepalived_ip options.
# If set to false, no binding will be configure
# Defaults to true
#
# [*ec2_api*] # [*ec2_api*]
# (optional) Enable or not EC2 public binding. # (optional) Enable or not EC2 public binding.
# If true, both public and internal will attempt to be created except if vip_internal_ip is set to false (backward compatibility). # If true, both public and internal will attempt to be created except if vip_internal_ip is set to false (backward compatibility).
@ -171,6 +178,7 @@ class cloud::loadbalancer(
$metadata_api = true, $metadata_api = true,
$keystone_api = true, $keystone_api = true,
$keystone_api_admin = true, $keystone_api_admin = true,
$trove_api = true,
$horizon = true, $horizon = true,
$spice = true, $spice = true,
$haproxy_auth = 'admin:changeme', $haproxy_auth = 'admin:changeme',
@ -193,6 +201,7 @@ class cloud::loadbalancer(
$metadata_bind_options = [], $metadata_bind_options = [],
$neutron_bind_options = [], $neutron_bind_options = [],
$nova_bind_options = [], $nova_bind_options = [],
$trove_bind_options = [],
$swift_bind_options = [], $swift_bind_options = [],
$spice_bind_options = [], $spice_bind_options = [],
$horizon_bind_options = [], $horizon_bind_options = [],
@ -211,6 +220,7 @@ class cloud::loadbalancer(
$ks_neutron_public_port = 9696, $ks_neutron_public_port = 9696,
$ks_nova_public_port = 8774, $ks_nova_public_port = 8774,
$ks_swift_public_port = 8080, $ks_swift_public_port = 8080,
$ks_trove_public_port = 8779,
$horizon_port = 80, $horizon_port = 80,
$spice_port = 6082, $spice_port = 6082,
$vip_public_ip = ['127.0.0.1'], $vip_public_ip = ['127.0.0.1'],
@ -369,6 +379,11 @@ class cloud::loadbalancer(
bind_options => $spice_bind_options, bind_options => $spice_bind_options,
httpchk => 'httpchk GET /'; httpchk => 'httpchk GET /';
} }
cloud::loadbalancer::binding { 'trove_api_cluster':
ip => $trove_api,
port => $ks_trove_public_port,
bind_options => $trove_bind_options,
}
cloud::loadbalancer::binding { 'glance_api_cluster': cloud::loadbalancer::binding { 'glance_api_cluster':
ip => $glance_api, ip => $glance_api,
options => { options => {

View File

@ -36,6 +36,7 @@ describe 'cloud::loadbalancer' do
:swift_api => true, :swift_api => true,
:keystone_api_admin => true, :keystone_api_admin => true,
:keystone_api => true, :keystone_api => true,
:trove_api => true,
:horizon => true, :horizon => true,
:spice => true, :spice => true,
:ceilometer_bind_options => [], :ceilometer_bind_options => [],
@ -50,6 +51,7 @@ describe 'cloud::loadbalancer' do
:keystone_admin_bind_options => [], :keystone_admin_bind_options => [],
:metadata_bind_options => [], :metadata_bind_options => [],
:neutron_bind_options => [], :neutron_bind_options => [],
:trove_bind_options => [],
:swift_bind_options => [], :swift_bind_options => [],
:spice_bind_options => [], :spice_bind_options => [],
:horizon_bind_options => [], :horizon_bind_options => [],
@ -76,6 +78,7 @@ describe 'cloud::loadbalancer' do
:ks_keystone_admin_port => '35357', :ks_keystone_admin_port => '35357',
:ks_cinder_public_port => '8776', :ks_cinder_public_port => '8776',
:ks_neutron_public_port => '9696', :ks_neutron_public_port => '9696',
:ks_trove_public_port => '8779',
:ks_heat_public_port => '8004', :ks_heat_public_port => '8004',
:ks_heat_cfn_public_port => '8000', :ks_heat_cfn_public_port => '8000',
:ks_heat_cloudwatch_public_port => '8003' } :ks_heat_cloudwatch_public_port => '8003' }