Merge "Stop using notCompute in favor of controller"
[apex-tripleo-heat-templates.git] / overcloud-source.yaml
index 358de7d..950b39a 100644 (file)
@@ -17,22 +17,38 @@ Parameters:
     Description: The password for the cinder service account, used by cinder-api.
     Type: String
     NoEcho: true
-  Flavor:
+  CinderISCSIHelper:
+    Default: tgtadm
+    Description: The iSCSI helper to use with cinder.
+    Type: String
+  OvercloudControlFlavor:
+    Default: baremetal
+    Description: Flavor for control nodes to request when deploying.
+    Type: String
+  OvercloudComputeFlavor:
     Default: baremetal
-    Description: Flavor to request when deploying.
+    Description: Flavor for compute nodes to request when deploying.
     Type: String
   GlancePassword:
     Default: unset
     Description: The password for the glance service account, used by the glance services.
     Type: String
     NoEcho: true
+  GlanceNotifierStrategy:
+    Description: Strategy to use for Glance notification queue
+    Type: String
+    Default: noop
+  GlanceLogFile:
+    Description: The filepath of the file to use for logging messages from Glance.
+    Type: String
+    Default: ''
   HeatPassword:
     Default: unset
     Description: The password for the Heat service account, used by the Heat services.
     Type: String
     NoEcho: true
   ImageUpdatePolicy:
-    Default: 'REPLACE'
+    Default: 'REBUILD_PRESERVE_EPHEMERAL'
     Description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
     Type: String
   KeyName:
@@ -63,6 +79,10 @@ Parameters:
     Description: The password for the ceilometer service account.
     Type: String
     NoEcho: true
+  CloudName:
+    Default: ''
+    Description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
+    Type: String
   NovaComputeDriver:
     Default: libvirt.LibvirtDriver
     Type: String
@@ -77,9 +97,17 @@ Parameters:
     Description: The password for the nova service account, used by nova-api.
     Type: String
     NoEcho: true
-  PowerUserName:
-    Default: stack
-    Description: What username to ssh to the virtual power host with.
+  NeutronFlatNetworks:
+    Type: String
+    Default: ''
+    Description: If set, flat networks to configure in neutron plugins.
+  HypervisorNeutronPhysicalBridge:
+    Default: ''
+    Description: An OVS bridge to create on each hypervisor.
+    Type: String
+  HypervisorNeutronPublicInterface:
+    Default: ''
+    Description: What interface to add to the HypervisorNeutronPhysicalBridge.
     Type: String
   NeutronPublicInterface:
     Default: eth0
@@ -97,18 +125,67 @@ Parameters:
     Default: ''
     Description: If set, the public interface is a vlan with this device as the raw device.
     Type: String
-  notcomputeImage:
+  controllerImage:
     Type: String
     Default: overcloud-control
   NtpServer:
     Type: String
     Default: ''
+  RabbitUserName:
+    Default: guest
+    Description: The username for RabbitMQ
+    Type: String
+  RabbitPassword:
+    Default: guest
+    Description: The password for RabbitMQ
+    Type: String
+    NoEcho: true
+  RabbitCookieSalt:
+    Type: String
+    Default: unset
+    Description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
+  HeatStackDomainAdminPassword:
+    Description: Password for heat_domain_admin user.
+    Type: String
+    Default: ''
+    NoEcho: true
+  LiveUpdateUserName:
+    Type: String
+    Description: The live-update username for the undercloud Glance API.
+    Default: ''
+  LiveUpdateTenantName:
+    Type: String
+    Description: The live-update tenant name for the undercloud Glance API.
+    Default: ''
+  LiveUpdateHost:
+    Type: String
+    Description: The IP address for the undercloud Glance API.
+    Default: ''
+  LiveUpdatePassword:
+    Type: String
+    Default: ''
+    Description: The live-update password for the undercloud Glance API.
+    NoEcho: true
+  LiveUpdateComputeImage:
+    Type: String
+    Description: The image ID for live-updates to the overcloud compute nodes.
+    Default: ''
+  MysqlInnodbBufferPoolSize:
+    Description: Specifies the size of the buffer pool in megabytes.
+    Type: Number
+    Default: 100
 Resources:
+  RabbitCookie:
+    Type: OS::Heat::RandomString
+    Properties:
+      length: 20
+      salt:
+        Ref: RabbitCookieSalt
   AccessPolicy:
     Properties:
       AllowedResources:
-      - notcompute
-      - notcomputeConfig
+      - controller0
+      - controller0Config
     Type: OS::Heat::AccessPolicy
   ComputeAccessPolicy:
     Properties:
@@ -116,25 +193,32 @@ Resources:
       - NovaCompute0
       - NovaCompute0Config
     Type: OS::Heat::AccessPolicy
-  Key:
+  controller0Key:
     Properties:
       UserName:
         Ref: User
     Type: AWS::IAM::AccessKey
-  CompletionCondition:
+  controller0CompletionCondition:
     Type: AWS::CloudFormation::WaitCondition
-    DependsOn: notcompute
+    DependsOn: controller0Config
     Properties:
-      Handle: {Ref: CompletionHandle}
-      Count: '2'
+      Handle: {Ref: controller0CompletionHandle}
+      Count: '1'
       Timeout: '1800'
-  CompletionHandle:
+  controller0CompletionHandle:
     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:
@@ -145,20 +229,66 @@ 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": [controller0, networks]} ]} ] }
+        KeystoneHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
+        RabbitHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
+        NeutronHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
+        GlanceHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
+        NovaDSN: {"Fn::Join": ['', ['mysql://nova:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ]}, '/nova']]}
+        CeilometerDSN: {"Fn::Join": ['', ['mysql://ceilometer:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ]}, '/ceilometer']]}
+        NeutronDSN: {"Fn::Join": ['', ['mysql://neutron:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ]}, '/neutron']]}
         NeutronNetworkType: "gre"
         NeutronEnableTunnelling: "True"
+        NeutronFlatNetworks:
+            Ref: NeutronFlatNetworks
         NeutronNetworkVLANRanges: ""
+        NeutronPhysicalBridge:
+            Ref: HypervisorNeutronPhysicalBridge
+        NeutronPublicInterface:
+            Ref: HypervisorNeutronPublicInterface
         NeutronBridgeMappings:
             Ref: NeutronBridgeMappings
-        RabbitPassword: "guest"
+        StaticHosts:
+          Fn::Join:
+          - "\n"
+          - - Fn::Join:
+              - "\n"
+              - Merge::Map:
+                  NovaCompute0:
+                    Fn::Join:
+                    - ' '
+                    - - Fn::Select:
+                        - 0
+                        - Fn::Select:
+                          - ctlplane
+                          - Fn::GetAtt:
+                            - NovaCompute0
+                            - networks
+                      - Fn::Select:
+                        - name
+                        - Fn::GetAtt:
+                          - NovaCompute0
+                          - show
+                      - Fn::Join:
+                        - '.'
+                        - - Fn::Select:
+                            - name
+                            - Fn::GetAtt:
+                              - NovaCompute0
+                              - show
+                          - 'novalocal'
+            - Fn::Join:
+              - ' '
+              - - Fn::Select:
+                  - 0
+                  - Fn::Select:
+                    - ctlplane
+                    - Fn::GetAtt:
+                      - controller0
+                      - networks
+                - {Ref: CloudName}
+                # If CloudName is unset, make the hosts line still valid
+                - unused
   NovaCompute0:
     Type: FileInclude
     Path: nova-compute-instance.yaml
@@ -168,7 +298,7 @@ Resources:
       Policies:
       - Ref: AccessPolicy
     Type: AWS::IAM::User
-  notcomputeConfig:
+  controller0Config:
     Type: AWS::AutoScaling::LaunchConfiguration
     Properties:
       ImageId: '0'
@@ -192,15 +322,17 @@ Resources:
         volume_size_mb: '5000'
         service-password:
           Ref: CinderPassword
+        iscsi-helper:
+          Ref: CinderISCSIHelper
       completion-handle:
-        Ref: CompletionHandle
+        Ref: controller0CompletionHandle
       controller-address:
         Fn::Select:
          - 0
          - Fn::Select:
              - 'ctlplane'
              - Fn::GetAtt:
-               - notcompute
+               - controller0
                - networks
       db-password: unset
       glance:
@@ -212,13 +344,17 @@ Resources:
            - Fn::Select:
                - 'ctlplane'
                - Fn::GetAtt:
-                 - notcompute
+                 - controller0
                  - networks
         service-password:
           Ref: GlancePassword
         swift-store-user: service:glance
         swift-store-key:
           Ref: GlancePassword
+        notifier-strategy:
+          Ref: GlanceNotifierStrategy
+        log-file:
+          Ref: GlanceLogFile
       heat:
         admin_password:
           Ref: HeatPassword
@@ -226,6 +362,7 @@ Resources:
         admin_user: heat
         auth_encryption_key: unset___________
         db: mysql://heat:unset@localhost/heat
+        stack_domain_admin_password: {Ref: HeatStackDomainAdminPassword}
         watch_server_url:
           Fn::Join:
             - ''
@@ -235,7 +372,7 @@ Resources:
                 - Fn::Select:
                   - 'ctlplane'
                   - Fn::GetAtt:
-                    - notcompute
+                    - controller0
                     - networks
               - ':8003'
         metadata_server_url:
@@ -247,7 +384,7 @@ Resources:
                 - Fn::Select:
                   - 'ctlplane'
                   - Fn::GetAtt:
-                    - notcompute
+                    - controller0
                     - networks
               - ':8000'
         waitcondition_server_url:
@@ -259,9 +396,20 @@ Resources:
                 - Fn::Select:
                   - 'ctlplane'
                   - Fn::GetAtt:
-                    - notcompute
+                    - controller0
                     - networks
               - ':8000/v1/waitcondition'
+      hosts:
+        Fn::Join:
+        - ' '
+        - - Fn::Select:
+            - 0
+            - Fn::Select:
+              - ctlplane
+              - Fn::GetAtt:
+                - controller0
+                - networks
+          - {Ref: CloudName}
       keystone:
         db: mysql://keystone:unset@localhost/keystone
         host:
@@ -270,16 +418,19 @@ Resources:
             - Fn::Select:
               - 'ctlplane'
               - Fn::GetAtt:
-                - notcompute
+                - controller0
                 - networks
+      mysql:
+        innodb_buffer_pool_size: {Ref: MysqlInnodbBufferPoolSize}
       neutron:
+        flat-networks: {Ref: NeutronFlatNetworks}
         host:
           Fn::Select:
             - 0
             - Fn::Select:
               - ctlplane
               - Fn::GetAtt:
-                - notcompute
+                - controller0
                 - networks
         metadata_proxy_shared_secret: unset
         ovs:
@@ -290,7 +441,7 @@ Resources:
               - Fn::Select:
                 - ctlplane
                 - Fn::GetAtt:
-                  - notcompute
+                  - controller0
                   - networks
           bridge_mappings: {Ref: NeutronBridgeMappings}
           public_interface:
@@ -320,7 +471,7 @@ Resources:
             - Fn::Select:
               - 'ctlplane'
               - Fn::GetAtt:
-                - notcompute
+                - controller0
                 - networks
         metadata-proxy: true
         service-password:
@@ -328,11 +479,11 @@ Resources:
       os-collect-config:
         cfn:
           access_key_id:
-            Ref: Key
-          path: notcomputeConfig.Metadata
+            Ref: controller0Key
+          path: controller0Config.Metadata
           secret_access_key:
             Fn::GetAtt:
-            - Key
+            - controller0Key
             - SecretAccessKey
           stack_name:
             Ref: AWS::StackName
@@ -343,32 +494,39 @@ Resources:
             - Fn::Select:
               - ctlplane
               - Fn::GetAtt:
-                - notcompute
+                - controller0
                 - networks
-        password: guest
+        username:
+          Ref: RabbitUserName
+        password:
+          Ref: RabbitPassword
+        cookie:
+          Fn::GetAtt:
+          - RabbitCookie
+          - value
       ntp:
         servers:
             - {server: {Ref: NtpServer}, fudge: "stratum 0"}
-  notcompute:
+  controller0:
     Type: OS::Nova::Server
     Properties:
       image:
-        Ref: notcomputeImage
+        Ref: controllerImage
       image_update_policy:
         Ref: ImageUpdatePolicy
       flavor:
-        Ref: Flavor
+        Ref: OvercloudControlFlavor
       key_name:
         Ref: KeyName
     Metadata:
       os-collect-config:
         cfn:
           access_key_id:
-            Ref: Key
-          path: notcomputeConfig.Metadata
+            Ref: controller0Key
+          path: controller0Config.Metadata
           secret_access_key:
             Fn::GetAtt:
-            - Key
+            - controller0Key
             - SecretAccessKey
           stack_name:
             Ref: AWS::StackName
@@ -384,6 +542,6 @@ Outputs:
           - Fn::Select:
             - ctlplane
             - Fn::GetAtt:
-              - notcompute
+              - controller0
               - networks
         - :5000/v2.0/