Merge "Parameterize RabbitMQ FD limit"
[apex-tripleo-heat-templates.git] / puppet / controller.yaml
index 548d79d..9252486 100644 (file)
@@ -14,6 +14,9 @@ parameters:
     description: The keystone auth secret and db password.
     type: string
     hidden: true
+  CeilometerApiVirtualIP:
+    type: string
+    default: ''
   CeilometerBackend:
     default: 'mongodb'
     description: The ceilometer backend type.
@@ -28,6 +31,9 @@ parameters:
     description: The password for the ceilometer service  and db account.
     type: string
     hidden: true
+  CinderApiVirtualIP:
+    type: string
+    default: ''
   CinderEnableNfsBackend:
     default: false
     description: Whether to enable or not the NFS backend for Cinder
@@ -187,6 +193,10 @@ parameters:
   HeatAuthEncryptionKey:
     description: Auth encryption key for heat-engine
     type: string
+  HorizonAllowedHosts:
+    default: '*'
+    description: A list of IP/Hostname allowed to connect to horizon
+    type: comma_delimited_list
   HorizonSecret:
     description: Secret key for Django
     type: string
@@ -297,6 +307,23 @@ parameters:
     default: 'unset'
     description: Shared secret to prevent spoofing
     type: string
+  NeutronCorePlugin:
+    default: 'ml2'
+    description: |
+        The core plugin for Neutron. The value should be the entrypoint to be loaded
+        from neutron.core_plugins namespace.
+    type: string
+  NeutronServicePlugins:
+    default: "router"
+    description: |
+        Comma-separated list of service plugin entrypoints to be loaded from the
+        neutron.service_plugins namespace.
+    type: comma_delimited_list
+  NeutronTypeDrivers:
+    default: "vxlan,vlan,flat,gre"
+    description: |
+        Comma-separated list of network type driver entrypoints to be loaded.
+    type: comma_delimited_list
   NeutronMechanismDrivers:
     default: 'openvswitch'
     description: |
@@ -378,6 +405,9 @@ parameters:
         of VXLAN VNI IDs that are available for tenant network allocation
     default: ["1:1000", ]
     type: comma_delimited_list
+  NovaApiVirtualIP:
+    type: string
+    default: ''
   NovaPassword:
     default: unset
     description: The password for the nova service and db account, used by nova-api.
@@ -425,6 +455,10 @@ parameters:
     default: 5672
     description: Set rabbit subscriber port, change this if using SSL
     type: number
+  RabbitFDLimit:
+    default: 16384
+    description: Configures RabbitMQ FD limit
+    type: string
   RedisVirtualIP:
     type: string
     default: ''  # Has to be here because of the ignored empty value bug
@@ -475,6 +509,9 @@ parameters:
       services.
     hidden: true
     type: string
+  SwiftProxyVirtualIP:
+    type: string
+    default: ''
   SwiftReplicas:
     type: number
     default: 3
@@ -488,6 +525,9 @@ parameters:
   GlanceApiVirtualIP:
     type: string
     default: ''
+  GlanceRegistryVirtualIP:
+    type: string
+    default: ''
   MysqlVirtualIP:
     type: string
     default: ''
@@ -646,6 +686,7 @@ resources:
               - {get_param: HeatApiVirtualIP}
               - ':8000/v1/waitcondition'
         heat_auth_encryption_key: {get_param: HeatAuthEncryptionKey}
+        horizon_allowed_hosts: {get_param: HorizonAllowedHosts}
         horizon_secret: {get_param: HorizonSecret}
         admin_password: {get_param: AdminPassword}
         admin_token: {get_param: AdminToken}
@@ -748,6 +789,23 @@ resources:
         neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
         neutron_agent_mode: {get_param: NeutronAgentMode}
         neutron_router_distributed: {get_param: NeutronDVR}
+        neutron_core_plugin: {get_param: NeutronCorePlugin}
+        neutron_service_plugins:
+          str_replace:
+            template: "['PLUGINS']"
+            params:
+              PLUGINS:
+                list_join:
+                - "','"
+                - {get_param: NeutronServicePlugins}
+        neutron_type_drivers:
+          str_replace:
+            template: "['DRIVERS']"
+            params:
+              DRIVERS:
+                list_join:
+                - "','"
+                - {get_param: NeutronTypeDrivers}
         neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
         neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
         neutron_l3_ha: {get_param: NeutronL3HA}
@@ -840,6 +898,14 @@ resources:
         rabbit_client_use_ssl: {get_param: RabbitClientUseSSL}
         rabbit_client_port: {get_param: RabbitClientPort}
         mongodb_no_journal: {get_param: MongoDbNoJournal}
+        # We need to force this into quotes or hiera will return integer causing
+        # the puppet module validation regexp to fail.
+        # Remove when: https://github.com/puppetlabs/puppetlabs-rabbitmq/pull/401
+        rabbit_fd_limit:
+          str_replace:
+            template: "'LIMIT'"
+            params:
+              LIMIT: {get_param: RabbitFDLimit}
         ntp_servers:
           str_replace:
             template: '["server"]'
