Use the server name attribute
[apex-tripleo-heat-templates.git] / overcloud-source.yaml
index e9b7c7a..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
     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: |
   ExtraConfig:
     default: {}
     description: |
@@ -47,8 +51,8 @@ parameters:
           {"config":
             [{"section": "default",
               "values":
           {"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
           }
         }
     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.
   OvercloudControlFlavor:
     default: baremetal
     description: Flavor for control nodes to request when deploying.
@@ -106,7 +122,7 @@ parameters:
     description: Name of an existing EC2 KeyPair to enable SSH access to the instances
     type: string
   NeutronBridgeMappings:
     description: Name of an existing EC2 KeyPair to enable SSH access to the instances
     type: string
   NeutronBridgeMappings:
-    description: |
+    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
       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
@@ -117,7 +133,7 @@ parameters:
     default: "datacentre:br-ex"
   NeutronNetworkVLANRanges:
     default: 'datacentre'
     default: "datacentre:br-ex"
   NeutronNetworkVLANRanges:
     default: 'datacentre'
-    description: |
+    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).
       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).
@@ -173,12 +189,12 @@ parameters:
   NeutronFlatNetworks:
     type: string
     default: 'datacentre'
   NeutronFlatNetworks:
     type: string
     default: 'datacentre'
-    description: |
+    description: >
       If set, flat networks to configure in neutron plugins. Defaults to
       'datacentre' to permit external network creation.
   HypervisorNeutronPhysicalBridge:
     default: 'br-ex'
       If set, flat networks to configure in neutron plugins. Defaults to
       'datacentre' to permit external network creation.
   HypervisorNeutronPhysicalBridge:
     default: 'br-ex'
-    description: |
+    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.
       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.
@@ -199,6 +215,16 @@ parameters:
     default: ''
     description: A custom IP address to put onto the NeutronPublicInterface.
     type: string
     default: ''
     description: A custom IP address to put onto the NeutronPublicInterface.
     type: string
+  NeutronPublicInterfaceTag:
+    default: ''
+    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
+      public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
+      overcloud.yaml to include the deployment of VLAN ports to the control
+      plane.
+    type: string
   NeutronPublicInterfaceRawDevice:
     default: ''
     description: If set, the public interface is a vlan with this device as the raw device.
   NeutronPublicInterfaceRawDevice:
     default: ''
     description: If set, the public interface is a vlan with this device as the raw device.
@@ -273,7 +299,7 @@ parameters:
     type: json
   PublicVirtualFixedIPs:
     default: []
     type: json
   PublicVirtualFixedIPs:
     default: []
-    description: |
+    description: >
         Control the IP allocation for the PublicVirtualInterface port. E.g.
         [{'ip_address':'1.2.3.4'}]
     type: json
         Control the IP allocation for the PublicVirtualInterface port. E.g.
         [{'ip_address':'1.2.3.4'}]
     type: json
@@ -301,6 +327,12 @@ parameters:
     description: Keystone key for signing tokens.
     type: string
     hidden: true
     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
 resources:
   ControlVirtualIP:
     type: OS::Neutron::Port
@@ -313,6 +345,10 @@ resources:
     type: OS::Heat::RandomString
     properties:
       length: 10
     type: OS::Heat::RandomString
     properties:
       length: 10
+  MysqlRootPassword:
+    type: OS::Heat::RandomString
+    properties:
+      length: 10
   PublicVirtualIP:
     type: OS::Neutron::Port
     properties:
   PublicVirtualIP:
     type: OS::Neutron::Port
     properties:
@@ -326,11 +362,13 @@ resources:
       length: 20
       salt:
         get_param: RabbitCookieSalt
       length: 20
       salt:
         get_param: RabbitCookieSalt
-  NovaCompute0Deploy:
+  NovaCompute0Deployment:
     type: FileInclude
     Path: nova-compute-instance.yaml
     type: FileInclude
     Path: nova-compute-instance.yaml
-    SubKey: resources.NovaCompute0Deploy
+    SubKey: resources.NovaCompute0Deployment
     parameters:
     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]}
         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]}
@@ -342,6 +380,7 @@ resources:
             - - mysql://nova:unset@
               - &compute_database_host {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
               - /nova
             - - 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:
             - ''
         CeilometerDSN:
           Fn::Join:
             - ''
@@ -366,22 +405,28 @@ resources:
             get_param: HypervisorNeutronPublicInterface
         NeutronBridgeMappings:
             get_param: NeutronBridgeMappings
             get_param: HypervisorNeutronPublicInterface
         NeutronBridgeMappings:
             get_param: NeutronBridgeMappings
-  NovaCompute0AllNodes:
+  NovaCompute0AllNodesDeployment:
     type: FileInclude
     Path: nova-compute-instance.yaml
     type: FileInclude
     Path: nova-compute-instance.yaml
-    SubKey: resources.NovaCompute0AllNodesDeploy
+    SubKey: resources.NovaCompute0AllNodesDeployment
     parameters:
         AllNodesConfig: {get_resource: allNodesConfig}
     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}
   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
     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:
   controllerConfig:
     type: OS::Heat::StructuredConfig
     properties:
