summaryrefslogtreecommitdiffstats
path: root/manifests/pacemaker
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/pacemaker')
-rw-r--r--manifests/pacemaker/haproxy_with_vip.pp38
1 files changed, 29 insertions, 9 deletions
diff --git a/manifests/pacemaker/haproxy_with_vip.pp b/manifests/pacemaker/haproxy_with_vip.pp
index a27b94b..606ac26 100644
--- a/manifests/pacemaker/haproxy_with_vip.pp
+++ b/manifests/pacemaker/haproxy_with_vip.pp
@@ -57,21 +57,36 @@ define tripleo::pacemaker::haproxy_with_vip(
$ensure = true)
{
if($ensure) {
+ # NB: Until the IPaddr2 RA has a fix for https://bugzilla.redhat.com/show_bug.cgi?id=1445628
+ # we need to specify the nic when creating the ipv6 vip.
if is_ipv6_address($ip_address) {
- $netmask = '64'
+ $netmask = '128'
+ $nic = interface_for_ip($ip_address)
+ $ipv6_addrlabel = '99'
} else {
- $netmask = '32'
+ $netmask = '32'
+ $nic = ''
+ $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,
- location_rule => $location_rule,
- tries => $pcs_tries,
+ ip_address => $ip_address,
+ cidr_netmask => $netmask,
+ nic => $nic,
+ ipv6_addrlabel => $ipv6_addrlabel,
+ 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',
@@ -79,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"]
}