Updated the heat_template_version
[apex-tripleo-heat-templates.git] / puppet / controller.yaml
index bad9937..37ded74 100644 (file)
@@ -245,6 +245,11 @@ parameters:
     default: 0
     description: Number of workers for Heat service.
     type: number
+  HeatEnableDBPurge:
+    type: boolean
+    default: true
+    description: |
+        Whether to create cron job for purging soft deleted rows in the Heat database.
   HorizonSecret:
     description: Secret key for Django
     type: string
@@ -492,6 +497,15 @@ parameters:
     default: ''
     description: If set, the public interface is a vlan with this device as the raw device.
     type: string
+  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 number is related to the value of NeutronDnsmasqOptions, since that
+      will determine the MTU that is assigned to the VM host through DHCP.
+    default: 1400
+    type: number
   NeutronTunnelTypes:
     default: 'vxlan'
     description: |
@@ -510,7 +524,7 @@ parameters:
     default: ["1:4094", ]
     type: comma_delimited_list
   NeutronPluginExtensions:
-    default: "qos"
+    default: "qos,port_security"
     description: |
         Comma-separated list of extensions enabled for the Neutron plugin.
     type: comma_delimited_list
@@ -635,6 +649,10 @@ parameters:
     default: 'UTC'
     description: The timezone to be set on controller nodes.
     type: string
+  UpgradeLevelNovaCompute:
+    type: string
+    description: Nova Compute upgrade level
+    default: ''
   VirtualIP: # DEPRECATED: use per service settings instead
     type: string
     default: ''  # Has to be here because of the ignored empty value bug
@@ -682,6 +700,10 @@ parameters:
   Hostname:
     type: string
     default: '' # Defaults to Heat created hostname
+  HostnameMap:
+    type: json
+    default: {}
+    description: Optional mapping to override hostnames
   NetworkDeploymentActions:
     type: comma_delimited_list
     description: >
@@ -727,7 +749,10 @@ resources:
         - network: ctlplane
       user_data_format: SOFTWARE_CONFIG
       user_data: {get_resource: UserData}
-      name: {get_param: Hostname}
+      name:
+        str_replace:
+            template: {get_param: Hostname}
+            params: {get_param: HostnameMap}
       software_config_transport: {get_param: SoftwareConfigTransport}
       metadata: {get_param: ServerMetadata}
       scheduler_hints: {get_param: SchedulerHints}
@@ -892,6 +917,7 @@ resources:
               - {get_param: HeatApiVirtualIP}
               - ':8000/v1/waitcondition'
         heat_auth_encryption_key: {get_param: HeatAuthEncryptionKey}
+        heat_enable_db_purge: {get_param: HeatEnableDBPurge}
         horizon_allowed_hosts: {get_param: HorizonAllowedHosts}
         horizon_secret: {get_param: HorizonSecret}
         admin_email: {get_param: AdminEmail}
@@ -1061,6 +1087,7 @@ resources:
             params:
               AGENT_EXTENSIONS: {get_param: NeutronAgentExtensions}
         neutron_password: {get_param: NeutronPassword}
+        neutron_tenant_mtu: {get_param: NeutronTenantMtu}
         neutron_dnsmasq_options: {get_param: NeutronDnsmasqOptions}
         neutron_dsn:
           list_join:
@@ -1073,7 +1100,7 @@ resources:
         neutron_internal_url: { get_param: [ EndpointMap, NeutronInternal, uri ] }
         neutron_public_url: { get_param: [ EndpointMap, NeutronPublic, uri ] }
         neutron_admin_url: { get_param: [ EndpointMap, NeutronAdmin, uri ] }
-        neutron_admin_auth_url: { get_param: [ EndpointMap, KeystoneAdmin, uri_no_suffix ] }
+        neutron_auth_url: { get_param: [ EndpointMap, KeystoneV3Admin, uri ] }
         nova_internal_url: { get_param: [ EndpointMap, NovaInternal, uri ] }
         ceilometer_backend: {get_param: CeilometerBackend}
         ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
@@ -1112,6 +1139,7 @@ resources:
               - '@'
               - {get_param: MysqlVirtualIP}
               - '/nova_api'
