summaryrefslogtreecommitdiffstats
path: root/manifests/pacemaker
diff options
context:
space:
mode:
authorDamien Ciabrini <dciabrin@redhat.com>2017-04-21 15:09:31 +0200
committerMichele Baldessari <michele@acksyn.org>2017-05-25 14:37:17 +0200
commitc21c573fd5156c32ffaece3b101d5424887c398a (patch)
tree42e3dfa92778755f406c2b52be8c93268472e4eb /manifests/pacemaker
parent066dc2cecf5a30d4a0cf541b32a2ae45ae5de30a (diff)
Puppet module to deploy HAProxy bundle for HA
This module is used by tripleo-heat-templates to configure and deploy Kolla-based haproxy containers managed by pacemaker. We use short-lived containers that call pcs via puppet to create the needed pacemaker resources, properties and constraints. Co-Authored-By: Michele Baldesari <michele@acksyn.org> Partial-Bug: #1692908 Depends-On: I44fbd7f89ab22b72e8d3fc0a0e3fe54a9418a60f Depends-On: Ie9b7e7d2a3cec4b121915a17c1e809e4ec950e7f Change-Id: Ifcf890a88ef003d3ab754cb677cbf34ba8db9312
Diffstat (limited to 'manifests/pacemaker')
-rw-r--r--manifests/pacemaker/haproxy_with_vip.pp18
1 files changed, 15 insertions, 3 deletions
diff --git a/manifests/pacemaker/haproxy_with_vip.pp b/manifests/pacemaker/haproxy_with_vip.pp
index 1fc3ff7..606ac26 100644
--- a/manifests/pacemaker/haproxy_with_vip.pp
+++ b/manifests/pacemaker/haproxy_with_vip.pp
@@ -69,6 +69,12 @@ define tripleo::pacemaker::haproxy_with_vip(
$ipv6_addrlabel = ''
}
+ $haproxy_in_container = hiera('haproxy_docker', false)
+ $constraint_target_name = $haproxy_in_container ? {
+ true => 'haproxy-bundle',
+ default => 'haproxy-clone'
+ }
+
pacemaker::resource::ip { "${vip_name}_vip":
ip_address => $ip_address,
cidr_netmask => $netmask,
@@ -77,9 +83,10 @@ define tripleo::pacemaker::haproxy_with_vip(
location_rule => $location_rule,
tries => $pcs_tries,
}
+
pacemaker::constraint::order { "${vip_name}_vip-then-haproxy":
first_resource => "ip-${ip_address}",
- second_resource => 'haproxy-clone',
+ second_resource => $constraint_target_name,
first_action => 'start',
second_action => 'start',
constraint_params => 'kind=Optional',
@@ -87,13 +94,18 @@ define tripleo::pacemaker::haproxy_with_vip(
}
pacemaker::constraint::colocation { "${vip_name}_vip-with-haproxy":
source => "ip-${ip_address}",
- target => 'haproxy-clone',
+ target => $constraint_target_name,
score => 'INFINITY',
tries => $pcs_tries,
}
+ $service_resource = $haproxy_in_container ? {
+ true => Pacemaker::Resource::Bundle['haproxy-bundle'],
+ default => Pacemaker::Resource::Service['haproxy']
+ }
+
Pacemaker::Resource::Ip["${vip_name}_vip"] ->
- Pacemaker::Resource::Service['haproxy'] ->
+ $service_resource ->
Pacemaker::Constraint::Order["${vip_name}_vip-then-haproxy"] ->
Pacemaker::Constraint::Colocation["${vip_name}_vip-with-haproxy"]
}