@@ -402,11 +447,9 @@ resources:
               - 0
               - Merge::Map:
                   controller0:
               - 0
               - Merge::Map:
                   controller0:
-                  - Fn::Select:
+                  - get_attr:
+                    - controller0
                     - name
                     - name
-                    - get_attr:
-                      - controller0
-                      - show
           nodeid: {get_input: bootstack_nodeid}
         database:
           host: &database_host
           nodeid: {get_input: bootstack_nodeid}
         database:
           host: &database_host
@@ -418,6 +461,7 @@ resources:
               - - mysql://cinder:unset@
                 - *database_host
                 - /cinder
               - - mysql://cinder:unset@
                 - *database_host
                 - /cinder
+          debug: {get_param: Debug}
           volume_size_mb:
             get_param: CinderLVMLoopDeviceSize
           service-password:
           volume_size_mb:
             get_param: CinderLVMLoopDeviceSize
           service-password:
@@ -448,6 +492,7 @@ resources:
               - - mysql://glance:unset@
                 - *database_host
                 - /glance
               - - mysql://glance:unset@
                 - *database_host
                 - /glance
+          debug: {get_param: Debug}
           host:
             get_input: controller_virtual_ip
           port:
           host:
             get_input: controller_virtual_ip
           port:
@@ -475,6 +520,7 @@ resources:
               - - mysql://heat:unset@
                 - *database_host
                 - /heat
               - - 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}
           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}
@@ -485,7 +531,7 @@ resources:
               nodes:
                 Merge::Map:
                   controller0:
               nodes:
                 Merge::Map:
                   controller0:
-                    {get_attr: [controller0, show, name]}
+                    {get_attr: [controller0, name]}
         keystone:
           db:
             Fn::Join:
         keystone:
           db:
             Fn::Join:
@@ -493,6 +539,7 @@ resources:
               - - mysql://keystone:unset@
                 - *database_host
                 - /keystone
               - - mysql://keystone:unset@
                 - *database_host
                 - /keystone
+          debug: {get_param: Debug}
           host:
             get_input: controller_virtual_ip
           ca_certificate: {get_param: KeystoneCACertificate}
           host:
             get_input: controller_virtual_ip
           ca_certificate: {get_param: KeystoneCACertificate}
@@ -501,6 +548,7 @@ resources:
         mysql:
           innodb_buffer_pool_size: {get_param: MysqlInnodbBufferPoolSize}
           local_bind: true
         mysql:
           innodb_buffer_pool_size: {get_param: MysqlInnodbBufferPoolSize}
           local_bind: true
+          root-password: {get_resource: MysqlRootPassword}
           nodes:
             Merge::Map:
               controller0:
           nodes:
             Merge::Map:
               controller0:
@@ -511,6 +559,7 @@ resources:
               - - 'tripleo'
                 - {get_resource: MysqlClusterUniquePart}
         neutron:
               - - '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
           flat-networks: {get_param: NeutronFlatNetworks}
           host: {get_input: controller_virtual_ip}
           metadata_proxy_shared_secret: unset
@@ -526,6 +575,8 @@ resources:
               get_param: NeutronPublicInterfaceRawDevice
             public_interface_route:
               get_param: NeutronPublicInterfaceDefaultRoute
               get_param: NeutronPublicInterfaceRawDevice
             public_interface_route:
               get_param: NeutronPublicInterfaceDefaultRoute
+            public_interface_tag:
+              get_param: NeutronPublicInterfaceTag
             physical_bridge: br-ex
             tenant_network_type: gre
           ovs_db:
             physical_bridge: br-ex
             tenant_network_type: gre
           ovs_db:
@@ -545,6 +596,7 @@ resources:
               - - mysql://ceilometer:unset@
                 - *database_host
                 - /ceilometer
               - - mysql://ceilometer:unset@
                 - *database_host
                 - /ceilometer
+          debug: {get_param: Debug}
           metering_secret: {get_param: CeilometerMeteringSecret}
           service-password:
             get_param: CeilometerPassword
           metering_secret: {get_param: CeilometerMeteringSecret}
           service-password:
             get_param: CeilometerPassword