+        upgrade_level_nova_compute: {get_param: UpgradeLevelNovaCompute}
         instance_name_template: {get_param: InstanceNameTemplate}
         fencing_config: {get_param: FencingConfig}
         pcsd_password: {get_param: PcsdPassword}
@@ -1211,6 +1239,7 @@ resources:
             - cisco_n1kv_data # Optionally provided by ControllerExtraConfigPre
             - neutron_nuage_data # Optionally provided by ControllerExtraConfigPre
             - midonet_data #Optionally provided by AllNodesExtraConfig
+            - neutron_opencontrail_data # Optionally provided by ControllerExtraConfigPre
           datafiles:
             controller_extraconfig:
               mapped_data: {get_param: ControllerExtraConfig}
@@ -1309,6 +1338,9 @@ resources:
                 glance_file_pcmk_fstype: {get_input: glance_file_pcmk_fstype}
                 glance_file_pcmk_manage: {get_input: glance_file_pcmk_manage}
                 glance_file_pcmk_options: {get_input: glance_file_pcmk_options}
+                glance::notify::rabbitmq::rabbit_userid: {get_input: rabbit_username}
+                glance::notify::rabbitmq::rabbit_password: {get_input: rabbit_password}
+                glance::notify::rabbitmq::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
 
                 # Heat
                 heat_stack_domain_admin_password: {get_input: heat_stack_domain_admin_password}
@@ -1333,6 +1365,7 @@ resources:
                 heat::database_connection: {get_input: heat_dsn}
                 heat::debug: {get_input: debug}
                 heat::db::mysql::password: {get_input: heat_password}
+                heat_enable_db_purge: {get_input: heat_enable_db_purge}
 
                 # Keystone
                 keystone::admin_token: {get_input: admin_token}
@@ -1363,7 +1396,7 @@ resources:
                 keystone::admin_workers: {get_input: keystone_workers}
                 keystone::public_workers: {get_input: keystone_workers}
                 keystone_enable_db_purge: {get_input: keystone_enable_db_purge}
-
+                keystone::public_endpoint: {get_input: keystone_public_url}
                 # MongoDB
                 mongodb::server::bind_ip: {get_input: mongo_db_network}
                 mongodb::server::nojournal: {get_input: mongodb_no_journal}
@@ -1391,6 +1424,7 @@ resources:
                 neutron::server::database_connection: {get_input: neutron_dsn}
                 neutron::server::api_workers: {get_input: neutron_workers}
                 neutron::agents::l3::external_network_bridge: {get_input: neutron_external_network_bridge}
+                neutron::network_device_mtu: {get_input: neutron_tenant_mtu}
                 neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
                 neutron::agents::ml2::ovs::l2_population: {get_input: neutron_enable_l2pop}
                 neutron::agents::dhcp::enable_isolated_metadata: {get_input: neutron_enable_isolated_metadata}
@@ -1416,7 +1450,7 @@ resources:
                 neutron::plugins::ml2::network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
                 neutron::plugins::ml2::tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
                 neutron::plugins::ml2::vni_ranges: {get_input: neutron_vni_ranges}
-                neutron::agents::ml2::ovs:bridge_mappings: {get_input: neutron_bridge_mappings}
+                neutron::agents::ml2::ovs::bridge_mappings: {get_input: neutron_bridge_mappings}
                 neutron_public_interface: {get_input: neutron_public_interface}
                 neutron_public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
                 neutron_public_interface_default_route: {get_input: neutron_public_interface_default_route}
@@ -1436,7 +1470,7 @@ resources:
                 neutron::keystone::auth::password: {get_input: neutron_password }
                 neutron::keystone::auth::region: {get_input: keystone_region}
                 neutron::server::notifications::nova_url: {get_input: nova_internal_url}
-                neutron::server::notifications::auth_url: {get_input: neutron_admin_auth_url}
+                neutron::server::notifications::auth_url: {get_input: neutron_auth_url}
                 neutron::server::notifications::tenant_name: 'service'
                 neutron::server::notifications::project_name: 'service'
                 neutron::server::notifications::password: {get_input: nova_password}
@@ -1466,6 +1500,7 @@ resources:
                 nova::rabbit_password: {get_input: rabbit_password}
                 nova::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
                 nova::rabbit_port: {get_input: rabbit_client_port}
+                nova::upgrade_level_compute: {get_input: upgrade_level_nova_compute}
                 nova::debug: {get_input: debug}
                 nova::api::auth_uri: {get_input: keystone_auth_uri}
                 nova::api::identity_uri: {get_input: keystone_identity_uri}
@@ -1475,14 +1510,15 @@ resources:
                 nova::api::osapi_compute_workers: {get_input: nova_workers}
                 nova::api::ec2_workers: {get_input: nova_workers}
                 nova::api::metadata_workers: {get_input: nova_workers}
+                nova::compute::network_device_mtu: {get_input: neutron_tenant_mtu}
                 nova::database_connection: {get_input: nova_dsn}
                 nova::api_database_connection: {get_input: nova_api_dsn}
                 nova::glance_api_servers: {get_input: glance_api_servers}
                 nova::api::neutron_metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
                 nova::api::instance_name_template: {get_input: instance_name_template}
-                nova::network::neutron::neutron_admin_password: {get_input: neutron_password}
+                nova::network::neutron::neutron_password: {get_input: neutron_password}
                 nova::network::neutron::neutron_url: {get_input: neutron_internal_url}
-                nova::network::neutron::neutron_admin_auth_url: {get_input: neutron_admin_auth_url}
+                nova::network::neutron::neutron_auth_url: {get_input: neutron_auth_url}
                 nova::vncproxy::host: {get_input: nova_api_network}
                 nova::db::mysql::password: {get_input: nova_password}
                 nova::db::mysql_api::password: {get_input: nova_password}
@@ -1610,11 +1646,54 @@ outputs:
       Server's IP address and hostname in the /etc/hosts format
     value:
       str_replace:
-        template: IP HOST.DOMAIN HOST
+        template: |
+          PRIMARYIP PRIMARYHOST.DOMAIN PRIMARYHOST
+          EXTERNALIP EXTERNALHOST
+          INTERNAL_APIIP INTERNAL_APIHOST
+          STORAGEIP STORAGEHOST
+          STORAGE_MGMTIP STORAGE_MGMTHOST
+          TENANTIP TENANTHOST
+          MANAGEMENTIP MANAGEMENTHOST
         params:
-          IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ControllerHostnameResolveNetwork]}]}
+          PRIMARYIP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ControllerHostnameResolveNetwork]}]}
           DOMAIN: {get_param: CloudDomain}
-          HOST: {get_attr: [Controller, name]}
+          PRIMARYHOST: {get_attr: [Controller, name]}
+          EXTERNALIP: {get_attr: [ExternalPort, ip_address]}
+          EXTERNALHOST:
+            list_join:
+            - '-'
+            - - {get_attr: [Controller, name]}
+              - external
+          INTERNAL_APIIP: {get_attr: [InternalApiPort, ip_address]}
+          INTERNAL_APIHOST:
+            list_join:
+            - '-'
+            - - {get_attr: [Controller, name]}
+              - internalapi
+          STORAGEIP: {get_attr: [StoragePort, ip_address]}
+          STORAGEHOST:
+            list_join:
+            - '-'
+            - - {get_attr: [Controller, name]}
+              - storage
+          STORAGE_MGMTIP: {get_attr: [StorageMgmtPort, ip_address]}
+          STORAGE_MGMTHOST:
+            list_join:
+            - '-'
+            - - {get_attr: [Controller, name]}
+              - storagemgmt
+          TENANTIP: {get_attr: [TenantPort, ip_address]}
+          TENANTHOST:
+            list_join:
+            - '-'
+            - - {get_attr: [Controller, name]}
+              - tenant
+          MANAGEMENTIP: {get_attr: [ManagementPort, ip_address]}
+          MANAGEMENTHOST:
+            list_join:
+            - '-'
+            - - {get_attr: [Controller, name]}
+              - management
   nova_server_resource:
     description: Heat resource handle for the Nova compute server
     value: