Merge "Align template defaults with the client"
[apex-tripleo-heat-templates.git] / overcloud.yaml
index f7074a7..738dcfb 100644 (file)
@@ -13,7 +13,6 @@ parameters:
 
   # Common parameters (not specific to a role)
   AdminPassword:
-    default: unset
     description: The password for the keystone admin account, used for monitoring, querying neutron etc.
     type: string
     hidden: true
@@ -22,12 +21,10 @@ parameters:
     description: The ceilometer backend type.
     type: string
   CeilometerMeteringSecret:
-    default: unset
     description: Secret shared by the ceilometer services.
     type: string
     hidden: true
   CeilometerPassword:
-    default: unset
     description: The password for the ceilometer service account.
     type: string
     hidden: true
@@ -68,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:
@@ -93,7 +90,7 @@ parameters:
     type: string
   KeyName:
     default: default
-    description: Name of an existing EC2 KeyPair to enable SSH access to the instances
+    description: Name of an existing Nova key pair to enable SSH access to the instances
     type: string
     constraints:
       - custom_constraint: nova.keypair
@@ -109,7 +106,7 @@ parameters:
       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
+    type: comma_delimited_list
     default: "datacentre:br-ex"
   NeutronControlPlaneID:
     default: 'ctlplane'
@@ -128,17 +125,16 @@ parameters:
         Enable/disable the L2 population feature in the Neutron agents.
     default: "False"
   NeutronFlatNetworks:
-    type: string
+    type: comma_delimited_list
     default: 'datacentre'
     description: >
       If set, flat networks to configure in neutron plugins. Defaults to
       'datacentre' to permit external network creation.
   NeutronNetworkType:
     default: 'vxlan'
-    description: The tenant network type for Neutron, either gre or vxlan.
-    type: string
+    description: The tenant network type for Neutron.
+    type: comma_delimited_list
   NeutronPassword:
-    default: unset
     description: The password for the neutron service account, used by neutron agents.
     type: string
     hidden: true
@@ -169,16 +165,14 @@ parameters:
     description: Whether to configure Neutron Distributed Virtual Routers
     type: string
   NeutronMetadataProxySharedSecret:
-    default: 'unset'
     description: Shared secret to prevent spoofing
     type: string
     hidden: true
   NeutronTunnelTypes:
     default: 'vxlan'
     description: |
-        The tunnel types for the Neutron tenant network. To specify multiple
-        values, use a comma separated string, like so: 'gre,vxlan'
-    type: string
+        The tunnel types for the Neutron tenant network.
+    type: comma_delimited_list
   NeutronTunnelIdRanges:
     description: |
         Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
@@ -211,9 +205,8 @@ parameters:
   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
+        The mechanism drivers for the Neutron tenant network.
+    type: comma_delimited_list
   NeutronAllowL3AgentFailover:
     default: 'False'
     description: Allow automatic l3-agent failover
@@ -227,7 +220,6 @@ parameters:
     default: 1
     description: The number of neutron dhcp agents to schedule per network
   NovaPassword:
-    default: unset
     description: The password for the nova service account, used by nova-api.
     type: string
     hidden: true
@@ -279,7 +271,6 @@ parameters:
     description: The user name for SNMPd with readonly rights running on all Overcloud nodes
     type: string
   SnmpdReadonlyUserPassword:
-    default: unset
     description: The user password for SNMPd with readonly rights running on all Overcloud nodes
     type: string
     hidden: true
@@ -298,7 +289,6 @@ parameters:
 
   # Controller-specific params
   AdminToken:
-    default: unset
     description: The keystone auth secret.
     type: string
     hidden: true
@@ -319,7 +309,6 @@ parameters:
       CinderEnableNfsBackend is true.
     type: comma_delimited_list
   CinderPassword:
-    default: unset
     description: The password for the cinder service account, used by cinder-api.
     type: string
     hidden: true
@@ -340,11 +329,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
@@ -368,6 +358,10 @@ parameters:
     default: true
     description: Whether to enable Swift Storage on the Controller
     type: boolean
+  ControllerSchedulerHints:
+    type: json
+    description: Optional scheduler hints to pass to nova
+    default: {}
   ExtraConfig:
     default: {}
     description: |
