Merge "Set default network interfaces to nic1"
[apex-tripleo-heat-templates.git] / overcloud-without-mergepy.yaml
index bba63f5..094332e 100644 (file)
@@ -94,7 +94,7 @@ parameters:
     type: string
     hidden: true
   NeutronPublicInterface:
-    default: eth0
+    default: nic1
     description: What interface to bridge onto br-ex for network nodes.
     type: string
   NeutronPublicInterfaceTag:
@@ -107,12 +107,38 @@ parameters:
       overcloud.yaml to include the deployment of VLAN ports to the control
       plane.
     type: string
+  NeutronComputeAgentMode:
+    default: 'dvr'
+    description: Agent mode for the neutron-l3-agent on the compute hosts
+    type: string
+  NeutronAgentMode:
+    default: 'dvr_snat'
+    description: Agent mode for the neutron-l3-agent on the controller hosts
+    type: string
+  NeutronDVR:
+    default: 'False'
+    description: Whether to configure Neutron Distributed Virtual Routers
+    type: string
+  NeutronMetadataProxySharedSecret:
+    default: 'unset'
+    description: Shared secret to prevent spoofing
+    type: string
   NeutronTunnelTypes:
     default: 'gre'
     description: |
         The tunnel types for the Neutron tenant network. To specify multiple
         values, use a comma separated string, like so: 'gre,vxlan'
     type: string
+  NeutronMechanismDrivers:
+    default: 'openvswitch'
+    description: |
+        The mechanism drivers for the Neutron tenant network. To specify multiple
+        values, use a comma separated string, like so: 'openvswitch,l2_population'
+    type: string
+  NeutronAllowL3AgentFailover:
+    default: 'True'
+    description: Allow automatic l3-agent failover
+    type: string
   NovaPassword:
     default: unset
     description: The password for the nova service account, used by nova-api.
@@ -145,6 +171,16 @@ parameters:
     description: The password for RabbitMQ
     type: string
     hidden: true
+  RabbitClientUseSSL:
+    default: false
+    description: >
+        Rabbit client subscriber parameter to specify
+        an SSL connection to the RabbitMQ host.
+    type: string
+  RabbitClientPort:
+    default: 5672
+    description: Set rabbit subscriber port, change this if using SSL
+    type: number
   SnmpdReadonlyUserName:
     default: ro_snmp_user
     description: The user name for SNMPd with readonly rights running on all Overcloud nodes
@@ -190,7 +226,6 @@ parameters:
     constraints:
       - custom_constraint: glance.image
   OvercloudControlFlavor:
-    default: baremetal
     description: Flavor for control nodes to request when deploying.
     type: string
     constraints:
@@ -273,6 +308,15 @@ parameters:
     description: Keystone key for signing tokens.
     type: string
     hidden: true
+  KeystoneSSLCertificate:
+    default: ''
+    description: Keystone certificate for verifying token validity.
+    type: string
+  KeystoneSSLCertificateKey:
+    default: ''
+    description: Keystone key for signing tokens.
+    type: string
+    hidden: true
   MysqlInnodbBufferPoolSize:
     description: >
         Specifies the size of the buffer pool in megabytes. Setting to
@@ -353,30 +397,9 @@ parameters:
       the openvswitch agent. Typically should not need to be changed.
     type: string
   HypervisorNeutronPublicInterface:
-    default: 'eth0'
+    default: nic1
     description: What interface to add to the HypervisorNeutronPhysicalBridge.
     type: string
-  LiveUpdateComputeImage:
-    type: string
-    description: The image ID for live-updates to the overcloud compute nodes.
-    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.
-    hidden: true
-  LiveUpdateTenantName:
-    type: string
-    description: The live-update tenant name for the undercloud Glance API.
-    default: ''
-  LiveUpdateUserName:
-    type: string
-    description: The live-update username for the undercloud Glance API.
-    default: ''
   NeutronNetworkVLANRanges:
     default: 'datacentre'
     description: >
@@ -404,10 +427,34 @@ parameters:
   OvercloudComputeFlavor:
     description: Use this flavor
     type: string
-    default: baremetal
     constraints:
       - custom_constraint: nova.flavor
 
+# Block storage specific parameters
+  BlockStorageCount:
+    type: number
+    default: 1
+  BlockStorageImage:
+    default: overcloud-cinder-volume
+    type: string
+  OvercloudBlockStorageFlavor:
+    description: Flavor for block storage nodes to request when deploying.
+    type: string
+    constraints:
+      - custom_constraint: nova.flavor
+
+# Object storage specific parameters
+  ObjectStorageCount:
+    type: number
+    default: 0
+  OvercloudSwiftStorageFlavor:
+    description: Flavor for Swift storage nodes to request when deploying.
+    type: string
+    constraints:
+      - custom_constraint: nova.flavor
+  SwiftStorageImage:
+    default: overcloud-swift-storage
+    type: string
 
 resources:
 
@@ -443,6 +490,8 @@ resources:
           KeystoneCACertificate: {get_param: KeystoneCACertificate}
           KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
           KeystoneSigningKey: {get_param: KeystoneSigningKey}
+          KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
+          KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
           MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
           MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
           MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
@@ -455,17 +504,28 @@ resources:
           NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
           NeutronPassword: {get_param: NeutronPassword}
           NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
+          NeutronDVR: {get_param: NeutronDVR}
+          NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
+          NeutronAgentMode: {get_param: NeutronAgentMode}
+          NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
+          NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
           NovaPassword: {get_param: NovaPassword}
           NtpServer: {get_param: NtpServer}
           PublicVirtualInterface: {get_param: PublicVirtualInterface}
           RabbitUserName: {get_param: RabbitUserName}
           RabbitPassword: {get_param: RabbitPassword}
           RabbitCookie: {get_attr: [RabbitCookie, value]}
+          RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
+          RabbitClientPort: {get_param: RabbitClientPort}
           SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
           SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
           SSLCertificate: {get_param: SSLCertificate}
           SSLKey: {get_param: SSLKey}
           SSLCACertificate: {get_param: SSLCACertificate}
+          SwiftHashSuffix: {get_param: SwiftHashSuffix}
+          SwiftPartPower: {get_param: SwiftPartPower}
+          SwiftPassword: {get_param: SwiftPassword}
+          SwiftReplicas: { get_param: SwiftReplicas}
           VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
           PublicVirtualIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
 
@@ -489,11 +549,6 @@ resources:
           ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
           KeyName: {get_param: KeyName}
           KeystoneHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
-          LiveUpdateComputeImage: {get_param: LiveUpdateComputeImage}
-          LiveUpdateHost: {get_param: LiveUpdateHost}
-          LiveUpdatePassword: {get_param: LiveUpdatePassword}
-          LiveUpdateTenantName: {get_param: LiveUpdateTenantName}
-          LiveUpdateUserName: {get_param: LiveUpdateUserName}
           NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
           NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
           NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
@@ -504,6 +559,12 @@ resources:
           NeutronPassword: {get_param: NeutronPassword}
           NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
           NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
+          NeutronDVR: {get_param: NeutronDVR}
+          NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
+          NeutronAgentMode: {get_param: NeutronComputeAgentMode}
+          NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
+          NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
+          NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
           NovaApiHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
           NovaComputeDriver: {get_param: NovaComputeDriver}
           NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
@@ -535,6 +596,43 @@ resources:
                 - *compute_database_host
                 - /ovs_neutron
 
