Remove tripleo::loadbalancer
The split has been done on both undercloud & overcloud, they now use tripleo::haproxy and tripleo::keepalived. We can move forward with removing tripleo::loadbalancer and tripleo::loadbalancer::endpoint, not used anymore. Simplify tripleo::profile::base::loadbalancer to just include tripleo::haproxy and rely on Hiera for parameters. Change-Id: Ieeb1e94117ae9cb8b11320306de3a9b236bd989a
This commit is contained in:
parent
4529b60bde
commit
ca2efb5761
@ -54,13 +54,14 @@
|
||||
# Defaults to '/dev/log'
|
||||
#
|
||||
# [*controller_hosts*]
|
||||
# (Required) IPs of host or group of hosts to load-balance the services
|
||||
# IPs of host or group of hosts to load-balance the services
|
||||
# Can be a string or an array.
|
||||
# Defaults tohiera('controller_node_ips')
|
||||
#
|
||||
# [*controller_hosts_names*]
|
||||
# Names of host or group of hosts to load-balance the services
|
||||
# Can be a string or an array.
|
||||
# Defaults to undef
|
||||
# Defaults to hiera('controller_node_names', undef)
|
||||
#
|
||||
# [*controller_virtual_ip*]
|
||||
# Control IP or group of IPs to bind the pools
|
||||
@ -263,7 +264,6 @@
|
||||
class tripleo::haproxy (
|
||||
$controller_virtual_ip,
|
||||
$public_virtual_ip,
|
||||
$controller_hosts,
|
||||
$keepalived = true,
|
||||
$haproxy_service_manage = true,
|
||||
$haproxy_global_maxconn = 20480,
|
||||
@ -274,7 +274,8 @@ class tripleo::haproxy (
|
||||
$haproxy_log_address = '/dev/log',
|
||||
$haproxy_stats_user = 'admin',
|
||||
$haproxy_stats_password = undef,
|
||||
$controller_hosts_names = undef,
|
||||
$controller_hosts = hiera('controller_node_ips'),
|
||||
$controller_hosts_names = hiera('controller_node_names', undef),
|
||||
$service_certificate = undef,
|
||||
$internal_certificate = undef,
|
||||
$ssl_cipher_suite = '!SSLv2:kEECDH:kRSA:kEDH:kPSK:+3DES:!aNULL:!eNULL:!MD5:!EXP:!RC4:!SEED:!IDEA:!DES',
|
||||
@ -351,11 +352,11 @@ class tripleo::haproxy (
|
||||
}
|
||||
$ports = merge($default_service_ports, $service_ports)
|
||||
|
||||
$controller_hosts_real = any2array($controller_hosts)
|
||||
if !$controller_hosts_names {
|
||||
$controller_hosts_real = any2array(split($controller_hosts, ','))
|
||||
if ! $controller_hosts_names {
|
||||
$controller_hosts_names_real = $controller_hosts_real
|
||||
} else {
|
||||
$controller_hosts_names_real = any2array($controller_hosts_names)
|
||||
$controller_hosts_names_real = downcase(any2array(split($controller_hosts_names, ',')))
|
||||
}
|
||||
|
||||
# This code will be removed once we switch undercloud and overcloud to use both haproxy & keepalived roles.
|
||||
|
@ -1,414 +0,0 @@
|
||||
# Copyright 2014 Red Hat, Inc.
|
||||
# All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
# == Class: tripleo::loadbalancer
|
||||
#
|
||||
# Configure an HAProxy/keepalived loadbalancer for TripleO.
|
||||
#
|
||||
# === Parameters:
|
||||
#
|
||||
# [*manage_vip*]
|
||||
# Whether to configure keepalived to manage the VIPs or not.
|
||||
# Defaults to true
|
||||
#
|
||||
# [*haproxy_service_manage*]
|
||||
# Will be passed as value for service_manage to HAProxy module.
|
||||
# Defaults to true
|
||||
#
|
||||
# [*haproxy_global_maxconn*]
|
||||
# The value to use as maxconn in the HAProxy global config section.
|
||||
# Defaults to 20480
|
||||
#
|
||||
# [*haproxy_default_maxconn*]
|
||||
# The value to use as maxconn in the HAProxy default config section.
|
||||
# Defaults to 4096
|
||||
#
|
||||
# [*haproxy_default_timeout*]
|
||||
# The value to use as timeout in the HAProxy default config section.
|
||||
# Defaults to [ 'http-request 10s', 'queue 1m', 'connect 10s', 'client 1m', 'server 1m', 'check 10s' ]
|
||||
#
|
||||
# [*haproxy_listen_bind_param*]
|
||||
# A list of params to be added to the HAProxy listener bind directive. By
|
||||
# default the 'transparent' param is added but it should be cleared if
|
||||
# one of the *_virtual_ip addresses is a wildcard, eg. 0.0.0.0
|
||||
# Defaults to [ 'transparent' ]
|
||||
#
|
||||
# [*haproxy_member_options*]
|
||||
# The default options to use for the HAProxy balancer members.
|
||||
# Defaults to [ 'check', 'inter 2000', 'rise 2', 'fall 5' ]
|
||||
#
|
||||
# [*haproxy_log_address*]
|
||||
# The IPv4, IPv6 or filesystem socket path of the syslog server.
|
||||
# Defaults to '/dev/log'
|
||||
#
|
||||
# [*controller_host*]
|
||||
# (Deprecated)Host or group of hosts to load-balance the services
|
||||
# Can be a string or an array.
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*controller_hosts*]
|
||||
# IPs of host or group of hosts to load-balance the services
|
||||
# Can be a string or an array.
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*controller_hosts_names*]
|
||||
# Names of host or group of hosts to load-balance the services
|
||||
# Can be a string or an array.
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*controller_virtual_ip*]
|
||||
# Control IP or group of IPs to bind the pools
|
||||
# Can be a string or an array.
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*control_virtual_interface*]
|
||||
# Interface to bind the control VIP
|
||||
# Can be a string or an array.
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*public_virtual_interface*]
|
||||
# Interface to bind the public VIP
|
||||
# Can be a string or an array.
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*public_virtual_ip*]
|
||||
# Public IP or group of IPs to bind the pools
|
||||
# Can be a string or an array.
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*internal_api_virtual_ip*]
|
||||
# Virtual IP on the internal API network.
|
||||
# A string.
|
||||
# Defaults to false
|
||||
#
|
||||
# [*storage_virtual_ip*]
|
||||
# Virtual IP on the storage network.
|
||||
# A string.
|
||||
# Defaults to false
|
||||
#
|
||||
# [*storage_mgmt_virtual_ip*]
|
||||
# Virtual IP on the storage mgmt network.
|
||||
# A string.
|
||||
# Defaults to false
|
||||
#
|
||||
# [*haproxy_stats_user*]
|
||||
# Username for haproxy stats authentication.
|
||||
# A string.
|
||||
# Defaults to 'admin'
|
||||
#
|
||||
# [*haproxy_stats_password*]
|
||||
# Password for haproxy stats authentication. When set, authentication is
|
||||
# enabled on the haproxy stats endpoint.
|
||||
# A string.
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*service_certificate*]
|
||||
# Filename of an HAProxy-compatible certificate and key file
|
||||
# When set, enables SSL on the public API endpoints using the specified file.
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*internal_certificate*]
|
||||
# Filename of an HAProxy-compatible certificate and key file
|
||||
# When set, enables SSL on the internal API endpoints using the specified file.
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*ssl_cipher_suite*]
|
||||
# The default string describing the list of cipher algorithms ("cipher suite")
|
||||
# that are negotiated during the SSL/TLS handshake for all "bind" lines. This
|
||||
# value comes from the Fedora system crypto policy.
|
||||
# Defaults to '!SSLv2:kEECDH:kRSA:kEDH:kPSK:+3DES:!aNULL:!eNULL:!MD5:!EXP:!RC4:!SEED:!IDEA:!DES'
|
||||
#
|
||||
# [*ssl_options*]
|
||||
# String that sets the default ssl options to force on all "bind" lines.
|
||||
# Defaults to 'no-sslv3'
|
||||
#
|
||||
# [*haproxy_stats_certificate*]
|
||||
# Filename of an HAProxy-compatible certificate and key file
|
||||
# When set, enables SSL on the haproxy stats endpoint using the specified file.
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*keystone_admin*]
|
||||
# (optional) Enable or not Keystone Admin API binding
|
||||
# Defaults to false
|
||||
#
|
||||
# [*keystone_public*]
|
||||
# (optional) Enable or not Keystone Public API binding
|
||||
# Defaults to false
|
||||
#
|
||||
# [*neutron*]
|
||||
# (optional) Enable or not Neutron API binding
|
||||
# Defaults to false
|
||||
#
|
||||
# [*cinder*]
|
||||
# (optional) Enable or not Cinder API binding
|
||||
# Defaults to false
|
||||
#
|
||||
# [*manila*]
|
||||
# (optional) Enable or not Manila API binding
|
||||
# Defaults to false
|
||||
#
|
||||
# [*sahara*]
|
||||
# (optional) Enable or not Sahara API binding
|
||||
# defaults to false
|
||||
#
|
||||
# [*trove*]
|
||||
# (optional) Enable or not Trove API binding
|
||||
# defaults to false
|
||||
#
|
||||
# [*glance_api*]
|
||||
# (optional) Enable or not Glance API binding
|
||||
# Defaults to false
|
||||
#
|
||||
# [*glance_registry*]
|
||||
# (optional) Enable or not Glance registry binding
|
||||
# Defaults to false
|
||||
#
|
||||
# [*nova_osapi*]
|
||||
# (optional) Enable or not Nova API binding
|
||||
# Defaults to false
|
||||
#
|
||||
# [*nova_metadata*]
|
||||
# (optional) Enable or not Nova metadata binding
|
||||
# Defaults to false
|
||||
#
|
||||
# [*nova_novncproxy*]
|
||||
# (optional) Enable or not Nova novncproxy binding
|
||||
# Defaults to false
|
||||
#
|
||||
# [*ceilometer*]
|
||||
# (optional) Enable or not Ceilometer API binding
|
||||
# Defaults to false
|
||||
#
|
||||
# [*aodh*]
|
||||
# (optional) Enable or not Aodh API binding
|
||||
# Defaults to false
|
||||
#
|
||||
# [*gnocchi*]
|
||||
# (optional) Enable or not Gnocchi API binding
|
||||
# Defaults to false
|
||||
#
|
||||
# [*swift_proxy_server*]
|
||||
# (optional) Enable or not Swift API binding
|
||||
# Defaults to false
|
||||
#
|
||||
# [*heat_api*]
|
||||
# (optional) Enable or not Heat API binding
|
||||
# Defaults to false
|
||||
#
|
||||
# [*heat_cloudwatch*]
|
||||
# (optional) Enable or not Heat Cloudwatch API binding
|
||||
# Defaults to false
|
||||
#
|
||||
# [*heat_cfn*]
|
||||
# (optional) Enable or not Heat CFN API binding
|
||||
# Defaults to false
|
||||
#
|
||||
# [*horizon*]
|
||||
# (optional) Enable or not Horizon dashboard binding
|
||||
# Defaults to false
|
||||
#
|
||||
# [*ironic*]
|
||||
# (optional) Enable or not Ironic API binding
|
||||
# Defaults to false
|
||||
#
|
||||
# [*mysql*]
|
||||
# (optional) Enable or not MySQL Galera binding
|
||||
# Defaults to false
|
||||
#
|
||||
# [*mysql_clustercheck*]
|
||||
# (optional) Enable check via clustercheck for mysql
|
||||
# Defaults to false
|
||||
#
|
||||
# [*rabbitmq*]
|
||||
# (optional) Enable or not RabbitMQ binding
|
||||
# Defaults to false
|
||||
#
|
||||
# [*redis*]
|
||||
# (optional) Enable or not Redis binding
|
||||
# Defaults to false
|
||||
#
|
||||
# [*redis_password*]
|
||||
# (optional) Password for Redis authentication, eventually needed by the
|
||||
# specific monitoring we do from HAProxy for Redis
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*midonet_api*]
|
||||
# (optional) Enable or not MidoNet API binding
|
||||
# Defaults to false
|
||||
#
|
||||
# [*service_ports*]
|
||||
# (optional) Hash that contains the values to override from the service ports
|
||||
# The available keys to modify the services' ports are:
|
||||
# 'aodh_api_port' (Defaults to 8042)
|
||||
# 'aodh_api_ssl_port' (Defaults to 13042)
|
||||
# 'ceilometer_api_port' (Defaults to 8777)
|
||||
# 'ceilometer_api_ssl_port' (Defaults to 13777)
|
||||
# 'cinder_api_port' (Defaults to 8776)
|
||||
# 'cinder_api_ssl_port' (Defaults to 13776)
|
||||
# 'glance_api_port' (Defaults to 9292)
|
||||
# 'glance_api_ssl_port' (Defaults to 13292)
|
||||
# 'glance_registry_port' (Defaults to 9191)
|
||||
# 'gnocchi_api_port' (Defaults to 8041)
|
||||
# 'gnocchi_api_ssl_port' (Defaults to 13041)
|
||||
# 'heat_api_port' (Defaults to 8004)
|
||||
# 'heat_api_ssl_port' (Defaults to 13004)
|
||||
# 'heat_cfn_port' (Defaults to 8000)
|
||||
# 'heat_cfn_ssl_port' (Defaults to 13005)
|
||||
# 'heat_cw_port' (Defaults to 8003)
|
||||
# 'heat_cw_ssl_port' (Defaults to 13003)
|
||||
# 'ironic_api_port' (Defaults to 6385)
|
||||
# 'ironic_api_ssl_port' (Defaults to 13385)
|
||||
# 'keystone_admin_api_port' (Defaults to 35357)
|
||||
# 'keystone_admin_api_ssl_port' (Defaults to 13357)
|
||||
# 'keystone_public_api_port' (Defaults to 5000)
|
||||
# 'keystone_public_api_ssl_port' (Defaults to 13000)
|
||||
# 'manila_api_port' (Defaults to 8786)
|
||||
# 'manila_api_ssl_port' (Defaults to 13786)
|
||||
# 'neutron_api_port' (Defaults to 9696)
|
||||
# 'neutron_api_ssl_port' (Defaults to 13696)
|
||||
# 'nova_api_port' (Defaults to 8774)
|
||||
# 'nova_api_ssl_port' (Defaults to 13774)
|
||||
# 'nova_metadata_port' (Defaults to 8775)
|
||||
# 'nova_novnc_port' (Defaults to 6080)
|
||||
# 'nova_novnc_ssl_port' (Defaults to 13080)
|
||||
# 'sahara_api_port' (Defaults to 8386)
|
||||
# 'sahara_api_ssl_port' (Defaults to 13386)
|
||||
# 'swift_proxy_port' (Defaults to 8080)
|
||||
# 'swift_proxy_ssl_port' (Defaults to 13808)
|
||||
# 'trove_api_port' (Defaults to 8779)
|
||||
# 'trove_api_ssl_port' (Defaults to 13779)
|
||||
# Defaults to {}
|
||||
#
|
||||
class tripleo::loadbalancer (
|
||||
$controller_virtual_ip,
|
||||
$control_virtual_interface,
|
||||
$public_virtual_interface,
|
||||
$public_virtual_ip,
|
||||
$internal_api_virtual_ip = false,
|
||||
$storage_virtual_ip = false,
|
||||
$storage_mgmt_virtual_ip = false,
|
||||
$manage_vip = true,
|
||||
$haproxy_service_manage = true,
|
||||
$haproxy_global_maxconn = 20480,
|
||||
$haproxy_default_maxconn = 4096,
|
||||
$haproxy_default_timeout = [ 'http-request 10s', 'queue 1m', 'connect 10s', 'client 1m', 'server 1m', 'check 10s' ],
|
||||
$haproxy_listen_bind_param = [ 'transparent' ],
|
||||
$haproxy_member_options = [ 'check', 'inter 2000', 'rise 2', 'fall 5' ],
|
||||
$haproxy_log_address = '/dev/log',
|
||||
$haproxy_stats_user = 'admin',
|
||||
$haproxy_stats_password = undef,
|
||||
$controller_host = undef,
|
||||
$controller_hosts = undef,
|
||||
$controller_hosts_names = undef,
|
||||
$service_certificate = undef,
|
||||
$internal_certificate = undef,
|
||||
$ssl_cipher_suite = '!SSLv2:kEECDH:kRSA:kEDH:kPSK:+3DES:!aNULL:!eNULL:!MD5:!EXP:!RC4:!SEED:!IDEA:!DES',
|
||||
$ssl_options = 'no-sslv3',
|
||||
$haproxy_stats_certificate = undef,
|
||||
$keystone_admin = false,
|
||||
$keystone_public = false,
|
||||
$neutron = false,
|
||||
$cinder = false,
|
||||
$sahara = false,
|
||||
$trove = false,
|
||||
$manila = false,
|
||||
$glance_api = false,
|
||||
$glance_registry = false,
|
||||
$nova_osapi = false,
|
||||
$nova_metadata = false,
|
||||
$nova_novncproxy = false,
|
||||
$ceilometer = false,
|
||||
$aodh = false,
|
||||
$gnocchi = false,
|
||||
$swift_proxy_server = false,
|
||||
$heat_api = false,
|
||||
$heat_cloudwatch = false,
|
||||
$heat_cfn = false,
|
||||
$horizon = false,
|
||||
$ironic = false,
|
||||
$mysql = false,
|
||||
$mysql_clustercheck = false,
|
||||
$rabbitmq = false,
|
||||
$redis = false,
|
||||
$redis_password = undef,
|
||||
$midonet_api = false,
|
||||
$service_ports = {}
|
||||
) {
|
||||
warning('This class is going to be dropped during Newton cycle, replaced by tripleo::haproxy and tripleo::keepalived.')
|
||||
class { '::tripleo::haproxy':
|
||||
controller_virtual_ip => $controller_virtual_ip,
|
||||
public_virtual_ip => $public_virtual_ip,
|
||||
# Force to false because we already declare ::tripleo::keepalived later in this manifest to kep
|
||||
# old hieradata binding.
|
||||
keepalived => false,
|
||||
haproxy_service_manage => $haproxy_service_manage,
|
||||
haproxy_global_maxconn => $haproxy_global_maxconn,
|
||||
haproxy_default_maxconn => $haproxy_default_maxconn,
|
||||
haproxy_default_timeout => $haproxy_default_timeout,
|
||||
haproxy_listen_bind_param => $haproxy_listen_bind_param,
|
||||
haproxy_member_options => $haproxy_member_options,
|
||||
haproxy_log_address => $haproxy_log_address,
|
||||
haproxy_stats_user => $haproxy_stats_user,
|
||||
haproxy_stats_password => $haproxy_stats_password,
|
||||
controller_host => $controller_host,
|
||||
controller_hosts => $controller_hosts,
|
||||
controller_hosts_names => $controller_hosts_names,
|
||||
service_certificate => $service_certificate,
|
||||
internal_certificate => $internal_certificate,
|
||||
ssl_cipher_suite => $ssl_cipher_suite,
|
||||
ssl_options => $ssl_options,
|
||||
haproxy_stats_certificate => $haproxy_stats_certificate,
|
||||
keystone_admin => $keystone_admin,
|
||||
keystone_public => $keystone_public,
|
||||
neutron => $neutron,
|
||||
cinder => $cinder,
|
||||
sahara => $sahara,
|
||||
trove => $trove,
|
||||
manila => $manila,
|
||||
glance_api => $glance_api,
|
||||
glance_registry => $glance_registry,
|
||||
nova_osapi => $nova_osapi,
|
||||
nova_metadata => $nova_metadata,
|
||||
nova_novncproxy => $nova_novncproxy,
|
||||
ceilometer => $ceilometer,
|
||||
aodh => $aodh,
|
||||
gnocchi => $gnocchi,
|
||||
swift_proxy_server => $swift_proxy_server,
|
||||
heat_api => $heat_api,
|
||||
heat_cloudwatch => $heat_cloudwatch,
|
||||
heat_cfn => $heat_cfn,
|
||||
horizon => $horizon,
|
||||
ironic => $ironic,
|
||||
mysql => $mysql,
|
||||
mysql_clustercheck => $mysql_clustercheck,
|
||||
rabbitmq => $rabbitmq,
|
||||
redis => $redis,
|
||||
redis_password => $redis_password,
|
||||
midonet_api => $midonet_api,
|
||||
service_ports => $service_ports,
|
||||
}
|
||||
|
||||
if $manage_vip {
|
||||
class { '::tripleo::keepalived':
|
||||
controller_virtual_ip => $controller_virtual_ip,
|
||||
control_virtual_interface => $public_virtual_interface,
|
||||
public_virtual_interface => $public_virtual_interface,
|
||||
public_virtual_ip => $public_virtual_ip,
|
||||
internal_api_virtual_ip => $internal_api_virtual_ip,
|
||||
storage_virtual_ip => $storage_virtual_ip,
|
||||
storage_mgmt_virtual_ip => $storage_mgmt_virtual_ip,
|
||||
}
|
||||
}
|
||||
}
|
@ -1,101 +0,0 @@
|
||||
# Copyright 2014 Red Hat, Inc.
|
||||
# All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
# == Class: tripleo::loadbalancer::endpoint
|
||||
#
|
||||
# Configure a HAProxy listen endpoint
|
||||
#
|
||||
# [*internal_ip*]
|
||||
# The IP in which the proxy endpoint will be listening in the internal
|
||||
# network.
|
||||
#
|
||||
# [*service_port*]
|
||||
# The default port on which the endpoint will be listening.
|
||||
#
|
||||
# [*ip_addresses*]
|
||||
# The ordered list of IPs to be used to contact the balancer member.
|
||||
#
|
||||
# [*server_names*]
|
||||
# The names of the balancer members, which usually should be the hostname.
|
||||
#
|
||||
# [*member_options*]
|
||||
# Options for the balancer member, specified after the server declaration.
|
||||
# These should go in the member's configuration block.
|
||||
#
|
||||
# [*public_virtual_ip*]
|
||||
# Address in which the proxy endpoint will be listening in the public network.
|
||||
# If this service is internal only this should be ommited.
|
||||
# Defaults to undef.
|
||||
#
|
||||
# [*mode*]
|
||||
# HAProxy mode in which the endpoint will be listening. This can be undef,
|
||||
# tcp, http or health.
|
||||
# Defaults to undef.
|
||||
#
|
||||
# [*haproxy_listen_bind_param*]
|
||||
# A list of params to be added to the HAProxy listener bind directive.
|
||||
# Defaults to undef.
|
||||
#
|
||||
# [*listen_options*]
|
||||
# Options specified for the listening service's configuration block (in
|
||||
# HAproxy terms, the frontend).
|
||||
# defaults to {'option' => []}
|
||||
#
|
||||
# [*public_ssl_port*]
|
||||
# The port used for the public proxy endpoint if it differs from the default
|
||||
# one. This is used only if SSL is enabled, and it's used in order to avoid
|
||||
# overriding with the internal proxy endpoint (which could happen if they were
|
||||
# in the same network).
|
||||
# Defaults to undef.
|
||||
#
|
||||
# [*public_certificate*]
|
||||
# Certificate path used to enable TLS for the public proxy endpoint.
|
||||
# Defaults to undef.
|
||||
#
|
||||
# [*internal_certificate*]
|
||||
# Certificate path used to enable TLS for the internal proxy endpoint.
|
||||
# Defaults to undef.
|
||||
#
|
||||
define tripleo::loadbalancer::endpoint (
|
||||
$internal_ip,
|
||||
$service_port,
|
||||
$ip_addresses,
|
||||
$server_names,
|
||||
$member_options,
|
||||
$public_virtual_ip = undef,
|
||||
$mode = undef,
|
||||
$haproxy_listen_bind_param = undef,
|
||||
$listen_options = {
|
||||
'option' => [],
|
||||
},
|
||||
$public_ssl_port = undef,
|
||||
$public_certificate = undef,
|
||||
$internal_certificate = undef,
|
||||
) {
|
||||
::tripleo::haproxy::endpoint { $name:
|
||||
internal_ip => $internal_ip,
|
||||
service_port => $service_port,
|
||||
ip_addresses => $ip_addresses,
|
||||
server_names => $server_names,
|
||||
member_options => $member_options,
|
||||
public_virtual_ip => $public_virtual_ip,
|
||||
mode => $mode,
|
||||
haproxy_listen_bind_param => $haproxy_listen_bind_param,
|
||||
listen_options => $listen_options,
|
||||
public_ssl_port => $public_ssl_port,
|
||||
public_certificate => $public_certificate,
|
||||
internal_certificate => $internal_certificate
|
||||
}
|
||||
}
|
@ -27,36 +27,14 @@
|
||||
# (Optional) Whether or not loadbalancer is enabled.
|
||||
# Defaults to hiera('enable_load_balancer', true).
|
||||
#
|
||||
# [*controller_node_ips*]
|
||||
# (Optional) List of IPs for controller nodes.
|
||||
# Defaults to split(hiera('controller_node_ips'), ',')).
|
||||
#
|
||||
# [*controller_node_names*]
|
||||
# (Optional) List of hostnames for controller nodes.
|
||||
# Defaults to split(downcase(hiera('controller_node_names')), ',').
|
||||
#
|
||||
class tripleo::profile::base::loadbalancer (
|
||||
$enable_load_balancer = hiera('enable_load_balancer', true),
|
||||
$controller_node_ips = split(hiera('controller_node_ips'), ','),
|
||||
$controller_node_names = split(downcase(hiera('controller_node_names')), ','),
|
||||
$step = hiera('step'),
|
||||
$enable_load_balancer = hiera('enable_load_balancer', true),
|
||||
$step = hiera('step'),
|
||||
) {
|
||||
|
||||
if $step >= 1 {
|
||||
if $enable_load_balancer {
|
||||
# TODO(emilien): remove this conditional once
|
||||
# https://review.openstack.org/#/c/320411/ is merged.
|
||||
if hiera('tripleo::loadbalancer::keystone_admin', undef) {
|
||||
class { '::tripleo::loadbalancer':
|
||||
controller_hosts => $controller_node_ips,
|
||||
controller_hosts_names => $controller_node_names,
|
||||
}
|
||||
} else {
|
||||
class { '::tripleo::haproxy':
|
||||
controller_hosts => $controller_node_ips,
|
||||
controller_hosts_names => $controller_node_names,
|
||||
}
|
||||
}
|
||||
include ::tripleo::haproxy
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -68,7 +68,7 @@
|
||||
# Defaults to hiera('step')
|
||||
#
|
||||
class tripleo::profile::base::neutron::midonet (
|
||||
$vip = hiera('public_virtual_ip', 'tripleo::loadbalancer::public_virtual_ip'),
|
||||
$vip = hiera('public_virtual_ip'),
|
||||
$keystone_admin_token = hiera('keystone::admin_token', ''),
|
||||
$zookeeper_client_ip = hiera('neutron::bind_host', ''),
|
||||
$zookeeper_hostnames = hiera('controller_node_names', ''),
|
||||
|
@ -54,67 +54,45 @@ class tripleo::profile::pacemaker::loadbalancer (
|
||||
clone_params => true,
|
||||
}
|
||||
|
||||
# TODO(emilien): clean-up old parameter references when
|
||||
# https://review.openstack.org/#/c/320411/ is merged.
|
||||
if hiera('tripleo::loadbalancer::controller_virtual_ip', undef) {
|
||||
$control_vip_real = hiera('tripleo::loadbalancer::controller_virtual_ip')
|
||||
} else {
|
||||
$control_vip_real = hiera('controller_virtual_ip')
|
||||
}
|
||||
$control_vip = hiera('controller_virtual_ip')
|
||||
tripleo::pacemaker::haproxy_with_vip { 'haproxy_and_control_vip':
|
||||
vip_name => 'control',
|
||||
ip_address => $control_vip_real,
|
||||
ip_address => $control_vip,
|
||||
}
|
||||
|
||||
if hiera('tripleo::loadbalancer::public_virtual_ip', undef) {
|
||||
$public_vip_real = hiera('tripleo::loadbalancer::public_virtual_ip')
|
||||
} else {
|
||||
$public_vip_real = hiera('public_virtual_ip')
|
||||
}
|
||||
$public_vip = hiera('public_virtual_ip')
|
||||
tripleo::pacemaker::haproxy_with_vip { 'haproxy_and_public_vip':
|
||||
ensure => $public_vip_real and $public_vip_real != $control_vip_real,
|
||||
ensure => $public_vip and $public_vip != $control_vip,
|
||||
vip_name => 'public',
|
||||
ip_address => $public_vip_real,
|
||||
ip_address => $public_vip,
|
||||
}
|
||||
|
||||
$redis_vip = hiera('redis_vip')
|
||||
tripleo::pacemaker::haproxy_with_vip { 'haproxy_and_redis_vip':
|
||||
ensure => $redis_vip and $redis_vip != $control_vip_real,
|
||||
ensure => $redis_vip and $redis_vip != $control_vip,
|
||||
vip_name => 'redis',
|
||||
ip_address => $redis_vip,
|
||||
}
|
||||
|
||||
if hiera('tripleo::loadbalancer::internal_api_virtual_ip', undef) {
|
||||
$internal_api_vip_real = hiera('tripleo::loadbalancer::internal_api_virtual_ip')
|
||||
} else {
|
||||
$internal_api_vip_real = hiera('internal_api_virtual_ip')
|
||||
}
|
||||
$internal_api_vip = hiera('internal_api_virtual_ip')
|
||||
tripleo::pacemaker::haproxy_with_vip { 'haproxy_and_internal_api_vip':
|
||||
ensure => $internal_api_vip_real and $internal_api_vip_real != $control_vip_real,
|
||||
ensure => $internal_api_vip and $internal_api_vip != $control_vip,
|
||||
vip_name => 'internal_api',
|
||||
ip_address => $internal_api_vip_real,
|
||||
ip_address => $internal_api_vip,
|
||||
}
|
||||
|
||||
if hiera('tripleo::loadbalancer::storage_virtual_ip', undef) {
|
||||
$storage_vip_real = hiera('tripleo::loadbalancer::storage_virtual_ip')
|
||||
} else {
|
||||
$storage_vip_real = hiera('storage_virtual_ip')
|
||||
}
|
||||
$storage_vip = hiera('storage_virtual_ip')
|
||||
tripleo::pacemaker::haproxy_with_vip { 'haproxy_and_storage_vip':
|
||||
ensure => $storage_vip_real and $storage_vip_real != $control_vip_real,
|
||||
ensure => $storage_vip and $storage_vip != $control_vip,
|
||||
vip_name => 'storage',
|
||||
ip_address => $storage_vip_real,
|
||||
ip_address => $storage_vip,
|
||||
}
|
||||
|
||||
if hiera('tripleo::loadbalancer::storage_mgmt_virtual_ip', undef) {
|
||||
$storage_mgmt_vip_real = hiera('tripleo::loadbalancer::storage_mgmt_virtual_ip')
|
||||
} else {
|
||||
$storage_mgmt_vip_real = hiera('storage_mgmt_virtual_ip')
|
||||
}
|
||||
$storage_mgmt_vip = hiera('storage_mgmt_virtual_ip')
|
||||
tripleo::pacemaker::haproxy_with_vip { 'haproxy_and_storage_mgmt_vip':
|
||||
ensure => $storage_mgmt_vip_real and $storage_mgmt_vip_real != $control_vip_real,
|
||||
ensure => $storage_mgmt_vip and $storage_mgmt_vip != $control_vip,
|
||||
vip_name => 'storage_mgmt',
|
||||
ip_address => $storage_mgmt_vip_real,
|
||||
ip_address => $storage_mgmt_vip,
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user