@@ -416,7 +410,6 @@ parameters:
     type: string
     default: noop
   GlancePassword:
-    default: unset
     description: The password for the glance service account, used by the glance services.
     type: string
     hidden: true
@@ -428,15 +421,17 @@ parameters:
     constraints:
     - allowed_values: ['swift', 'file', 'rbd']
   HeatPassword:
-    default: unset
     description: The password for the Heat service account, used by the Heat services.
     type: string
     hidden: true
   HeatStackDomainAdminPassword:
     description: Password for heat_domain_admin user.
     type: string
-    default: ''
     hidden: true
+  InstanceNameTemplate:
+    default: 'instance-%08x'
+    description: Template string to be used to generate instance names
+    type: string
   KeystoneCACertificate:
     default: ''
     description: Keystone self-signed certificate authority certificate.
@@ -511,12 +506,10 @@ parameters:
         This should be int_public when a VLAN is being used.
     type: string
   SwiftHashSuffix:
-    default: unset
     description: A random string to be used as a salt when hashing to determine mappings in the ring.
     type: string
     hidden: true
   SwiftPassword:
-    default: unset
     description: The password for the swift service account, used by the swift proxy services.
     type: string
     hidden: true
@@ -559,7 +552,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
@@ -575,19 +568,23 @@ parameters:
       structure as ExtraConfig.
     type: json
   NovaComputeLibvirtType:
-    default: ''
+    default: kvm
     type: string
   NovaComputeLibvirtVifDriver:
     default: ''
     description: Libvirt VIF driver configuration for the network
     type: string
+  NovaComputeSchedulerHints:
+    type: json
+    description: Optional scheduler hints to pass to nova
+    default: {}
   NovaEnableRbdBackend:
     default: false
     description: Whether to enable or not the Rbd backend for Nova
     type: boolean
   NovaImage:
     type: string
-    default: overcloud-compute
+    default: overcloud-full
     constraints:
       - custom_constraint: glance.image
   NovaOVSBridge:
@@ -600,6 +597,7 @@ parameters:
     type: string
   OvercloudComputeFlavor:
     description: Use this flavor
+    default: baremetal
     type: string
     constraints:
       - custom_constraint: nova.flavor
@@ -642,10 +640,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
@@ -655,6 +654,11 @@ parameters:
       BlockStorage specific configuration to inject into the cluster. Same
       structure as ExtraConfig.
     type: json
+  BlockStorageSchedulerHints:
+    type: json
+    description: Optional scheduler hints to pass to nova
+    default: {}
+
 
 # Object storage specific parameters
   ObjectStorageCount:
@@ -662,11 +666,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: {}
@@ -674,14 +679,17 @@ parameters:
       ObjectStorage specific configuration to inject into the cluster. Same
       structure as ExtraConfig.
     type: json
-
+  ObjectStorageSchedulerHints:
+    type: json
+    description: Optional scheduler hints to pass to nova
+    default: {}
 
 # Ceph storage specific parameters
   CephStorageCount:
     type: number
     default: 0
   CephStorageImage:
-    default: overcloud-ceph-storage
+    default: overcloud-full
     type: string
   OvercloudCephStorageFlavor:
     default: baremetal
@@ -695,6 +703,11 @@ parameters:
       CephStorage specific configuration to inject into the cluster. Same
       structure as ExtraConfig.
     type: json
+  CephStorageSchedulerHints:
+    type: json
+    description: Optional scheduler hints to pass to nova
+    default: {}
+
 
   # Hostname format for each role
   # Note %index% is translated into the index of the node, e.g 0/1/2 etc
@@ -850,6 +863,7 @@ resources:
           HorizonSecret: {get_resource: HorizonSecret}
           Image: {get_param: controllerImage}
           ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
+          InstanceNameTemplate: {get_param: InstanceNameTemplate}
           KeyName: {get_param: KeyName}
           KeystoneCACertificate: {get_param: KeystoneCACertificate}
           KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
@@ -931,6 +945,7 @@ resources:
                 '%stackname%': {get_param: 'OS::stack_name'}
           NodeIndex: '%index%'
           ServerMetadata: {get_param: ServerMetadata}
+          SchedulerHints: {get_param: ControllerSchedulerHints}
 
   Compute:
     type: OS::Heat::ResourceGroup
