1 heat_template_version: pike
4 Pacemaker service configured with Puppet
9 description: Dictionary packing service data
13 description: Mapping of service_name -> network name. Typically set
14 via parameter_defaults in the resource registry. This
15 mapping overrides those in ServiceNetMapDefaults.
22 description: Role name on which the service is applied
26 description: Parameters specific to the role
30 description: Mapping of service endpoint -> protocol. Typically set
31 via parameter_defaults in the resource registry.
33 MonitoringSubscriptionPacemaker:
34 default: 'overcloud-pacemaker'
38 description: Enable IPv6 in Corosync
42 description: Whether to enable fencing in Pacemaker or not.
44 PacemakerRemoteAuthkey:
46 description: The authkey for the pacemaker remote service.
51 description: The password for the 'pcsd' user for pacemaker.
56 description: Number of tries for cluster settling. This has the
57 same default as the pacemaker puppet module. Override
58 to a smaller value when in need to replace a controller node.
63 Pacemaker fencing configuration. The JSON should have
64 the following structure:
68 "agent": "AGENT_NAME",
69 "host_mac": "HOST_MAC_ADDRESS",
70 "params": {"PARAM_NAME": "PARAM_VALUE"}
79 "host_mac": "52:54:00:aa:bb:cc",
81 "multicast_address": "225.0.0.12",
82 "port": "baremetal_0",
84 "manage_key_file": true,
85 "key_file": "/etc/fence_xvm.key",
86 "key_file_password": "abcdef"
92 PacemakerLoggingSource:
96 path: /var/log/pacemaker.log,/var/log/cluster/corosync.log
98 /^(?<time>[^ ]*\s*[^ ]* [^ ]*)
105 description: Whether to deploy a LoadBalancer on the Controller
109 type: comma_delimited_list
110 description: List of resources managed by pacemaker
111 default: ['rabbitmq', 'galera']
115 description: Role data for the Pacemaker role.
117 service_name: pacemaker
118 monitoring_subscription: {get_param: MonitoringSubscriptionPacemaker}
121 logging_source: {get_param: PacemakerLoggingSource}
123 pacemaker::corosync::cluster_name: 'tripleo_cluster'
124 pacemaker::corosync::manage_fw: false
125 pacemaker::resource_defaults::defaults:
126 resource-stickiness: { value: INFINITY }
127 corosync_token_timeout: 10000
128 pacemaker::corosync::settle_tries: {get_param: CorosyncSettleTries}
129 tripleo.pacemaker.firewall_rules:
139 corosync_ipv6: {get_param: CorosyncIPv6}
140 tripleo::fencing::config: {get_param: FencingConfig}
141 enable_fencing: {get_param: EnableFencing}
144 expression: $.data.passwords.where($ != '').first()
147 - {get_param: PcsdPassword}
148 - {get_param: [DefaultPasswords, pcsd_password]}
149 tripleo::profile::base::pacemaker::remote_authkey: {get_param: PacemakerRemoteAuthkey}
151 include ::tripleo::profile::base::pacemaker
153 - name: Check pacemaker cluster running before upgrade
154 tags: step0,validation
155 pacemaker_cluster: state=online check_and_fail=true
158 - name: Stop pacemaker cluster
160 pacemaker_cluster: state=offline
161 - name: Start pacemaker cluster
163 pacemaker_cluster: state=online
164 - name: Check pacemaker resource
167 resource: "{{ item }}"
169 with_items: {get_param: PacemakerResources}
170 - name: Check pacemaker haproxy resource
175 when: {get_param: EnableLoadBalancer}