Use the server name attribute
[apex-tripleo-heat-templates.git] / overcloud-source.yaml
index 071335a..a9f3986 100644 (file)
@@ -25,6 +25,10 @@ parameters:
     default: 5000
     description: The size of the loopback file used by the cinder LVM driver.
     type: number
+  Debug:
+    default: ''
+    description: Set to True to enable debugging on all services.
+    type: string
   ExtraConfig:
     default: {}
     description: |
@@ -47,8 +51,8 @@ parameters:
           {"config":
             [{"section": "default",
               "values":
-                [{"option": "compute_manager",
-                  "value": "ironic.nova.compute.manager.ClusterComputeManager"
+                [{"option": "force_config_drive",
+                  "value": "always"
                  }
                 ]
              },
@@ -63,6 +67,18 @@ parameters:
           }
         }
     type: json
+  controllerExtraConfig:
+    default: {}
+    description: |
+      Controller specific configuration to inject into the cluster. Same
+      structure as ExtraConfig.
+    type: json
+  NovaComputeExtraConfig:
+    default: {}
+    description: |
+      NovaCompute specific configuration to inject into the cluster. Same
+      structure as ExtraConfig.
+    type: json
   OvercloudControlFlavor:
     default: baremetal
     description: Flavor for control nodes to request when deploying.
@@ -106,9 +122,22 @@ parameters:
     description: Name of an existing EC2 KeyPair to enable SSH access to the instances
     type: string
   NeutronBridgeMappings:
-    description: The OVS logical->physical bridge mappings to use.
+    description: >
+      The OVS logical->physical bridge mappings to use. See the Neutron
+      documentation for details. Defaults to mapping br-ex - the external
+      bridge on hosts - to a physical name 'datacentre' which can be used
+      to create provider networks (and we use this for the default floating
+      network) - if changing this either use different post-install network
+      scripts or be sure to keep 'datacentre' as a mapping network name.
+    type: string
+    default: "datacentre:br-ex"
+  NeutronNetworkVLANRanges:
+    default: 'datacentre'
+    description: >
+      The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
+      Neutron documentation for permitted values. Defaults to permitting any
+      VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
     type: string
-    default: ''
   NeutronPassword:
     default: unset
     description: The password for the neutron service account, used by neutron agents.
@@ -159,14 +188,19 @@ parameters:
     hidden: true
   NeutronFlatNetworks:
     type: string
-    default: ''
-    description: If set, flat networks to configure in neutron plugins.
+    default: 'datacentre'
+    description: >
+      If set, flat networks to configure in neutron plugins. Defaults to
+      'datacentre' to permit external network creation.
   HypervisorNeutronPhysicalBridge:
-    default: ''
-    description: An OVS bridge to create on each hypervisor.
+    default: 'br-ex'
+    description: >
+      An OVS bridge to create on each hypervisor. This defaults to br-ex the
+      same as the control plane nodes, as we have a uniform configuration of
+      the openvswitch agent. Typically should not need to be changed.
     type: string
   HypervisorNeutronPublicInterface:
-    default: ''
+    default: 'eth0'
     description: What interface to add to the HypervisorNeutronPhysicalBridge.
     type: string
   NeutronPublicInterface:
@@ -183,7 +217,7 @@ parameters:
     type: string
   NeutronPublicInterfaceTag:
     default: ''
-    description: |
+    description: >
       VLAN tag for creating a public VLAN. The tag will be used to
       create an access port on the exterior bridge for each control plane node,
       and that port will be given the IP address returned by neutron from the
@@ -265,7 +299,7 @@ parameters:
     type: json
   PublicVirtualFixedIPs:
     default: []
-    description: |
+    description: >
         Control the IP allocation for the PublicVirtualInterface port. E.g.
         [{'ip_address':'1.2.3.4'}]
     type: json
@@ -293,6 +327,12 @@ parameters:
     description: Keystone key for signing tokens.
     type: string
     hidden: true
+  DefaultSignalTransport:
+    default: CFN_SIGNAL
+    description: Transport to use for software-config signals.
+    type: string
+    constraints:
+      - allowed_values: [ CFN_SIGNAL, HEAT_SIGNAL, NO_SIGNAL ]
 resources:
   ControlVirtualIP:
     type: OS::Neutron::Port
@@ -305,6 +345,10 @@ resources:
     type: OS::Heat::RandomString
     properties:
       length: 10
+  MysqlRootPassword:
+    type: OS::Heat::RandomString
+    properties:
+      length: 10
   PublicVirtualIP:
     type: OS::Neutron::Port
     properties:
@@ -318,11 +362,13 @@ resources:
       length: 20
       salt:
         get_param: RabbitCookieSalt
-  NovaCompute0Deploy:
+  NovaCompute0Deployment:
     type: FileInclude
     Path: nova-compute-instance.yaml
-    SubKey: resources.NovaCompute0Deploy
+    SubKey: resources.NovaCompute0Deployment
     parameters:
+        DefaultSignalTransport:
+            get_param: DefaultSignalTransport
         NovaApiHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
         KeystoneHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
         NeutronHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
@@ -334,6 +380,7 @@ resources:
             - - mysql://nova:unset@
               - &compute_database_host {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
               - /nova
+        NovaPublicIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
         CeilometerDSN:
           Fn::Join:
             - ''
@@ -350,29 +397,36 @@ resources:
         NeutronEnableTunnelling: "True"
         NeutronFlatNetworks:
             get_param: NeutronFlatNetworks
-        NeutronNetworkVLANRanges: ""
+        NeutronNetworkVLANRanges:
+            get_param: NeutronNetworkVLANRanges
         NeutronPhysicalBridge:
             get_param: HypervisorNeutronPhysicalBridge
         NeutronPublicInterface:
             get_param: HypervisorNeutronPublicInterface
         NeutronBridgeMappings:
             get_param: NeutronBridgeMappings
-  NovaCompute0AllNodes:
+  NovaCompute0AllNodesDeployment:
     type: FileInclude
     Path: nova-compute-instance.yaml
-    SubKey: resources.NovaCompute0AllNodesDeploy
+    SubKey: resources.NovaCompute0AllNodesDeployment
     parameters:
         AllNodesConfig: {get_resource: allNodesConfig}
+  NovaCompute0:
+    type: FileInclude
+    Path: nova-compute-instance.yaml
+    SubKey: resources.NovaCompute0
   NovaCompute0Passthrough:
     type: FileInclude
     Path: nova-compute-instance.yaml
     SubKey: resources.NovaCompute0Passthrough
     parameters:
         passthrough_config: {get_param: ExtraConfig}
-  NovaCompute0:
+  NovaCompute0PassthroughSpecific:
     type: FileInclude
     Path: nova-compute-instance.yaml
-    SubKey: resources.NovaCompute0
+    SubKey: resources.NovaCompute0PassthroughSpecific
+    parameters:
+        passthrough_config_specific: {get_param: NovaComputeExtraConfig}
   controllerConfig:
     type: OS::Heat::StructuredConfig
     properties:
@@ -393,11 +447,9 @@ resources:
               - 0
               - Merge::Map:
                   controller0:
-                  - Fn::Select:
+                  - get_attr:
+                    - controller0
                     - name
-                    - get_attr:
-                      - controller0
-                      - show
           nodeid: {get_input: bootstack_nodeid}
         database:
           host: &database_host
@@ -409,6 +461,7 @@ resources:
               - - mysql://cinder:unset@
                 - *database_host
                 - /cinder
+          debug: {get_param: Debug}
           volume_size_mb:
             get_param: CinderLVMLoopDeviceSize
           service-password:
@@ -439,6 +492,7 @@ resources:
               - - mysql://glance:unset@
                 - *database_host
                 - /glance
+          debug: {get_param: Debug}
           host:
             get_input: controller_virtual_ip
           port:
@@ -466,6 +520,7 @@ resources:
               - - mysql://heat:unset@
                 - *database_host
                 - /heat
+          debug: {get_param: Debug}
           stack_domain_admin_password: {get_param: HeatStackDomainAdminPassword}
           watch_server_url: {get_input: heat.watch_server_url}
           metadata_server_url: {get_input: heat.metadata_server_url}
@@ -476,7 +531,7 @@ resources:
               nodes:
                 Merge::Map:
                   controller0:
-                    {get_attr: [controller0, show, name]}
+                    {get_attr: [controller0, name]}
         keystone:
           db:
             Fn::Join:
@@ -484,6 +539,7 @@ resources:
               - - mysql://keystone:unset@
                 - *database_host
                 - /keystone
+          debug: {get_param: Debug}
           host:
             get_input: controller_virtual_ip
           ca_certificate: {get_param: KeystoneCACertificate}
@@ -492,6 +548,7 @@ resources:
         mysql:
           innodb_buffer_pool_size: {get_param: MysqlInnodbBufferPoolSize}
           local_bind: true
+          root-password: {get_resource: MysqlRootPassword}
           nodes:
             Merge::Map:
               controller0:
@@ -502,6 +559,7 @@ resources:
               - - 'tripleo'
                 - {get_resource: MysqlClusterUniquePart}
         neutron:
+          debug: {get_param: Debug}
           flat-networks: {get_param: NeutronFlatNetworks}
           host: {get_input: controller_virtual_ip}
           metadata_proxy_shared_secret: unset
@@ -509,6 +567,7 @@ resources:
             enable_tunneling: 'True'
             local_ip:
               get_input: controller_host
+            network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
             bridge_mappings: {get_param: NeutronBridgeMappings}
             public_interface:
               get_param: NeutronPublicInterface
@@ -537,6 +596,7 @@ resources:
               - - mysql://ceilometer:unset@
                 - *database_host
                 - /ceilometer
+          debug: {get_param: Debug}
           metering_secret: {get_param: CeilometerMeteringSecret}
           service-password:
             get_param: CeilometerPassword
@@ -616,7 +676,7 @@ resources:
             Merge::Map:
               controller0:
                 ip: {get_attr: [controller0, networks, ctlplane, 0]}
-                name: {get_attr: [controller0, show, name]}
+                name: {get_attr: [controller0, name]}
           net_binds:
             - ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
           services:
@@ -656,6 +716,9 @@ resources:
               port: 3306
               extra_server_params:
                 - backup
+              options:
+                - timeout client 0
+                - timeout server 0
             - name: nova_ec2
               port: 8773
             - name: nova_osapi
@@ -680,6 +743,11 @@ resources:
     properties:
       group: os-apply-config
       config: {get_input: passthrough_config}
+  controllerPassthroughSpecific:
+    type: OS::Heat::StructuredConfig
+    properties:
+      group: os-apply-config
+      config: {get_input: passthrough_config_specific}
   controller0:
     type: OS::Nova::Server
     properties:
@@ -694,10 +762,11 @@ resources:
       networks:
         - network: ctlplane
       user_data_format: SOFTWARE_CONFIG
-  controller0AllNodes:
-    depends_on: [controller0Deployment,controller0SSLDeployment,controller0Swift,controller0Passthrough]
+  controller0AllNodesDeployment:
+    depends_on: [controller0Deployment,controller0SSLDeployment,controller0Swift,controller0PassthroughSpecific]
     type: OS::Heat::StructuredDeployment
     properties:
+      signal_transport: {get_param: DefaultSignalTransport}
       config: {get_resource: allNodesConfig}
       server: {get_resource: controller0}
   controller0Deployment:
@@ -707,7 +776,7 @@ resources:
       config: {get_resource: controllerConfig}
       server: {get_resource: controller0}
       input_values:
-        bootstack_nodeid: {get_attr: [controller0, show, name]}
+        bootstack_nodeid: {get_attr: [controller0, name]}
         controller_host: {get_attr: [controller0, networks, ctlplane, 0]}
         controller_virtual_ip:
           {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
@@ -744,10 +813,10 @@ resources:
                     Fn::Join:
                     - ' '
                     - - {get_attr: [NovaCompute0, networks, ctlplane, 0]}
-                      - {get_attr: [NovaCompute0, show, name]}
+                      - {get_attr: [NovaCompute0, name]}
                       - Fn::Join:
                         - '.'
-                        - - {get_attr: [NovaCompute0, show, name]}
+                        - - {get_attr: [NovaCompute0, name]}
                           - 'novalocal'
             - Fn::Join:
               - "\n"
@@ -756,10 +825,10 @@ resources:
                     Fn::Join:
                     - ' '
                     - - {get_attr: [BlockStorage0, networks, ctlplane, 0]}
-                      - {get_attr: [BlockStorage0, show, name]}
+                      - {get_attr: [BlockStorage0, name]}
                       - Fn::Join:
                         - '.'
-                        - - {get_attr: [BlockStorage0, show, name]}
+                        - - {get_attr: [BlockStorage0, name]}
                           - 'novalocal'
             - Fn::Join:
               - "\n"
@@ -768,10 +837,10 @@ resources:
                     Fn::Join:
                     - ' '
                     - - {get_attr: [SwiftStorage0, networks, ctlplane, 0]}
-                      - {get_attr: [SwiftStorage0, show, name]}
+                      - {get_attr: [SwiftStorage0, name]}
                       - Fn::Join:
                         - '.'
-                        - - {get_attr: [SwiftStorage0, show, name]}
+                        - - {get_attr: [SwiftStorage0, name]}
                           - 'novalocal'
             - Fn::Join:
               - "\n"
@@ -780,10 +849,10 @@ resources:
                     Fn::Join:
                     - ' '
                     - - {get_attr: [controller0, networks, ctlplane, 0]}
-                      - {get_attr: [controller0, show, name]}
+                      - {get_attr: [controller0, name]}
                       - Fn::Join:
                         - '.'
-                        - - {get_attr: [controller0, show, name]}
+                        - - {get_attr: [controller0, name]}
                           - 'novalocal'
                       - {get_param: CloudName}
         rabbit:
@@ -792,7 +861,7 @@ resources:
               - ','
               - Merge::Map:
                   controller0:
-                    {get_attr: [controller0, show, name]}
+                    {get_attr: [controller0, name]}
   controller0SSLDeployment:
     type: OS::Heat::StructuredDeployment
     properties:
@@ -812,6 +881,15 @@ resources:
       signal_transport: NO_SIGNAL
       input_values:
         passthrough_config: {get_param: ExtraConfig}
+  controller0PassthroughSpecific:
+    depends_on: [controller0Passthrough]
+    type: OS::Heat::StructuredDeployment
+    properties:
+      config: {get_resource: controllerPassthroughSpecific}
+      server: {get_resource: controller0}
+      signal_transport: NO_SIGNAL
+      input_values:
+        passthrough_config_specific: {get_param: controllerExtraConfig}
 outputs:
   KeystoneURL:
     description: URL for the Overcloud Keystone service