From b0ec457332912476618c55752041f4440dd2cf68 Mon Sep 17 00:00:00 2001 From: Emilien Macchi Date: Wed, 25 May 2016 16:24:51 -0400 Subject: Update profiles for loadbalancer split Update loadbalancer (nonha and ha) and midonet profiles to consume new tripleo::haproxy class. Keep it backward compatible with old interface until we update THT by using stdlib function: pick. So we first try to get new parameters otherwise we fallback to the old interface. Change-Id: I46ed8348dc990d9aa0d896e1abea3b30a8292634 --- manifests/profile/base/loadbalancer.pp | 15 ++++++-- manifests/profile/base/neutron/midonet.pp | 4 +-- manifests/profile/pacemaker/loadbalancer.pp | 54 ++++++++++++++++++++--------- 3 files changed, 52 insertions(+), 21 deletions(-) (limited to 'manifests') diff --git a/manifests/profile/base/loadbalancer.pp b/manifests/profile/base/loadbalancer.pp index 2a961c4..e5a0f48 100644 --- a/manifests/profile/base/loadbalancer.pp +++ b/manifests/profile/base/loadbalancer.pp @@ -44,9 +44,18 @@ class tripleo::profile::base::loadbalancer ( if $step >= 1 { if $enable_load_balancer { - class { '::tripleo::loadbalancer': - controller_hosts => $controller_node_ips, - controller_hosts_names => $controller_node_names, + # 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, + } } } } diff --git a/manifests/profile/base/neutron/midonet.pp b/manifests/profile/base/neutron/midonet.pp index 7374c57..60aa006 100644 --- a/manifests/profile/base/neutron/midonet.pp +++ b/manifests/profile/base/neutron/midonet.pp @@ -20,7 +20,7 @@ # # [*vip*] # (Optional) Public Virtual IP Address for this cloud -# Defaults to hiera('tripleo::loadbalancer::public_virtual_ip') +# Defaults to hiera('public_virtual_ip') # # [*keystone_admin_token*] # (Optional) The Keystone Admin Token @@ -68,7 +68,7 @@ # Defaults to hiera('step') # class tripleo::profile::base::neutron::midonet ( - $vip = hiera('tripleo::loadbalancer::public_virtual_ip', ''), + $vip = hiera('public_virtual_ip', 'tripleo::loadbalancer::public_virtual_ip'), $keystone_admin_token = hiera('keystone::admin_token', ''), $zookeeper_client_ip = hiera('neutron::bind_host', ''), $zookeeper_hostnames = hiera('controller_node_names', ''), diff --git a/manifests/profile/pacemaker/loadbalancer.pp b/manifests/profile/pacemaker/loadbalancer.pp index 926b482..2f41769 100644 --- a/manifests/profile/pacemaker/loadbalancer.pp +++ b/manifests/profile/pacemaker/loadbalancer.pp @@ -46,7 +46,7 @@ class tripleo::profile::pacemaker::loadbalancer ( } if $step >= 2 and $pacemaker_master and $enable_load_balancer { - # FIXME: we should not have to access tripleo::loadbalancer class + # FIXME: we should not have to access tripleo::haproxy class # parameters here to configure pacemaker VIPs. The configuration # of pacemaker VIPs could move into puppet-tripleo or we should # make use of less specific hiera parameters here for the settings. @@ -54,45 +54,67 @@ class tripleo::profile::pacemaker::loadbalancer ( clone_params => true, } - $control_vip = hiera('tripleo::loadbalancer::controller_virtual_ip') + # 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') + } tripleo::pacemaker::haproxy_with_vip { 'haproxy_and_control_vip': vip_name => 'control', - ip_address => $control_vip, + ip_address => $control_vip_real, } - $public_vip = hiera('tripleo::loadbalancer::public_virtual_ip') + 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') + } tripleo::pacemaker::haproxy_with_vip { 'haproxy_and_public_vip': - ensure => $public_vip and $public_vip != $control_vip, + ensure => $public_vip_real and $public_vip_real != $control_vip_real, vip_name => 'public', - ip_address => $public_vip, + ip_address => $public_vip_real, } $redis_vip = hiera('redis_vip') tripleo::pacemaker::haproxy_with_vip { 'haproxy_and_redis_vip': - ensure => $redis_vip and $redis_vip != $control_vip, + ensure => $redis_vip and $redis_vip != $control_vip_real, vip_name => 'redis', ip_address => $redis_vip, } - $internal_api_vip = hiera('tripleo::loadbalancer::internal_api_virtual_ip') + 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') + } tripleo::pacemaker::haproxy_with_vip { 'haproxy_and_internal_api_vip': - ensure => $internal_api_vip and $internal_api_vip != $control_vip, + ensure => $internal_api_vip_real and $internal_api_vip_real != $control_vip_real, vip_name => 'internal_api', - ip_address => $internal_api_vip, + ip_address => $internal_api_vip_real, } - $storage_vip = hiera('tripleo::loadbalancer::storage_virtual_ip') + 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') + } tripleo::pacemaker::haproxy_with_vip { 'haproxy_and_storage_vip': - ensure => $storage_vip and $storage_vip != $control_vip, + ensure => $storage_vip_real and $storage_vip_real != $control_vip_real, vip_name => 'storage', - ip_address => $storage_vip, + ip_address => $storage_vip_real, } - $storage_mgmt_vip = hiera('tripleo::loadbalancer::storage_mgmt_virtual_ip') + 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') + } tripleo::pacemaker::haproxy_with_vip { 'haproxy_and_storage_mgmt_vip': - ensure => $storage_mgmt_vip and $storage_mgmt_vip != $control_vip, + ensure => $storage_mgmt_vip_real and $storage_mgmt_vip_real != $control_vip_real, vip_name => 'storage_mgmt', - ip_address => $storage_mgmt_vip, + ip_address => $storage_mgmt_vip_real, } } -- cgit 1.2.3-korg