Write the compute upgrade script for tripleo major upgrade workflow
authormarios <marios@redhat.com>
Mon, 22 Feb 2016 15:18:16 +0000 (17:18 +0200)
committermarios <marios@redhat.com>
Fri, 26 Feb 2016 10:19:12 +0000 (12:19 +0200)
As part of the major upgrade workflow non-controller nodes are to
be updated by the operator, out-of-band and only after an initial
heat stack-update that invokes the upgrade of the controller nodes.

This review adds a ComputeDeliverUpgradeConfigDeployment_Step3
SoftwareDeploymentGroup to be applied only to compute nodes, and
that depends on the controllers having been upgraded after
ControllerPacemakerUpgradeConfig_Step2.

Its purpose is to deliver but not invoke the upgrade script on
compute nodes to /root/tripleo_upgrade_node.sh .

The non-controller nodes will then be upgraded later by an
operator that will run the script provided for that purpose, like
at https://review.openstack.org/#/c/284722/1 for example.

Change-Id: Ic6115fc8cf5320abfcf500112ff563bde8b88661

extraconfig/tasks/major_upgrade_compute.sh [new file with mode: 0644]
extraconfig/tasks/major_upgrade_pacemaker.yaml

diff --git a/extraconfig/tasks/major_upgrade_compute.sh b/extraconfig/tasks/major_upgrade_compute.sh
new file mode 100644 (file)
index 0000000..2f19d57
--- /dev/null
@@ -0,0 +1,24 @@
+#!/bin/bash
+#
+# This delivers the compute upgrade script to be invoked as part of the tripleo
+# major upgrade workflow.
+#
+set -eu
+
+UPGRADE_SCRIPT=/root/tripleo_upgrade_node.sh
+
+cat > $UPGRADE_SCRIPT << ENDOFCAT
+### DO NOT MODIFY THIS FILE
+### This file is automatically delivered to the compute nodes as part of the
+### tripleo upgrades workflow
+
+# pin nova to kilo (messaging +-1) for the nova-compute service
+
+crudini  --set /etc/nova/nova.conf upgrade_levels compute $upgrade_level_nova_compute
+yum -y update
+
+ENDOFCAT
+
+# ensure the permissions are OK
+chmod 0755 $UPGRADE_SCRIPT
+
index 1080fd1..5a11bae 100644 (file)
@@ -66,3 +66,29 @@ resources:
       servers:  {get_param: controller_servers}
       config: {get_resource: ControllerPacemakerUpgradeConfig_Step2}
       input_values: {get_param: input_values}
+
+  ComputeDeliverUpgradeConfig_Step3:
+    type: OS::Heat::SoftwareConfig
+    properties:
+      group: script
+      config:
+        list_join:
+        - ''
+        - - str_replace:
+              template: |
+                #!/bin/bash
+                upgrade_level_nova_compute='UPGRADE_LEVEL_NOVA_COMPUTE'
+              params:
+                UPGRADE_LEVEL_NOVA_COMPUTE: {get_param: UpgradeLevelNovaCompute}
+          - get_file: pacemaker_common_functions.sh
+          - get_file: major_upgrade_compute.sh
+
+  ComputeDeliverUpgradeConfigDeployment_Step3:
+    type: OS::Heat::SoftwareDeploymentGroup
+    depends_on: ControllerPacemakerUpgradeDeployment_Step2
+    properties:
+      servers:  {get_param: compute_servers}
+      config: {get_resource: ComputeDeliverUpgradeConfig_Step3}
+      input_values: {get_param: input_values}
+
+