Prep work for a scalable control plane.
authorRobert Collins <rbtcollins@hp.com>
Wed, 29 Jan 2014 00:29:49 +0000 (13:29 +1300)
committerRobert Collins <rbtcollins@hp.com>
Thu, 30 Jan 2014 22:23:03 +0000 (11:23 +1300)
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
notcompute.yaml
nova-compute-instance.yaml
overcloud-source.yaml
ssl-source.yaml
swift-source.yaml
undercloud-source.yaml

index d7548c9..d644c42 100644 (file)
@@ -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}
index ef33936..fe66f3b 100644 (file)
@@ -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:
index 3abd321..4b6a8a0 100644 (file)
@@ -90,7 +90,7 @@ Resources:
         Ref: ComputeUser
   NovaCompute0CompletionCondition:
     Type: AWS::CloudFormation::WaitCondition
-    DependsOn: notcompute
+    DependsOn: notCompute0
     Properties:
       Handle: {Ref: NovaCompute0CompletionHandle}
       Count: '1'
index 6192cc1..78ce4aa 100644 (file)
@@ -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/
index 9127555..4fdd0f3 100644 (file)
@@ -11,7 +11,7 @@ Parameters:
     Type: String
     NoEcho: true
 Resources:
-  notcomputeConfig:
+  notCompute0Config:
     Type: AWS::AutoScaling::LaunchConfiguration
     Metadata:
       stunnel:
index 14bbf2b..0a6bf64 100644 (file)
@@ -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:
index 6431dfd..801c791 100644 (file)
@@ -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