@@ -854,6 +920,7 @@ resources:
         swift_min_part_hours: {get_param: SwiftMinPartHours}
         swift_mount_check: {get_param: SwiftMountCheck}
         enable_package_install: {get_param: EnablePackageInstall}
+        enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
         swift_proxy_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
         swift_management_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, SwiftMgmtNetwork]}]}
         cinder_iscsi_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CinderIscsiNetwork]}]}
@@ -868,6 +935,7 @@ resources:
               - {get_param: GlanceApiVirtualIP}
               - ':'
               - {get_param: GlancePort}
+        glance_registry_host: {get_param: GlanceRegistryVirtualIP}
         heat_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
         keystone_public_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
         keystone_admin_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
@@ -914,6 +982,7 @@ resources:
             - cinder_netapp_data # Optionally provided by ControllerExtraConfigPre
             - neutron_bigswitch_data # Optionally provided by ControllerExtraConfigPre
             - neutron_cisco_data # Optionally provided by ControllerExtraConfigPre
+            - cisco_n1kv_data # Optionally provided by ControllerExtraConfigPre
           datafiles:
             controller_extraconfig:
               mapped_data: {get_param: ControllerExtraConfig}
@@ -985,7 +1054,7 @@ resources:
                 glance::api::bind_host: {get_input: glance_api_network}
                 glance::api::auth_uri: {get_input: keystone_auth_uri}
                 glance::api::identity_uri: {get_input: keystone_identity_uri}
-                glance::api::registry_host: {get_input: glance_registry_network}
+                glance::api::registry_host: {get_input: glance_registry_host}
                 glance::api::keystone_password: {get_input: glance_password}
                 glance::api::debug: {get_input: debug}
                 glance_notifier_strategy: {get_input: glance_notifier_strategy}
@@ -994,7 +1063,7 @@ resources:
                 glance::api::database_connection: {get_input: glance_dsn}
                 glance::registry::keystone_password: {get_input: glance_password}
                 glance::registry::database_connection: {get_input: glance_dsn}
-                glance::registry::bind_host: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
+                glance::registry::bind_host: {get_input: glance_registry_network}
                 glance::registry::auth_uri: {get_input: keystone_auth_uri}
                 glance::registry::identity_uri: {get_input: keystone_identity_uri}
                 glance::registry::debug: {get_input: debug}
@@ -1076,6 +1145,9 @@ resources:
                 neutron::agents::metadata::metadata_ip: {get_input: neutron_api_network}
                 neutron_agent_mode: {get_input: neutron_agent_mode}
                 neutron_router_distributed: {get_input: neutron_router_distributed}
+                neutron::core_plugin: {get_input: neutron_core_plugin}
+                neutron::service_plugins: {get_input: neutron_service_plugins}
+                neutron::plugins::ml2::type_drivers: {get_input: neutron_type_drivers}
                 neutron_mechanism_drivers: {get_input: neutron_mechanism_drivers}
                 neutron::server::allow_automatic_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
                 neutron::server::l3_ha: {get_input: neutron_l3_ha}
@@ -1139,6 +1211,7 @@ resources:
 
                 # Horizon
                 apache::ip: {get_input: horizon_network}
+                horizon::allowed_hosts: {get_input: horizon_allowed_hosts}
                 horizon::django_debug: {get_input: debug}
                 horizon::secret_key: {get_input: horizon_secret}
                 horizon::bind_address: {get_input: horizon_network}
@@ -1147,6 +1220,7 @@ resources:
                 # Rabbit
                 rabbitmq::node_ip_address: {get_input: rabbitmq_network}
                 rabbitmq::erlang_cookie: {get_input: rabbit_cookie}
+                rabbitmq::file_limit: {get_input: rabbit_fd_limit}
                 # Redis
                 redis::bind: {get_input: redis_network}
                 redis_vip: {get_input: redis_vip}
@@ -1159,6 +1233,7 @@ resources:
                 tripleo::loadbalancer::control_virtual_interface: {get_input: control_virtual_interface}
                 tripleo::loadbalancer::public_virtual_interface: {get_input: public_virtual_interface}
                 tripleo::packages::enable_install: {get_input: enable_package_install}
+                tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
 
   # Hook for site-specific additional pre-deployment config, e.g extra hieradata
   ControllerExtraConfigPre:
@@ -1167,6 +1242,14 @@ resources:
     properties:
         server: {get_resource: Controller}
 
+  # Hook for site-specific additional pre-deployment config,
+  # applying to all nodes, e.g node registration/unregistration
+  NodeExtraConfig:
+    depends_on: ControllerExtraConfigPre
+    type: OS::TripleO::NodeExtraConfig
+    properties:
+        server: {get_resource: Controller}
+
   UpdateConfig:
     type: OS::TripleO::Tasks::PackageUpdate
 
@@ -1240,6 +1323,7 @@ outputs:
     description: identifier which changes if the controller configuration may need re-applying
     value:
       list_join:
-      - ','
-      - - {get_attr: [ControllerDeployment, deploy_stdout]}
-        - {get_attr: [ControllerExtraConfigPre, deploy_stdout]}
+        - ','
+        - - {get_attr: [ControllerDeployment, deploy_stdout]}
+          - {get_attr: [ControllerExtraConfigPre, deploy_stdout]}
+          - {get_param: UpdateIdentifier}