+  BlockStorage:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count: {get_param: BlockStorageCount}
+      resource_def:
+        type: OS::TripleO::BlockStorage
+        properties:
+          AdminPassword: {get_param: AdminPassword}
+          Image: {get_param: BlockStorageImage}
+          CinderISCSIHelper: {get_param: CinderISCSIHelper}
+          CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
+          CinderPassword: {get_param: CinderPassword}
+          VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
+          KeyName: {get_param: KeyName}
+          Flavor: {get_param: OvercloudBlockStorageFlavor}
+          RabbitPassword: {get_param: RabbitPassword}
+          RabbitUserName: {get_param: RabbitUserName}
+
+  ObjectStorage:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count: {get_param: ObjectStorageCount}
+      resource_def:
+        type: OS::TripleO::ObjectStorage
+        properties:
+          ControllerIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
+          KeyName: {get_param: KeyName}
+          NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
+          NeutronNetworkType: {get_param: NeutronNetworkType}
+          Flavor: {get_param: OvercloudSwiftStorageFlavor}
+          HashSuffix: {get_param: SwiftHashSuffix}
+          PartPower: {get_param: SwiftPartPower}
+          Password: {get_param: SwiftPassword}
+          Image: {get_param: SwiftStorageImage}
+          Replicas: { get_param: SwiftReplicas}
+
+
   allNodesConfig:
     type: OS::Heat::StructuredConfig
     properties:
@@ -549,13 +647,21 @@ resources:
             - list_join:
               - "\n"
               - {get_attr: [Controller, hosts_entry]}
-              # TODO: ADD BLOCK STORAGE ENTRY HERE
-              # TODO: ADD SWIFT STORAGE ENTRY HERE
+            - list_join:
+              - "\n"
+              - {get_attr: [BlockStorage, hosts_entry]}
+            - list_join:
+              - "\n"
+              - {get_attr: [ObjectStorage, hosts_entry]}
         rabbit:
           nodes:
             list_join:
             - ','
             - {get_attr: [Controller, hostname]}
+        sysctl:
+          net.ipv4.tcp_keepalive_time: 5
+          net.ipv4.tcp_keepalive_probes: 5
+          net.ipv4.tcp_keepalive_intvl: 1
 
   MysqlRootPassword:
     type: OS::Heat::RandomString
@@ -579,6 +685,7 @@ resources:
       name: control_virtual_ip
       network_id: {get_param: NeutronControlPlaneID}
       fixed_ips: {get_param: ControlFixedIPs}
+      replacement_policy: AUTO
 
   PublicVirtualIP:
     type: OS::Neutron::Port
@@ -586,6 +693,7 @@ resources:
       name: public_virtual_ip
       network: {get_param: PublicVirtualNetwork}
       fixed_ips: {get_param: PublicVirtualFixedIPs}
+      replacement_policy: AUTO
 
   ControllerBootstrapNodeConfig:
     type: OS::Heat::StructuredConfig
@@ -605,16 +713,18 @@ resources:
   ControllerSwiftDeployment:
     type: OS::Heat::StructuredDeployments
     properties:
-      config: {get_resource: ControllerSwiftConfig}
+      config: {get_resource: SwiftDevicesAndProxyConfig}
       servers: {get_attr: [Controller, attributes, nova_server_resource]}
       signal_transport: NO_SIGNAL
-      input_values:
-        swift_hash_suffix: {get_param: SwiftHashSuffix}
-        swift_password: {get_param: SwiftPassword}
-        swift_part_power: {get_param: SwiftPartPower}
-        swift_replicas: { get_param: SwiftReplicas}
 
-  ControllerSwiftConfig:
+  ObjectStorageSwiftDeployment:
+    type: OS::Heat::StructuredDeployments
+    properties:
+      config: {get_resource: SwiftDevicesAndProxyConfig}
+      servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
+      signal_transport: NO_SIGNAL
+
+  SwiftDevicesAndProxyConfig:
     type: OS::Heat::StructuredConfig
     properties:
       group: os-apply-config
@@ -628,18 +738,11 @@ resources:
                 - {get_attr: [Controller, swift_device]}
               - list_join:
                 - ", "
-                # TODO: replace the empty list with this:
-                # - {get_attr: [ObjectStorage, swift_device]}
-                # Once we have the swift/object-storage role
-                - []
-          hash: { get_input: swift_hash_suffix }
-          part-power: { get_input: swift_part_power }
+                - {get_attr: [ObjectStorage, swift_device]}
           proxy-memcache:
             list_join:
             - ","
             - {get_attr: [Controller, swift_proxy_memcache]}
-          replicas: {get_input: swift_replicas }
-          service-password: { get_input: swift_password }
 
   ControllerClusterConfig:
     type: OS::Heat::StructuredConfig