1 heat_template_version: pike
4 Pacemaker service configured with Puppet
9 description: Mapping of service_name -> network name. Typically set
10 via parameter_defaults in the resource registry. This
11 mapping overrides those in ServiceNetMapDefaults.
18 description: Role name on which the service is applied
22 description: Parameters specific to the role
26 description: Mapping of service endpoint -> protocol. Typically set
27 via parameter_defaults in the resource registry.
29 MonitoringSubscriptionPacemaker:
30 default: 'overcloud-pacemaker'
34 description: Enable IPv6 in Corosync
38 description: Whether to enable fencing in Pacemaker or not.
40 PacemakerRemoteAuthkey:
42 description: The authkey for the pacemaker remote service.
47 description: The password for the 'pcsd' user for pacemaker.
52 description: Number of tries for cluster settling. This has the
53 same default as the pacemaker puppet module. Override
54 to a smaller value when in need to replace a controller node.
59 Pacemaker fencing configuration. The JSON should have
60 the following structure:
64 "agent": "AGENT_NAME",
65 "host_mac": "HOST_MAC_ADDRESS",
66 "params": {"PARAM_NAME": "PARAM_VALUE"}
75 "host_mac": "52:54:00:aa:bb:cc",
77 "multicast_address": "225.0.0.12",
78 "port": "baremetal_0",
80 "manage_key_file": true,
81 "key_file": "/etc/fence_xvm.key",
82 "key_file_password": "abcdef"
88 PacemakerLoggingSource:
92 path: /var/log/pacemaker.log,/var/log/cluster/corosync.log
94 /^(?<time>[^ ]*\s*[^ ]* [^ ]*)
101 description: Whether to deploy a LoadBalancer on the Controller
105 type: comma_delimited_list
106 description: List of resources managed by pacemaker
107 default: ['rabbitmq', 'galera']
111 description: Role data for the Pacemaker role.
113 service_name: pacemaker
114 monitoring_subscription: {get_param: MonitoringSubscriptionPacemaker}
117 logging_source: {get_param: PacemakerLoggingSource}
119 pacemaker::corosync::cluster_name: 'tripleo_cluster'
120 pacemaker::corosync::manage_fw: false
121 pacemaker::resource_defaults::defaults:
122 resource-stickiness: { value: INFINITY }
123 corosync_token_timeout: 10000
124 pacemaker::corosync::settle_tries: {get_param: CorosyncSettleTries}
125 tripleo.pacemaker.firewall_rules:
135 corosync_ipv6: {get_param: CorosyncIPv6}
136 tripleo::fencing::config: {get_param: FencingConfig}
137 enable_fencing: {get_param: EnableFencing}
140 expression: $.data.passwords.where($ != '').first()
143 - {get_param: PcsdPassword}
144 - {get_param: [DefaultPasswords, pcsd_password]}
145 tripleo::profile::base::pacemaker::remote_authkey: {get_param: PacemakerRemoteAuthkey}
147 include ::tripleo::profile::base::pacemaker
149 - name: Check pacemaker cluster running before upgrade
150 tags: step0,validation
151 pacemaker_cluster: state=online check_and_fail=true
154 - name: Stop pacemaker cluster
156 pacemaker_cluster: state=offline
157 - name: Start pacemaker cluster
159 pacemaker_cluster: state=online
160 - name: Check pacemaker resource
163 resource: "{{ item }}"
165 with_items: {get_param: PacemakerResources}
166 - name: Check pacemaker haproxy resource
171 when: {get_param: EnableLoadBalancer}