@@ -624,7 +676,7 @@ resources:
             Merge::Map:
               controller0:
                 ip: {get_attr: [controller0, networks, ctlplane, 0]}
             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:
           net_binds:
             - ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
           services:
@@ -664,6 +716,9 @@ resources:
               port: 3306
               extra_server_params:
                 - backup
               port: 3306
               extra_server_params:
                 - backup
+              options:
+                - timeout client 0
+                - timeout server 0
             - name: nova_ec2
               port: 8773
             - name: nova_osapi
             - name: nova_ec2
               port: 8773
             - name: nova_osapi
@@ -688,6 +743,11 @@ resources:
     properties:
       group: os-apply-config
       config: {get_input: passthrough_config}
     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:
   controller0:
     type: OS::Nova::Server
     properties:
@@ -702,10 +762,11 @@ resources:
       networks:
         - network: ctlplane
       user_data_format: SOFTWARE_CONFIG
       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:
     type: OS::Heat::StructuredDeployment
     properties:
+      signal_transport: {get_param: DefaultSignalTransport}
       config: {get_resource: allNodesConfig}
       server: {get_resource: controller0}
   controller0Deployment:
       config: {get_resource: allNodesConfig}
       server: {get_resource: controller0}
   controller0Deployment:
@@ -715,7 +776,7 @@ resources:
       config: {get_resource: controllerConfig}
       server: {get_resource: controller0}
       input_values:
       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]}
         controller_host: {get_attr: [controller0, networks, ctlplane, 0]}
         controller_virtual_ip:
           {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
@@ -752,10 +813,34 @@ resources:
                     Fn::Join:
                     - ' '
                     - - {get_attr: [NovaCompute0, networks, ctlplane, 0]}
                     Fn::Join:
                     - ' '
                     - - {get_attr: [NovaCompute0, networks, ctlplane, 0]}
-                      - {get_attr: [NovaCompute0, show, name]}
+                      - {get_attr: [NovaCompute0, name]}
+                      - Fn::Join:
+                        - '.'
+                        - - {get_attr: [NovaCompute0, name]}
+                          - 'novalocal'
+            - Fn::Join:
+              - "\n"
+              - Merge::Map:
+                  BlockStorage0:
+                    Fn::Join:
+                    - ' '
+                    - - {get_attr: [BlockStorage0, networks, ctlplane, 0]}
+                      - {get_attr: [BlockStorage0, name]}
                       - Fn::Join:
                         - '.'
                       - Fn::Join:
                         - '.'
-                        - - {get_attr: [NovaCompute0, show, name]}
+                        - - {get_attr: [BlockStorage0, name]}
+                          - 'novalocal'
+            - Fn::Join:
+              - "\n"
+              - Merge::Map:
+                  SwiftStorage0:
+                    Fn::Join:
+                    - ' '
+                    - - {get_attr: [SwiftStorage0, networks, ctlplane, 0]}
+                      - {get_attr: [SwiftStorage0, name]}
+                      - Fn::Join:
+                        - '.'
+                        - - {get_attr: [SwiftStorage0, name]}
                           - 'novalocal'
             - Fn::Join:
               - "\n"
                           - 'novalocal'
             - Fn::Join:
               - "\n"
@@ -764,10 +849,10 @@ resources:
                     Fn::Join:
                     - ' '
                     - - {get_attr: [controller0, networks, ctlplane, 0]}
                     Fn::Join:
                     - ' '
                     - - {get_attr: [controller0, networks, ctlplane, 0]}
-                      - {get_attr: [controller0, show, name]}
+                      - {get_attr: [controller0, name]}
                       - Fn::Join:
                         - '.'
                       - Fn::Join:
                         - '.'
-                        - - {get_attr: [controller0, show, name]}
+                        - - {get_attr: [controller0, name]}
                           - 'novalocal'
                       - {get_param: CloudName}
         rabbit:
                           - 'novalocal'
                       - {get_param: CloudName}
         rabbit:
@@ -776,7 +861,7 @@ resources:
               - ','
               - Merge::Map:
                   controller0:
               - ','
               - Merge::Map:
                   controller0:
-                    {get_attr: [controller0, show, name]}
+                    {get_attr: [controller0, name]}
   controller0SSLDeployment:
     type: OS::Heat::StructuredDeployment
     properties:
   controller0SSLDeployment:
     type: OS::Heat::StructuredDeployment
     properties:
@@ -796,6 +881,15 @@ resources:
       signal_transport: NO_SIGNAL
       input_values:
         passthrough_config: {get_param: ExtraConfig}
       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
 outputs:
   KeystoneURL:
     description: URL for the Overcloud Keystone service