Upgrades: initialization command/snippet
[apex-tripleo-heat-templates.git] / extraconfig / tasks / major_upgrade_pacemaker_init.yaml
@@ -17,12 +17,64 @@ parameters:
     type: json
     description: input values for the software deployments
 
+  UpgradeInitCommand:
+    type: string
+    description: |
+      Command or script snippet to run on all overcloud nodes to
+      initialize the upgrade process. E.g. a repository switch.
+    default: ''
   UpgradeLevelNovaCompute:
     type: string
     description: Nova Compute upgrade level
     default: ''
 
 resources:
+
+  UpgradeInitConfig:
+    type: OS::Heat::SoftwareConfig
+    properties:
+      group: script
+      config:
+        list_join:
+        - ''
+        - - "#!/bin/bash\n\n"
+          - get_param: UpgradeInitCommand
+
+  UpgradeInitControllerDeployment:
+    type: OS::Heat::SoftwareDeploymentGroup
+    properties:
+      servers:  {get_param: controller_servers}
+      config: {get_resource: UpgradeInitConfig}
+      input_values: {get_param: input_values}
+
+  UpgradeInitComputeDeployment:
+    type: OS::Heat::SoftwareDeploymentGroup
+    properties:
+      servers:  {get_param: compute_servers}
+      config: {get_resource: UpgradeInitConfig}
+      input_values: {get_param: input_values}
+
+  UpgradeInitBlockStorageDeployment:
+    type: OS::Heat::SoftwareDeploymentGroup
+    properties:
+      servers:  {get_param: blockstorage_servers}
+      config: {get_resource: UpgradeInitConfig}
+      input_values: {get_param: input_values}
+
+  UpgradeInitObjectStorageDeployment:
+    type: OS::Heat::SoftwareDeploymentGroup
+    properties:
+      servers:  {get_param: objectstorage_servers}
+      config: {get_resource: UpgradeInitConfig}
+      input_values: {get_param: input_values}
+
+  UpgradeInitCephStorageDeployment:
+    type: OS::Heat::SoftwareDeploymentGroup
+    properties:
+      servers:  {get_param: cephstorage_servers}
+      config: {get_resource: UpgradeInitConfig}
+      input_values: {get_param: input_values}
+
   # TODO(jistr): for Mitaka->Newton upgrades and further we can use
   # map_merge with input_values instead of feeding params into scripts
   # via str_replace on bash snippets