Allow to manually disable post-puppet restarts
authorJiri Stransky <jistr@redhat.com>
Tue, 7 Jun 2016 10:15:04 +0000 (12:15 +0200)
committerJiri Stransky <jistr@redhat.com>
Tue, 14 Jun 2016 14:10:10 +0000 (16:10 +0200)
Restarting services after Puppet is vital to ensure that config changes
go applied. However, it can be sometimes desirable to prevent these
restarts to avoid downtime, if the operator is sure that no config
changes need applying. This can be a case e.g. when scaling compute
nodes. Passing the puppet-pacemaker-no-restart.yaml environment file *in
addition* to puppet-pacemaker.yaml should allow this.

This is a stop gap solution before we have proper communication between
Puppet and Pacemaker to allow selective restarts.

Change-Id: I9c3c5c10ed6ecd5489a59d7e320c3c69af9e19f4

environments/puppet-pacemaker-no-restart.yaml [new file with mode: 0644]
environments/puppet-pacemaker.yaml
extraconfig/tasks/post_puppet_pacemaker.yaml
extraconfig/tasks/post_puppet_pacemaker_restart.yaml [new file with mode: 0644]

diff --git a/environments/puppet-pacemaker-no-restart.yaml b/environments/puppet-pacemaker-no-restart.yaml
new file mode 100644 (file)
index 0000000..67d8692
--- /dev/null
@@ -0,0 +1,3 @@
+# use this file *in addition* to puppet-pacemaker.yaml
+resource_registry:
+  OS::TripleO::Tasks::ControllerPostPuppetRestart: OS::Heat::None
index e632645..75ad28e 100644 (file)
@@ -4,6 +4,7 @@ resource_registry:
   OS::TripleO::ControllerConfig: ../puppet/controller-config-pacemaker.yaml
   OS::TripleO::Tasks::ControllerPrePuppet: ../extraconfig/tasks/pre_puppet_pacemaker.yaml
   OS::TripleO::Tasks::ControllerPostPuppet: ../extraconfig/tasks/post_puppet_pacemaker.yaml
+  OS::TripleO::Tasks::ControllerPostPuppetRestart: ../extraconfig/tasks/post_puppet_pacemaker_restart.yaml
 
   # custom pacemaker services
   # NOTE: For now we will need to specify overrides to all services
index fbed9ce..b62502f 100644 (file)
@@ -29,20 +29,9 @@ resources:
       config: {get_resource: ControllerPostPuppetMaintenanceModeConfig}
       input_values: {get_param: input_values}
 
-  ControllerPostPuppetRestartConfig:
-    type: OS::Heat::SoftwareConfig
-    properties:
-      group: script
-      config:
-        list_join:
-        - ''
-        - - get_file: pacemaker_common_functions.sh
-          - get_file: pacemaker_resource_restart.sh
-
-  ControllerPostPuppetRestartDeployment:
-    type: OS::Heat::SoftwareDeployments
+  ControllerPostPuppetRestart:
+    type: OS::TripleO::Tasks::ControllerPostPuppetRestart
     depends_on: ControllerPostPuppetMaintenanceModeDeployment
     properties:
       servers:  {get_param: servers}
-      config: {get_resource: ControllerPostPuppetRestartConfig}
       input_values: {get_param: input_values}
diff --git a/extraconfig/tasks/post_puppet_pacemaker_restart.yaml b/extraconfig/tasks/post_puppet_pacemaker_restart.yaml
new file mode 100644 (file)
index 0000000..52760c8
--- /dev/null
@@ -0,0 +1,28 @@
+heat_template_version: 2014-10-16
+description: 'Post-Puppet restart config for Pacemaker deployments'
+
+parameters:
+  servers:
+    type: json
+  input_values:
+     type: json
+     description: input values for the software deployments
+
+resources:
+
+  ControllerPostPuppetRestartConfig:
+    type: OS::Heat::SoftwareConfig
+    properties:
+      group: script
+      config:
+        list_join:
+        - ''
+        - - get_file: pacemaker_common_functions.sh
+          - get_file: pacemaker_resource_restart.sh
+
+  ControllerPostPuppetRestartDeployment:
+    type: OS::Heat::SoftwareDeployments
+    properties:
+      servers:  {get_param: servers}
+      config: {get_resource: ControllerPostPuppetRestartConfig}
+      input_values: {get_param: input_values}