keystone: fix a race condition in bootstrap
authorEmilien Macchi <emilien@redhat.com>
Sat, 18 Jun 2016 17:57:21 +0000 (13:57 -0400)
committerEmilien Macchi <emilien@redhat.com>
Sat, 18 Jun 2016 18:25:34 +0000 (14:25 -0400)
Before, we had bootstrap_master set to 'undef' by default that was
used to whether or not run keystone bootstrap exec during deployment.

Setting the value to undef was a mistake, because enable_bootstrap in
puppet-keystone is set to true by default, so bootstrap was running
on all controllers at step 4 for HA scenario, while we want it to run on
a single controller (pacemaker_master) at step 4, like we do for
db-sync.

This patch:

* removes bootstrap_master.
* re-use sync_db to whether or not run keystone bootstrap.
  so it will only run on a single node when database is ready and
  db-sync done (orchestration dones by anchors in puppet-keystone).

Change-Id: I1042862f7c346d1c358b908c33eae0f33afd5e9f

manifests/profile/base/keystone.pp
manifests/profile/pacemaker/keystone.pp

index a5060b8..706b78f 100644 (file)
 #   (Optional) Whether to run db sync
 #   Defaults to true
 #
-# [*bootstrap_master*]
-#   (Optional) The hostname of the node responsible for bootstrapping
-#   Defaults to hiera('bootstrap_nodeid')
-#
 # [*manage_roles*]
 #   (Optional) whether to create keystone admin role
 #   Defaults to true
 #   Defaults to hiera('step')
 #
 class tripleo::profile::base::keystone (
-  $sync_db          = true,
-  $bootstrap_master = undef,
-  $manage_roles     = true,
-  $manage_endpoint  = true,
-  $manage_db_purge  = hiera('keystone_enable_db_purge', true),
-  $step             = hiera('step'),
+  $sync_db         = true,
+  $manage_roles    = true,
+  $manage_endpoint = true,
+  $manage_db_purge = hiera('keystone_enable_db_purge', true),
+  $step            = hiera('step'),
 ) {
 
   if $step >= 3 and $sync_db {
@@ -59,7 +54,7 @@ class tripleo::profile::base::keystone (
   if $step >= 4 or ( $step >= 3 and $sync_db ) {
     class { '::keystone':
       sync_db          => $sync_db,
-      enable_bootstrap => $bootstrap_master,
+      enable_bootstrap => $sync_db,
     }
 
     include ::keystone::config
index 42c44d4..497d6f3 100644 (file)
@@ -59,10 +59,9 @@ class tripleo::profile::pacemaker::keystone (
   }
 
   class { '::tripleo::profile::base::keystone':
-    sync_db          => $pacemaker_master,
-    bootstrap_master => $pacemaker_master,
-    manage_roles     => $manage_roles,
-    manage_endpoint  => $manage_roles
+    sync_db         => $pacemaker_master,
+    manage_roles    => $manage_roles,
+    manage_endpoint => $manage_roles
   }
 
   if $step >= 5 and $pacemaker_master and $enable_load_balancer {