Merge "Use OS::Heat::DeployedServer"
[apex-tripleo-heat-templates.git] / puppet / cephstorage-role.yaml
index 82cc013..2c46bf1 100644 (file)
@@ -112,6 +112,12 @@ parameters:
     type: string
     description: Command which will be run whenever configuration data changes
     default: os-refresh-config --timeout 14400
+  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: ''
 
 resources:
   CephStorage:
@@ -333,9 +339,30 @@ resources:
       server: {get_resource: CephStorage}
       actions: {get_param: NetworkDeploymentActions}
 
+  CephStorageUpgradeInitConfig:
+    type: OS::Heat::SoftwareConfig
+    properties:
+      group: script
+      config:
+        list_join:
+        - ''
+        - - "#!/bin/bash\n\n"
+          - "if [[ -f /etc/resolv.conf.save ]] ; then rm /etc/resolv.conf.save; fi\n\n"
+          - get_param: UpgradeInitCommand
+
+  # Note we may be able to make this conditional on UpgradeInitCommandNotEmpty
+  # but https://bugs.launchpad.net/heat/+bug/1649900 needs fixing first
+  CephStorageUpgradeInitDeployment:
+    type: OS::Heat::SoftwareDeployment
+    depends_on: NetworkDeployment
+    properties:
+      name: CephStorageUpgradeInitDeployment
+      server: {get_resource: CephStorage}
+      config: {get_resource: CephStorageUpgradeInitConfig}
+
   CephStorageDeployment:
     type: OS::Heat::StructuredDeployment
-    depends_on: NetworkDeployment
+    depends_on: CephStorageUpgradeInitDeployment
     properties:
       name: CephStorageDeployment
       config: {get_resource: CephStorageConfig}