@@ -1006,6 +1021,7 @@ resources:
                 '%stackname%': {get_param: 'OS::stack_name'}
           CloudDomain: {get_param: CloudDomain}
           ServerMetadata: {get_param: ServerMetadata}
+          SchedulerHints: {get_param: NovaComputeSchedulerHints}
 
   BlockStorage:
     type: OS::Heat::ResourceGroup
@@ -1045,6 +1061,7 @@ resources:
           BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
           CloudDomain: {get_param: CloudDomain}
           ServerMetadata: {get_param: ServerMetadata}
+          SchedulerHints: {get_param: BlockStorageSchedulerHints}
 
   ObjectStorage:
     type: OS::Heat::ResourceGroup
@@ -1075,6 +1092,7 @@ resources:
           ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
           CloudDomain: {get_param: CloudDomain}
           ServerMetadata: {get_param: ServerMetadata}
+          SchedulerHints: {get_param: ObjectStorageSchedulerHints}
 
   CephStorage:
     type: OS::Heat::ResourceGroup
@@ -1100,6 +1118,7 @@ resources:
           CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
           CloudDomain: {get_param: CloudDomain}
           ServerMetadata: {get_param: ServerMetadata}
+          SchedulerHints: {get_param: CephStorageSchedulerHints}
 
   ControllerIpListMap:
     type: OS::TripleO::Network::Ports::NetIpListMap
@@ -1110,6 +1129,7 @@ resources:
       StorageIpList: {get_attr: [Controller, storage_ip_address]}
       StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
       TenantIpList: {get_attr: [Controller, tenant_ip_address]}
+      ManagementIpList: {get_attr: [Controller, management_ip_address]}
 
   allNodesConfig:
     type: OS::TripleO::AllNodes::SoftwareConfig
@@ -1138,6 +1158,8 @@ 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]}]}
+      DeployIdentifier: {get_param: DeployIdentifier}
+      UpdateIdentifier: {get_param: UpdateIdentifier}
 
   MysqlRootPassword:
     type: OS::Heat::RandomString
@@ -1170,17 +1192,18 @@ resources:
 
   RedisVirtualIP:
     depends_on: Networks
-    type: OS::TripleO::Controller::Ports::RedisVipPort
+    type: OS::TripleO::Network::Ports::RedisVipPort
     properties:
       ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
       ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
       PortName: redis_virtual_ip
       NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
+      ServiceName: redis
 
   # The public VIP is on the External net, falls back to ctlplane
   PublicVirtualIP:
     depends_on: Networks
-    type: OS::TripleO::Controller::Ports::ExternalPort
+    type: OS::TripleO::Network::Ports::ExternalVipPort
     properties:
       ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
       ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
@@ -1189,21 +1212,21 @@ resources:
 
   InternalApiVirtualIP:
     depends_on: Networks
-    type: OS::TripleO::Controller::Ports::InternalApiPort
+    type: OS::TripleO::Network::Ports::InternalApiVipPort
     properties:
       ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
       PortName: internal_api_virtual_ip
 
   StorageVirtualIP:
     depends_on: Networks
-    type: OS::TripleO::Controller::Ports::StoragePort
+    type: OS::TripleO::Network::Ports::StorageVipPort
     properties:
       ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
       PortName: storage_virtual_ip
 
   StorageMgmtVirtualIP:
     depends_on: Networks
-    type: OS::TripleO::Controller::Ports::StorageMgmtPort
+    type: OS::TripleO::Network::Ports::StorageMgmtVipPort
     properties:
       ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
       PortName: storage_management_virtual_ip
@@ -1216,7 +1239,7 @@ resources:
       InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
       StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
       StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
-      # No tenant VIP required
+      # No tenant or management VIP required
 
   VipConfig:
     type: OS::TripleO::VipConfig
@@ -1507,3 +1530,9 @@ outputs:
   SwiftInternalVip:
     description: VIP for Swift Proxy internal endpoint
     value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
+  HostsEntry:
+    description: |
+      The content that should be appended to your /etc/hosts if you want to get
+      hostname-based access to the deployed nodes (useful for testing without
+      setting up a DNS).
+    value: {get_attr: [allNodesConfig, hosts_entries]}