Add strict dependencies to the overcloud template
authorNicholas Randon <nicholas.randon@hp.com>
Thu, 31 Jul 2014 11:46:20 +0000 (12:46 +0100)
committerNicholas Randon <nicholas.randon@hp.com>
Thu, 31 Jul 2014 13:39:00 +0000 (13:39 +0000)
Currently there is very weak (no) ordering of StructuredDeployments during
heat stack creation (and, importantly, update) on the overcloud. This can
cause the deployment which sends the completion signal back to Heat to
happen before all others have completed, which in turn leads Heat to state
the stack is ready while ORC is still configuring services

The only workaround to this is to wait an unknown amount of time after the
heat stack completes before the system is usable.

This patch prevents the completion signal from being returned early, by
ensuring these are strictly ordered:
    controller0Deploy
    controller0Passthrough
    controller0AllNodesDeploy
    NovaCompute0Deploy
    NovaCompute0Passthrough
    NovaCompute0AllNodesDeploy

Change-Id: I0a549370b7aca55b1145de521ad51218428deaf5

nova-compute-instance.yaml
overcloud-source.yaml

index baa20e2..baf781d 100644 (file)
@@ -181,7 +181,7 @@ Resources:
         - network: ctlplane
       user_data_format: SOFTWARE_CONFIG
   NovaCompute0Deploy:
-    DependsOn: [controller0Deployment]
+    DependsOn: [controller0AllNodes]
     Type: OS::Heat::StructuredDeployment
     Properties:
       signal_transport: NO_SIGNAL
@@ -225,11 +225,13 @@ Resources:
         live_update_image_id: {Ref: LiveUpdateComputeImage}
         ntp_server: {Ref: NtpServer}
   NovaCompute0AllNodesDeploy:
+    DependsOn: [NovaCompute0Passthrough]
     Type: OS::Heat::StructuredDeployment
     Properties:
       config: {Ref: AllNodesConfig}
       server: {Ref: NovaCompute0}
   NovaCompute0Passthrough:
+    DependsOn: [NovaCompute0Deploy]
     Type: OS::Heat::StructuredDeployment
     Properties:
       config: {Ref: NovaComputePassthrough}
index 28d66ca..b8216cd 100644 (file)
@@ -617,6 +617,7 @@ Resources:
         - network: ctlplane
       user_data_format: SOFTWARE_CONFIG
   controller0AllNodes:
+    DependsOn: [controller0Deployment,controller0SSLDeployment,controller0Swift,controller0Passthrough]
     Type: OS::Heat::StructuredDeployment
     Properties:
       config: {Ref: allNodesConfig}