From 4aff0fb3f718ee0e55f39f5d0663feb22a14e9a3 Mon Sep 17 00:00:00 2001 From: Robert Collins Date: Wed, 29 Jan 2014 13:29:49 +1300 Subject: [PATCH] Prep work for a scalable control plane. This is complete as far as it goes but it isn't enough to make running a scaled out control plane actually work. Specifically, the constructs to point at API hosts based on looking up a network address aren't suirtable for scaled out - we need to be using the virtual IP or DNS round robin or other such resilient configurations, but that is largely / entirely orthogonal to making the template be ready for scaling. Change-Id: Ib9e6db5e7d5db84e4746afdabea046d2b8702bbb --- block-storage.yaml | 8 +++--- notcompute.yaml | 12 ++++---- nova-compute-instance.yaml | 2 +- overcloud-source.yaml | 70 +++++++++++++++++++++++----------------------- ssl-source.yaml | 2 +- swift-source.yaml | 4 +-- undercloud-source.yaml | 18 ++++++------ 7 files changed, 58 insertions(+), 58 deletions(-) diff --git a/block-storage.yaml b/block-storage.yaml index d7548c9c..d644c421 100644 --- a/block-storage.yaml +++ b/block-storage.yaml @@ -6,13 +6,13 @@ Parameters: Default: overcloud-cinder-volume KeystoneHost: Type: String - Default: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] } + Default: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notCompute0, networks]} ]} ] } MySQLHost: Type: String - Default: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] } + Default: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notCompute0, networks]} ]} ] } RabbitHost: Type: String - Default: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] } + Default: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notCompute0, networks]} ]} ] } RabbitPassword: Type: String Default: "guest" @@ -63,4 +63,4 @@ Resources: host: {Ref: RabbitHost} password: {Ref: RabbitPassword} interfaces: - control: {Ref: NeutronPublicInterface} \ No newline at end of file + control: {Ref: NeutronPublicInterface} diff --git a/notcompute.yaml b/notcompute.yaml index ef339361..fe66f3bb 100644 --- a/notcompute.yaml +++ b/notcompute.yaml @@ -78,9 +78,9 @@ Resources: AccessPolicy: Properties: AllowedResources: - - notcompute + - notCompute0 Type: OS::Heat::AccessPolicy - Key: + notCompute0Key: Properties: UserName: Ref: User @@ -90,7 +90,7 @@ Resources: Policies: - Ref: AccessPolicy Type: AWS::IAM::User - notcompute: + notCompute0: Metadata: OpenStack::ImageBuilder::Elements: - nova-api @@ -136,12 +136,12 @@ Resources: - {Ref: HeatDBPassword} - '@127.0.0.1/heat' access_key_id: - Ref: Key + Ref: notCompute0Key refresh: - - resource: notcompute + - resource: notCompute0 secret_key: Fn::GetAtt: - - Key + - notCompute0Key - SecretAccessKey stack: name: diff --git a/nova-compute-instance.yaml b/nova-compute-instance.yaml index 3abd3216..4b6a8a05 100644 --- a/nova-compute-instance.yaml +++ b/nova-compute-instance.yaml @@ -90,7 +90,7 @@ Resources: Ref: ComputeUser NovaCompute0CompletionCondition: Type: AWS::CloudFormation::WaitCondition - DependsOn: notcompute + DependsOn: notCompute0 Properties: Handle: {Ref: NovaCompute0CompletionHandle} Count: '1' diff --git a/overcloud-source.yaml b/overcloud-source.yaml index 6192cc1a..78ce4aa0 100644 --- a/overcloud-source.yaml +++ b/overcloud-source.yaml @@ -107,8 +107,8 @@ Resources: AccessPolicy: Properties: AllowedResources: - - notcompute - - notcomputeConfig + - notCompute0 + - notCompute0Config Type: OS::Heat::AccessPolicy ComputeAccessPolicy: Properties: @@ -116,19 +116,19 @@ Resources: - NovaCompute0 - NovaCompute0Config Type: OS::Heat::AccessPolicy - Key: + notCompute0Key: Properties: UserName: Ref: User Type: AWS::IAM::AccessKey - CompletionCondition: + notCompute0CompletionCondition: Type: AWS::CloudFormation::WaitCondition - DependsOn: notcompute + DependsOn: notCompute0 Properties: - Handle: {Ref: CompletionHandle} + Handle: {Ref: notCompute0CompletionHandle} Count: '1' Timeout: '1800' - CompletionHandle: + notCompute0CompletionHandle: Type: OS::Heat::UpdateWaitConditionHandle NovaCompute0Key: Type: FileInclude @@ -152,14 +152,14 @@ Resources: Path: nova-compute-instance.yaml SubKey: Resources.NovaCompute0Config Parameters: - NovaApiHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] } - KeystoneHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] } - RabbitHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] } - NeutronHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] } - GlanceHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] } - NovaDSN: {"Fn::Join": ['', ['mysql://nova:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ]}, '/nova']]} - CeilometerDSN: {"Fn::Join": ['', ['mysql://ceilometer:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ]}, '/ceilometer']]} - NeutronDSN: {"Fn::Join": ['', ['mysql://neutron:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ]}, '/neutron']]} + NovaApiHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notCompute0, networks]} ]} ] } + KeystoneHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notCompute0, networks]} ]} ] } + RabbitHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notCompute0, networks]} ]} ] } + NeutronHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notCompute0, networks]} ]} ] } + GlanceHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notCompute0, networks]} ]} ] } + NovaDSN: {"Fn::Join": ['', ['mysql://nova:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notCompute0, networks]} ]} ]}, '/nova']]} + CeilometerDSN: {"Fn::Join": ['', ['mysql://ceilometer:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notCompute0, networks]} ]} ]}, '/ceilometer']]} + NeutronDSN: {"Fn::Join": ['', ['mysql://neutron:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notCompute0, networks]} ]} ]}, '/neutron']]} NeutronNetworkType: "gre" NeutronEnableTunnelling: "True" NeutronNetworkVLANRanges: "" @@ -175,7 +175,7 @@ Resources: Policies: - Ref: AccessPolicy Type: AWS::IAM::User - notcomputeConfig: + notCompute0Config: Type: AWS::AutoScaling::LaunchConfiguration Properties: ImageId: '0' @@ -200,14 +200,14 @@ Resources: service-password: Ref: CinderPassword completion-handle: - Ref: CompletionHandle + Ref: notCompute0CompletionHandle controller-address: Fn::Select: - 0 - Fn::Select: - 'ctlplane' - Fn::GetAtt: - - notcompute + - notCompute0 - networks db-password: unset glance: @@ -219,7 +219,7 @@ Resources: - Fn::Select: - 'ctlplane' - Fn::GetAtt: - - notcompute + - notCompute0 - networks service-password: Ref: GlancePassword @@ -242,7 +242,7 @@ Resources: - Fn::Select: - 'ctlplane' - Fn::GetAtt: - - notcompute + - notCompute0 - networks - ':8003' metadata_server_url: @@ -254,7 +254,7 @@ Resources: - Fn::Select: - 'ctlplane' - Fn::GetAtt: - - notcompute + - notCompute0 - networks - ':8000' waitcondition_server_url: @@ -266,7 +266,7 @@ Resources: - Fn::Select: - 'ctlplane' - Fn::GetAtt: - - notcompute + - notCompute0 - networks - ':8000/v1/waitcondition' keystone: @@ -277,7 +277,7 @@ Resources: - Fn::Select: - 'ctlplane' - Fn::GetAtt: - - notcompute + - notCompute0 - networks neutron: host: @@ -286,7 +286,7 @@ Resources: - Fn::Select: - ctlplane - Fn::GetAtt: - - notcompute + - notCompute0 - networks metadata_proxy_shared_secret: unset ovs: @@ -297,7 +297,7 @@ Resources: - Fn::Select: - ctlplane - Fn::GetAtt: - - notcompute + - notCompute0 - networks bridge_mappings: {Ref: NeutronBridgeMappings} public_interface: @@ -327,7 +327,7 @@ Resources: - Fn::Select: - 'ctlplane' - Fn::GetAtt: - - notcompute + - notCompute0 - networks metadata-proxy: true service-password: @@ -335,11 +335,11 @@ Resources: os-collect-config: cfn: access_key_id: - Ref: Key - path: notcomputeConfig.Metadata + Ref: notCompute0Key + path: notCompute0Config.Metadata secret_access_key: Fn::GetAtt: - - Key + - notCompute0Key - SecretAccessKey stack_name: Ref: AWS::StackName @@ -350,13 +350,13 @@ Resources: - Fn::Select: - ctlplane - Fn::GetAtt: - - notcompute + - notCompute0 - networks password: guest ntp: servers: - {server: {Ref: NtpServer}, fudge: "stratum 0"} - notcompute: + notCompute0: Type: OS::Nova::Server Properties: image: @@ -371,11 +371,11 @@ Resources: os-collect-config: cfn: access_key_id: - Ref: Key - path: notcomputeConfig.Metadata + Ref: notCompute0Key + path: notCompute0Config.Metadata secret_access_key: Fn::GetAtt: - - Key + - notCompute0Key - SecretAccessKey stack_name: Ref: AWS::StackName @@ -391,6 +391,6 @@ Outputs: - Fn::Select: - ctlplane - Fn::GetAtt: - - notcompute + - notCompute0 - networks - :5000/v2.0/ diff --git a/ssl-source.yaml b/ssl-source.yaml index 9127555a..4fdd0f3b 100644 --- a/ssl-source.yaml +++ b/ssl-source.yaml @@ -11,7 +11,7 @@ Parameters: Type: String NoEcho: true Resources: - notcomputeConfig: + notCompute0Config: Type: AWS::AutoScaling::LaunchConfiguration Metadata: stunnel: diff --git a/swift-source.yaml b/swift-source.yaml index 14bbf2b9..0a6bf647 100644 --- a/swift-source.yaml +++ b/swift-source.yaml @@ -11,7 +11,7 @@ Parameters: Type: String NoEcho: true Resources: - notcomputeConfig: + notCompute0Config: Type: AWS::AutoScaling::LaunchConfiguration Metadata: swift: @@ -24,7 +24,7 @@ Resources: - Fn::Select: - 'ctlplane' - Fn::GetAtt: - - notcompute + - notCompute0 - networks - ':%PORT%/d1' hash: diff --git a/undercloud-source.yaml b/undercloud-source.yaml index 6431dfd4..801c7916 100644 --- a/undercloud-source.yaml +++ b/undercloud-source.yaml @@ -52,19 +52,19 @@ Resources: AllowedResources: - undercloudConfig Type: OS::Heat::AccessPolicy - Key: + notCompute0Key: Properties: UserName: Ref: User Type: AWS::IAM::AccessKey - CompletionCondition: + notCompute0CompletionCondition: Type: AWS::CloudFormation::WaitCondition DependsOn: undercloud Properties: - Handle: {Ref: CompletionHandle} + Handle: {Ref: notCompute0CompletionHandle} Count: '1' Timeout: '1800' - CompletionHandle: + notCompute0CompletionHandle: Type: AWS::CloudFormation::WaitConditionHandle User: Properties: @@ -96,7 +96,7 @@ Resources: db: mysql://cinder:unset@localhost/cinder volume_size_mb: '5000' completion-handle: - Ref: CompletionHandle + Ref: notCompute0CompletionHandle db-password: unset glance: backend: file @@ -132,11 +132,11 @@ Resources: os-collect-config: cfn: access_key_id: - Ref: Key + Ref: notCompute0Key path: undercloudConfig.Metadata secret_access_key: Fn::GetAtt: - - Key + - notCompute0Key - SecretAccessKey stack_name: Ref: AWS::StackName @@ -174,11 +174,11 @@ Resources: os-collect-config: cfn: access_key_id: - Ref: Key + Ref: notCompute0Key path: undercloudConfig.Metadata secret_access_key: Fn::GetAtt: - - Key + - notCompute0Key - SecretAccessKey stack_name: Ref: AWS::StackName -- 2.16.6