summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBogdan Dobrelya <bdobrelia@mirantis.com>2015-01-16 12:31:23 +0100
committerBogdan Dobrelya <bdobrelia@mirantis.com>2015-01-16 12:50:09 +0100
commit09e547f02ca2d3e9783efa97b7b9fec3be45d4f9 (patch)
tree0227e7d36b38a630e2ecf692f654b3b5639ea67a
parent7382d88ccf1721f055a8f1530bf52709332b0e41 (diff)
Fixes for HA fencing plugin
* Document a w/a for a parrallel deploy issue * Add known issues section to docs * Add missing versioning section to docs * Deploy the plugin only at controller nodes Related blueprint fencing-in-puppet-manifests Related-bug: #1411603 Change-Id: I26ebb5a9d7dae0723b57d171644b626a7b9e691d Signed-off-by: Bogdan Dobrelya <bdobrelia@mirantis.com>
-rw-r--r--README.md39
-rw-r--r--deployment_scripts/puppet/manifests/site.pp33
2 files changed, 57 insertions, 15 deletions
diff --git a/README.md b/README.md
index 77530f3..d9f5ffd 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,9 @@ Fuel Fencing Plugin
105. [Limitations - OS compatibility, etc.](#limitations) 105. [Limitations - OS compatibility, etc.](#limitations)
116. [Development - Guide for contributing to the plugin](#development) 116. [Development - Guide for contributing to the plugin](#development)
127. [Contributors - Those with commits](#contributors) 127. [Contributors - Those with commits](#contributors)
138. [Release Notes - Notes on the most recent updates to the plugin](#release-notes) 138. [Versioning - Fuel and plugin versions](#versioning)
149. [Known Issues - Issues and workarounds](#known-issues)
1510. [Release Notes - Notes on the most recent updates to the plugin](#release-notes)
14 16
15Overview 17Overview
16-------- 18--------
@@ -118,6 +120,14 @@ Note that in order to build this plugin the following tools must present:
118 120
119TODO(bogdando) finish the guide, add agents and devices verification commands 121TODO(bogdando) finish the guide, add agents and devices verification commands
120 122
123Please also note that the recommended value for the ``no-quorum-policy`` cluster property
124should be changed manually (after deployment is done) from ignore/stopped to suicide.
125For more information on no-quorum policy, see the [Cluster Options](http://clusterlabs.org/doc/en-US/Pacemaker/1.0/html/Pacemaker_Explained/s-cluster-options.html)
126section in the official Pacemaker documentation. You can set this property by the command
127```
128pcs property set no-quorum-policy=suicide
129```
130
121Implementation 131Implementation
122-------------- 132--------------
123 133
@@ -170,6 +180,33 @@ Plugin :: Fuel version
1706.0.0 -> 6.0 1806.0.0 -> 6.0
171``` 181```
172 182
183Known Issues
184------------
185
186[LP1411603](https://bugs.launchpad.net/fuel/+bug/1411603)
187
188After the deployment is finished, please make sure all of the controller nodes have
189corresponding ``stonith__*`` primitives and the stonith verification command gives
190no errors.
191
192You can list the STONITH primitives and check their health by the commands:
193```
194pcs stonith
195pcs stonith level verify
196```
197
198And the location constraints could be shown by the commands:
199```
200pcs constraint list
201pcs constraint ref <stonith_resource_name>
202```
203
204It is expected that every ``stonith_*`` primitive should have one "prohibit" and
205one "allow" location shown by the ref command.
206
207If some of the controller nodes does not have corresponding stonith primitives
208or locations for them, please follow the workaround provided at the LP bug.
209
173Release Notes 210Release Notes
174------------- 211-------------
175 212
diff --git a/deployment_scripts/puppet/manifests/site.pp b/deployment_scripts/puppet/manifests/site.pp
index 01a264e..e102013 100644
--- a/deployment_scripts/puppet/manifests/site.pp
+++ b/deployment_scripts/puppet/manifests/site.pp
@@ -1,21 +1,26 @@
1$fuel_settings = parseyaml($astute_settings_yaml) 1$fuel_settings = parseyaml($astute_settings_yaml)
2 2
3# Fetch fencing policy and settings 3$primary_controller = $::fuel_settings['role'] ? { 'primary-controller'=>true, default=>false }
4$fence_policy = $::fuel_settings['ha_fencing']['fence_policy'] 4$is_controller = $::fuel_settings['role'] ? { 'controller'=>true, default=>false }
5$fencing_enabled = $fence_policy ? { 'disabled'=>false, 'reboot'=>true, 'poweroff'=>true, default=>false }
6 5
7if $fencing_enabled { 6if ($is_controller or $primary_controller) {
8 $fencing_settings = parseyaml($fencing_settings_yaml) 7 # Fetch fencing policy and settings
9 $fence_primitives = $::fencing_settings['fence_primitives'] 8 $fence_policy = $::fuel_settings['ha_fencing']['fence_policy']
10 $fence_topology = $::fencing_settings['fence_topology'] 9 $fencing_enabled = $fence_policy ? { 'disabled'=>false, 'reboot'=>true, 'poweroff'=>true, default=>false }
11 10
12 $nodes_hash = $::fuel_settings['nodes'] 11 if $fencing_enabled {
13 $controllers = concat(filter_nodes($nodes_hash,'role','primary-controller'), filter_nodes($nodes_hash,'role','controller')) 12 $fencing_settings = parseyaml($fencing_settings_yaml)
13 $fence_primitives = $::fencing_settings['fence_primitives']
14 $fence_topology = $::fencing_settings['fence_topology']
14 15
15 include stdlib 16 $nodes_hash = $::fuel_settings['nodes']
16 class { '::pcs_fencing::fencing_primitives': 17 $controllers = concat(filter_nodes($nodes_hash,'role','primary-controller'), filter_nodes($nodes_hash,'role','controller'))
17 fence_primitives => $fence_primitives, 18
18 fence_topology => $fence_topology, 19 include stdlib
19 nodes => $controllers, 20 class { '::pcs_fencing::fencing_primitives':
21 fence_primitives => $fence_primitives,
22 fence_topology => $fence_topology,
23 nodes => $controllers,
24 }
20 } 25 }
21} 26}