Update overcloud to support N compute hosts.
authorRobert Collins <rbtcollins@hp.com>
Tue, 28 Jan 2014 06:39:43 +0000 (19:39 +1300)
committerRobert Collins <rbtcollins@hp.com>
Thu, 30 Jan 2014 22:23:03 +0000 (11:23 +1300)
This uses the new merge feature earlier in this series.

Exporting COMPUTESCALE before running make will build a different
template. Note that since Make doesn't depend on variable values, you
need to delete overcloud.yaml between building with different scales.

Change-Id: If05b99ae3596bcc794e3a899ab1443aeb14ec754

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

index d7fc543..2c9c2c0 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -10,8 +10,10 @@ overcloud_source_deps = nova-compute-instance.yaml
 
 all: $(generated_templates)
 
+# Note that COMPUTESCALE is not a physical dep - 'make overcloud.yaml' won't do
+# the right thing if you change COMPUTESCALE from one run to another.
 overcloud.yaml: overcloud-source.yaml swift-source.yaml ssl-source.yaml $(overcloud_source_deps)
-       python ./tripleo_heat_merge/merge.py overcloud-source.yaml swift-source.yaml ssl-source.yaml > $@.tmp
+       python ./tripleo_heat_merge/merge.py --scale NovaCompute=$${COMPUTESCALE:-'1'} overcloud-source.yaml swift-source.yaml ssl-source.yaml > $@.tmp
        mv $@.tmp $@
 
 overcloud-with-block-storage.yaml: overcloud-source.yaml nova-compute-instance.yaml swift-source.yaml block-storage.yaml
index 229615a..3abd321 100644 (file)
@@ -83,19 +83,19 @@ Resources:
     Type: AWS::IAM::User
     Properties:
       Policies: [ { Ref: ComputeAccessPolicy } ]
-  ComputeKey:
+  NovaCompute0Key:
     Type: AWS::IAM::AccessKey
     Properties:
       UserName:
         Ref: ComputeUser
-  CompletionCondition:
+  NovaCompute0CompletionCondition:
     Type: AWS::CloudFormation::WaitCondition
     DependsOn: notcompute
     Properties:
-      Handle: {Ref: CompletionHandle}
+      Handle: {Ref: NovaCompute0CompletionHandle}
       Count: '1'
       Timeout: '1800'
-  CompletionHandle:
+  NovaCompute0CompletionHandle:
     Type: AWS::CloudFormation::WaitConditionHandle
   NovaCompute0:
     Type: OS::Nova::Server
@@ -110,9 +110,9 @@ Resources:
       os-collect-config:
         cfn:
           access_key_id:
-            Ref: ComputeKey
+            Ref: NovaCompute0Key
           secret_access_key:
-            Fn::GetAtt: [ ComputeKey, SecretAccessKey ]
+            Fn::GetAtt: [ NovaCompute0Key, SecretAccessKey ]
           stack_name: {Ref: 'AWS::StackName'}
           path: NovaCompute0Config.Metadata
       OpenStack::ImageBuilder::Elements: [ nova-compute ]
@@ -123,13 +123,13 @@ Resources:
       ImageId: '0'
     Metadata:
       completion-handle:
-        Ref: CompletionHandle
+        Ref: NovaCompute0CompletionHandle
       os-collect-config:
         cfn:
           access_key_id:
-            Ref: ComputeKey
+            Ref: NovaCompute0Key
           secret_access_key:
-            Fn::GetAtt: [ ComputeKey, SecretAccessKey ]
+            Fn::GetAtt: [ NovaCompute0Key, SecretAccessKey ]
           stack_name: {Ref: 'AWS::StackName'}
           path: NovaCompute0Config.Metadata
       nova:
index 358de7d..6192cc1 100644 (file)
@@ -126,15 +126,22 @@ Resources:
     DependsOn: notcompute
     Properties:
       Handle: {Ref: CompletionHandle}
-      Count: '2'
+      Count: '1'
       Timeout: '1800'
   CompletionHandle:
     Type: OS::Heat::UpdateWaitConditionHandle
-  ComputeKey:
-    Properties:
-      UserName:
-        Ref: ComputeUser
-    Type: AWS::IAM::AccessKey
+  NovaCompute0Key:
+    Type: FileInclude
+    Path: nova-compute-instance.yaml
+    SubKey: Resources.NovaCompute0Key
+  NovaCompute0CompletionCondition:
+    Type: FileInclude
+    Path: nova-compute-instance.yaml
+    SubKey: Resources.NovaCompute0CompletionCondition
+  NovaCompute0CompletionHandle:
+    Type: FileInclude
+    Path: nova-compute-instance.yaml
+    SubKey: Resources.NovaCompute0CompletionHandle
   ComputeUser:
     Properties:
       Policies: