Merge "Moves the swift start/stop into the common_functions.sh file"
[apex-tripleo-heat-templates.git] / overcloud.yaml
index 8bb4014..0499fa6 100644 (file)
@@ -65,7 +65,7 @@ parameters:
     description: Whether to enable or not the Rbd backend for Cinder
     type: boolean
   CloudName:
-    default: ''
+    default: overcloud
     description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
     type: string
   ControlFixedIPs:
@@ -88,6 +88,12 @@ parameters:
     default: 'REBUILD_PRESERVE_EPHEMERAL'
     description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
     type: string
+  InternalApiVirtualFixedIPs:
+    default: []
+    description: >
+        Control the IP allocation for the InternalApiVirtualInterface port. E.g.
+        [{'ip_address':'1.2.3.4'}]
+    type: json
   KeyName:
     default: default
     description: Name of an existing Nova key pair to enable SSH access to the instances
@@ -168,6 +174,15 @@ parameters:
     description: Shared secret to prevent spoofing
     type: string
     hidden: true
+  NeutronTenantMtu:
+    description: >
+      The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
+      be at least 50 bytes smaller than the MTU on the physical network. This
+      value will be used to set the MTU on the virtual Ethernet device.
+      This value will be used to construct the NeutronDnsmasqOptions, since that
+      will determine the MTU that is assigned to the VM host through DHCP.
+    default: "1400"
+    type: string
   NeutronTunnelTypes:
     default: 'vxlan'
     description: |
@@ -177,13 +192,13 @@ parameters:
     description: |
         Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
         of GRE tunnel IDs that are available for tenant network allocation
-    default: ["1:1000", ]
+    default: ["1:4094", ]
     type: comma_delimited_list
   NeutronVniRanges:
     description: |
         Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
         of VXLAN VNI IDs that are available for tenant network allocation
-    default: ["1:1000", ]
+    default: ["1:4094", ]
     type: comma_delimited_list
   NeutronCorePlugin:
     default: 'ml2'
@@ -192,7 +207,7 @@ parameters:
         from neutron.core_plugins namespace.
     type: string
   NeutronServicePlugins:
-    default: "router"
+    default: "router,qos"
     description: |
         Comma-separated list of service plugin entrypoints to be loaded from the
         neutron.service_plugins namespace.
@@ -207,6 +222,16 @@ parameters:
     description: |
         The mechanism drivers for the Neutron tenant network.
     type: comma_delimited_list
+  NeutronPluginExtensions:
+    default: "qos,port_security"
+    description: |
+        Comma-separated list of extensions enabled for the Neutron plugin.
+    type: comma_delimited_list
+  NeutronAgentExtensions:
+    default: "qos"
+    description: |
+        Comma-separated list of extensions enabled for the Neutron agents.
+    type: comma_delimited_list
   NeutronAllowL3AgentFailover:
     default: 'False'
     description: Allow automatic l3-agent failover
@@ -274,6 +299,18 @@ parameters:
     description: The user password for SNMPd with readonly rights running on all Overcloud nodes
     type: string
     hidden: true
+  StorageVirtualFixedIPs:
+    default: []
+    description: >
+        Control the IP allocation for the StorageVirtualInterface port. E.g.
+        [{'ip_address':'1.2.3.4'}]
+    type: json
+  StorageMgmtVirtualFixedIPs:
+    default: []
+    description: >
+        Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
+        [{'ip_address':'1.2.3.4'}]
+    type: json
   TimeZone:
     default: 'UTC'
     description: The timezone to be set on nodes.
@@ -297,7 +334,7 @@ parameters:
     type: string
     hidden: true
   CinderLVMLoopDeviceSize:
-    default: 5000
+    default: 10280
     description: The size of the loopback file used by the cinder LVM driver.
     type: number
   CinderNfsMountOptions:
@@ -333,11 +370,12 @@ parameters:
     type: json
   controllerImage:
     type: string
-    default: overcloud-control
+    default: overcloud-full
     constraints:
       - custom_constraint: glance.image
   OvercloudControlFlavor:
     description: Flavor for control nodes to request when deploying.
+    default: baremetal
     type: string
     constraints:
       - custom_constraint: nova.flavor
@@ -487,8 +525,11 @@ parameters:
     type: number
     default: 4096
   NeutronDnsmasqOptions:
-    default: 'dhcp-option-force=26,1400'
-    description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
+    default: 'dhcp-option-force=26,%MTU%'
+    description: >
+      Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU
+      to be set to the value of NeutronTenantMtu, which should be set to account
+      for tunnel overhead.
     type: string
   NeutronPublicInterfaceDefaultRoute:
     default: ''
@@ -532,6 +573,10 @@ parameters:
     type: number
     default: 3
     description: How many replicas to use in the swift rings.
+  SaharaPassword:
+    description: The password for the sahara service account.
+    type: string
+    hidden: true
 
 # Compute-specific params
   CeilometerComputeAgent:
@@ -555,7 +600,7 @@ parameters:
     description: What interface to add to the HypervisorNeutronPhysicalBridge.
     type: string
   NeutronNetworkVLANRanges:
-    default: 'datacentre'
+    default: 'datacentre:1:1000'
     description: >
       The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
       Neutron documentation for permitted values. Defaults to permitting any
@@ -571,7 +616,7 @@ parameters:
       structure as ExtraConfig.
     type: json
   NovaComputeLibvirtType:
-    default: ''
+    default: kvm
     type: string
   NovaComputeLibvirtVifDriver:
     default: ''
@@ -587,7 +632,7 @@ parameters:
     type: boolean
   NovaImage:
     type: string
-    default: overcloud-compute
+    default: overcloud-full
     constraints:
       - custom_constraint: glance.image
   NovaOVSBridge:
@@ -600,6 +645,7 @@ parameters:
     type: string
   OvercloudComputeFlavor:
     description: Use this flavor
+    default: baremetal
     type: string
     constraints:
       - custom_constraint: nova.flavor
@@ -621,6 +667,7 @@ parameters:
       NovaVncProxyNetwork: internal_api
       SwiftMgmtNetwork: storage_mgmt
       SwiftProxyNetwork: storage
+      SaharaApiNetwork: internal_api
       HorizonNetwork: internal_api
       MemcachedNetwork: internal_api
       RabbitMqNetwork: internal_api
@@ -642,10 +689,11 @@ parameters:
     type: number
     default: 0
   BlockStorageImage:
-    default: overcloud-cinder-volume
+    default: overcloud-full
     type: string
   OvercloudBlockStorageFlavor:
     description: Flavor for block storage nodes to request when deploying.
+    default: baremetal
     type: string
     constraints:
       - custom_constraint: nova.flavor
@@ -667,11 +715,12 @@ parameters:
     default: 0
   OvercloudSwiftStorageFlavor:
     description: Flavor for Swift storage nodes to request when deploying.
+    default: baremetal
     type: string
     constraints:
       - custom_constraint: nova.flavor
   SwiftStorageImage:
-    default: overcloud-swift-storage
+    default: overcloud-full
     type: string
   ObjectStorageExtraConfig:
     default: {}
@@ -689,7 +738,7 @@ parameters:
     type: number
     default: 0
   CephStorageImage:
-    default: overcloud-ceph-storage
+    default: overcloud-full
     type: string
   OvercloudCephStorageFlavor:
     default: baremetal
@@ -812,6 +861,7 @@ resources:
       MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
       NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
       NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
+      SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
       SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
       PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
 
@@ -837,7 +887,6 @@ resources:
           CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
           CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
           CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
-          CloudName: {get_param: CloudName}
           CloudDomain: {get_param: CloudDomain}
           ControlVirtualInterface: {get_param: ControlVirtualInterface}
           ControllerExtraConfig: {get_param: controllerExtraConfig}
@@ -879,6 +928,7 @@ resources:
           NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
           NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
           NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
+          NeutronTenantMtu: {get_param: NeutronTenantMtu}
           NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
           NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
           NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
@@ -888,7 +938,11 @@ resources:
           NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
           NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
           NeutronPassword: {get_param: NeutronPassword}
-          NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
+          NeutronDnsmasqOptions:
+            str_replace:
+              template: {get_param: NeutronDnsmasqOptions}
+              params:
+                '%MTU%': {get_param: NeutronTenantMtu}
           NeutronDVR: {get_param: NeutronDVR}
           NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
           NeutronAgentMode: {get_param: NeutronAgentMode}
@@ -896,6 +950,8 @@ resources:
           NeutronServicePlugins: {get_param: NeutronServicePlugins}
           NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
           NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
+          NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
+          NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
           NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
           NeutronL3HA: {get_param: NeutronL3HA}
           NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
@@ -912,6 +968,7 @@ resources:
           RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
           RabbitClientPort: {get_param: RabbitClientPort}
           RabbitFDLimit: {get_param: RabbitFDLimit}
+          SaharaPassword: {get_param: SaharaPassword}
           SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
           SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
           RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
@@ -938,6 +995,7 @@ resources:
           KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
           NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
           NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
+          SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
           UpdateIdentifier: {get_param: UpdateIdentifier}
           Hostname:
             str_replace:
@@ -973,6 +1031,7 @@ resources:
           KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
           KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
           NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
+          NeutronTenantMtu: {get_param: NeutronTenantMtu}
           NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
           NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
           NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
@@ -991,6 +1050,7 @@ resources:
           NeutronServicePlugins: {get_param: NeutronServicePlugins}
           NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
           NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
+          NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
           # L3 HA and Failover is not relevant for Computes, should be removed
           NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
           NeutronL3HA: {get_param: NeutronL3HA}
@@ -1163,6 +1223,7 @@ resources:
       neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
       keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
       keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
+      sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
       DeployIdentifier: {get_param: DeployIdentifier}
       UpdateIdentifier: {get_param: UpdateIdentifier}
 
@@ -1221,6 +1282,7 @@ resources:
     properties:
       ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
       PortName: internal_api_virtual_ip
+      FixedIPs: {get_param: InternalApiVirtualFixedIPs}
 
   StorageVirtualIP:
     depends_on: Networks
@@ -1228,6 +1290,7 @@ resources:
     properties:
       ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
       PortName: storage_virtual_ip
+      FixedIPs: {get_param: StorageVirtualFixedIPs}
 
   StorageMgmtVirtualIP:
     depends_on: Networks
@@ -1235,6 +1298,7 @@ resources:
     properties:
       ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
       PortName: storage_management_virtual_ip
+      FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
 
   VipMap:
     type: OS::TripleO::Network::Ports::NetVipMap
@@ -1252,6 +1316,7 @@ resources:
   VipDeployment:
     type: OS::Heat::StructuredDeployments
     properties:
+      name: VipDeployment
       config: {get_resource: VipConfig}
       servers: {get_attr: [Controller, attributes, nova_server_resource]}
       input_values:
@@ -1275,6 +1340,7 @@ resources:
         control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
         public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
         internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
+        sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
         storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
         storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
 
@@ -1287,18 +1353,21 @@ resources:
   ControllerBootstrapNodeDeployment:
     type: OS::Heat::StructuredDeployments
     properties:
+      name: ControllerBootstrapNodeDeployment
       config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
       servers: {get_attr: [Controller, attributes, nova_server_resource]}
 
   ControllerSwiftDeployment:
     type: OS::Heat::StructuredDeployments
     properties:
+      name: ControllerSwiftDeployment
       config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
       servers: {get_attr: [Controller, attributes, nova_server_resource]}
 
   ObjectStorageSwiftDeployment:
     type: OS::Heat::StructuredDeployments
     properties:
+      name: ObjectStorageSwiftDeployment
       config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
       servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
 
@@ -1312,18 +1381,21 @@ resources:
   ComputeCephDeployment:
     type: OS::Heat::StructuredDeployments
     properties:
+      name: ComputeCephDeployment
       config: {get_attr: [CephClusterConfig, config_id]}
       servers: {get_attr: [Compute, attributes, nova_server_resource]}
 
   ControllerCephDeployment:
     type: OS::Heat::StructuredDeployments
     properties:
+      name: ControllerCephDeployment
       config: {get_attr: [CephClusterConfig, config_id]}
       servers: {get_attr: [Controller, attributes, nova_server_resource]}
 
   CephStorageCephDeployment:
     type: OS::Heat::StructuredDeployments
     properties:
+      name: CephStorageCephDeployment
       config: {get_attr: [CephClusterConfig, config_id]}
       servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
 
@@ -1358,36 +1430,42 @@ resources:
   ControllerClusterDeployment:
     type: OS::Heat::StructuredDeployments
     properties:
+      name: ControllerClusterDeployment
       config: {get_resource: ControllerClusterConfig}
       servers: {get_attr: [Controller, attributes, nova_server_resource]}
 
   ControllerAllNodesDeployment:
     type: OS::Heat::StructuredDeployments
     properties:
+      name: ControllerAllNodesDeployment
       config: {get_attr: [allNodesConfig, config_id]}
       servers: {get_attr: [Controller, attributes, nova_server_resource]}
 
   ComputeAllNodesDeployment:
     type: OS::Heat::StructuredDeployments
     properties:
+      name: ComputeAllNodesDeployment
       config: {get_attr: [allNodesConfig, config_id]}
       servers: {get_attr: [Compute, attributes, nova_server_resource]}
 
   BlockStorageAllNodesDeployment:
     type: OS::Heat::StructuredDeployments
     properties:
+      name: BlockStorageAllNodesDeployment
       config: {get_attr: [allNodesConfig, config_id]}
       servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
 
   ObjectStorageAllNodesDeployment:
     type: OS::Heat::StructuredDeployments
     properties:
+      name: ObjectStorageAllNodesDeployment
       config: {get_attr: [allNodesConfig, config_id]}
       servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
 
   CephStorageAllNodesDeployment:
     type: OS::Heat::StructuredDeployments
     properties:
+      name: CephStorageAllNodesDeployment
       config: {get_attr: [allNodesConfig, config_id]}
       servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
 
@@ -1408,6 +1486,7 @@ resources:
     type: OS::Heat::StructuredDeployments
     depends_on: ControllerAllNodesDeployment
     properties:
+      name: ControllerAllNodesValidationDeployment
       config: {get_resource: AllNodesValidationConfig}
       servers: {get_attr: [Controller, attributes, nova_server_resource]}
 
@@ -1415,6 +1494,7 @@ resources:
     type: OS::Heat::StructuredDeployments
     depends_on: ComputeAllNodesDeployment
     properties:
+      name: ComputeAllNodesValidationDeployment
       config: {get_resource: AllNodesValidationConfig}
       servers: {get_attr: [Compute, attributes, nova_server_resource]}
 
@@ -1422,6 +1502,7 @@ resources:
     type: OS::Heat::StructuredDeployments
     depends_on: BlockStorageAllNodesDeployment
     properties:
+      name: BlockStorageAllNodesValidationDeployment
       config: {get_resource: AllNodesValidationConfig}
       servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
 
@@ -1429,6 +1510,7 @@ resources:
     type: OS::Heat::StructuredDeployments
     depends_on: ObjectStorageAllNodesDeployment
     properties:
+      name: ObjectStorageAllNodesValidationDeployment
       config: {get_resource: AllNodesValidationConfig}
       servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
 
@@ -1436,13 +1518,27 @@ resources:
     type: OS::Heat::StructuredDeployments
     depends_on: CephStorageAllNodesDeployment
     properties:
+      name: CephStorageAllNodesValidationDeployment
       config: {get_resource: AllNodesValidationConfig}
       servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
 
+  UpdateWorkflow:
+    type: OS::TripleO::Tasks::UpdateWorkflow
+    properties:
+      controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
+      compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
+      blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
+      objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
+      cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
+      input_values:
+        deploy_identifier: {get_param: DeployIdentifier}
+        update_identifier: {get_param: UpdateIdentifier}
+
   # Optional ExtraConfig for all nodes - all roles are passed in here, but
   # the nested template may configure each role differently (or not at all)
   AllNodesExtraConfig:
     type: OS::TripleO::AllNodesExtraConfig
+    depends_on: UpdateWorkflow
     properties:
       controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
       compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
@@ -1532,6 +1628,9 @@ outputs:
   NovaInternalVip:
     description: VIP for Nova API internal endpoint
     value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
+  SaharaInternalVip:
+    description: VIP for Sahara API internal endpoint
+    value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
   SwiftInternalVip:
     description: VIP for Swift Proxy internal endpoint
     value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}