From 9ffb18af9421070fffb9375f1fc5e4c94ede0fde Mon Sep 17 00:00:00 2001 From: Robert Collins Date: Tue, 28 Jan 2014 19:39:43 +1300 Subject: [PATCH] Update overcloud to support N compute hosts. 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 | 4 +++- nova-compute-instance.yaml | 18 +++++++++--------- overcloud-source.yaml | 19 +++++++++++++------ 3 files changed, 25 insertions(+), 16 deletions(-) diff --git a/Makefile b/Makefile index d7fc543a..2c9c2c0e 100644 --- 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 diff --git a/nova-compute-instance.yaml b/nova-compute-instance.yaml index 229615ad..3abd3216 100644 --- a/nova-compute-instance.yaml +++ b/nova-compute-instance.yaml @@ -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: diff --git a/overcloud-source.yaml b/overcloud-source.yaml index 358de7d6..6192cc1a 100644 --- a/overcloud-source.yaml +++ b/overcloud-source.yaml @@ -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: -- 2.16.6