Implement Workers parameters
authorEmilien Macchi <emilien@redhat.com>
Wed, 30 Sep 2015 15:08:48 +0000 (11:08 -0400)
committerEmilien Macchi <emilien@redhat.com>
Tue, 8 Dec 2015 11:49:36 +0000 (06:49 -0500)
* For each OpenStack service, create a new parameter to change worker
  number (default to 0 to keep default behavior)
* Use the parameter in Puppet configuration (Hiera) to configure the
  services with the number of workers defined by the parameter.

Change-Id: Ic147bc9225aab48e94243a94a2189467829b8d55

puppet/controller.yaml

index 97b5456..c64a60c 100644 (file)
@@ -39,6 +39,10 @@ parameters:
   CinderApiVirtualIP:
     type: string
     default: ''
+  CeilometerWorkers:
+    default: 0
+    description: Number of workers for Ceilometer service.
+    type: number
   CinderEnableNfsBackend:
     default: false
     description: Whether to enable or not the NFS backend for Cinder
@@ -81,6 +85,10 @@ parameters:
     description: Contains parameters to configure Cinder backends. Typically
                  set via parameter_defaults in the resource registry.
     type: json
+  CinderWorkers:
+    default: 0
+    description: Number of workers for Cinder service.
+    type: number
   CloudName:
     default: ''
     description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
@@ -209,6 +217,10 @@ parameters:
     default: /dev/log
     description: Syslog address where HAproxy will send its log
     type: string
+  GlanceWorkers:
+    default: 0
+    description: Number of workers for Glance service.
+    type: number
   HeatPassword:
     default: unset
     description: The password for the Heat service and db account, used by the Heat services.
@@ -227,6 +239,10 @@ parameters:
     default: '*'
     description: A list of IP/Hostname allowed to connect to horizon
     type: comma_delimited_list
+  HeatWorkers:
+    default: 0
+    description: Number of workers for Heat service.
+    type: number
   HorizonSecret:
     description: Secret key for Django
     type: string
@@ -294,6 +310,10 @@ parameters:
     default: false
     description: Whether IPtables rules should be purged before setting up the new ones.
     type: boolean
+  KeystoneWorkers:
+    default: 0
+    description: Number of workers for Keystone service.
+    type: number
   MysqlClusterUniquePart:
     description: A unique identifier of the MySQL cluster the controller is in.
     type: string
@@ -481,11 +501,19 @@ parameters:
   NovaApiVirtualIP:
     type: string
     default: ''
+  NeutronWorkers:
+    default: 0
+    description: Number of workers for Neutron service.
+    type: number
   NovaPassword:
     default: unset
     description: The password for the nova service and db account, used by nova-api.
     type: string
     hidden: true
+  NovaWorkers:
+    default: 0
+    description: Number of workers for Nova service.
+    type: number
   MongoDbNoJournal:
     default: false
     description: Should MongoDb journaling be disabled
@@ -577,6 +605,10 @@ parameters:
     type: number
     default: 3
     description: How many replicas to use in the swift rings.
+  SwiftWorkers:
+    default: 0
+    description: Number of workers for Swift service.
+    type: number
   VirtualIP: # DEPRECATED: use per service settings instead
     type: string
     default: ''  # Has to be here because of the ignored empty value bug
@@ -769,6 +801,14 @@ resources:
       server: {get_resource: Controller}
       input_values:
         bootstack_nodeid: {get_attr: [Controller, name]}
+        ceilometer_workers: {get_param: CeilometerWorkers}
+        cinder_workers: {get_param: CinderWorkers}
+        glance_workers: {get_param: GlanceWorkers}
+        heat_workers: {get_param: HeatWorkers}
+        keystone_workers: {get_param: KeystoneWorkers}
+        nova_workers: {get_param: NovaWorkers}
+        neutron_workers: {get_param: NeutronWorkers}
+        swift_workers: {get_param: SwiftWorkers}
         neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
         neutron_enable_l2pop: {get_param: NeutronEnableL2Pop}
         neutron_enable_isolated_metadata: {get_param: NeutronEnableIsolatedMetadata}
@@ -1109,6 +1149,7 @@ resources:
                 swift::storage::all::storage_local_net_ip: {get_input: swift_management_network}
                 swift::swift_hash_suffix: {get_input: swift_hash_suffix}
                 swift::proxy::authtoken::admin_password: {get_input: swift_password}
+                swift::proxy::workers: {get_input: swift_workers}
                 tripleo::ringbuilder::part_power: {get_input: swift_part_power}
                 tripleo::ringbuilder::replicas: {get_input: swift_replicas}
                 tripleo::ringbuilder::min_part_hours: {get_input: swift_min_part_hours}
@@ -1149,6 +1190,7 @@ resources:
                 glance::api::registry_host: {get_input: glance_registry_host}
                 glance::api::keystone_password: {get_input: glance_password}
                 glance::api::debug: {get_input: debug}
+                glance::api::workers: {get_input: glance_workers}
                 glance_notifier_strategy: {get_input: glance_notifier_strategy}
                 glance_log_file: {get_input: glance_log_file}
                 glance_log_file: {get_input: glance_log_file}
@@ -1160,6 +1202,7 @@ resources:
                 glance::registry::identity_uri: {get_input: keystone_identity_uri}
                 glance::registry::debug: {get_input: debug}
                 glance::backend::swift::swift_store_auth_address: {get_input: keystone_auth_uri}
+                glance::registry::workers: {get_input: glance_workers}
                 glance::backend::swift::swift_store_user: service:glance
                 glance::backend::swift::swift_store_key: {get_input: glance_password}
                 glance_backend: {get_input: glance_backend}
@@ -1184,8 +1227,11 @@ resources:
                 heat::identity_uri: {get_input: keystone_identity_uri}
                 heat::keystone_password: {get_input: heat_password}
                 heat::api::bind_host: {get_input: heat_api_network}
+                heat::api::workers: {get_input: heat_workers}
                 heat::api_cloudwatch::bind_host: {get_input: heat_api_network}
+                heat::api_cloudwatch::workers: {get_input: heat_workers}
                 heat::api_cfn::bind_host: {get_input: heat_api_network}
+                heat::api_cfn::workers: {get_input: heat_workers}
                 heat::database_connection: {get_input: heat_dsn}
                 heat::debug: {get_input: debug}
                 heat::db::mysql::password: {get_input: heat_password}
@@ -1214,6 +1260,9 @@ resources:
                 keystone::endpoint::internal_url: {get_input: keystone_internal_url}
                 keystone::endpoint::admin_url: {get_input: keystone_identity_uri}
                 keystone::endpoint::region: {get_input: keystone_region}
+                keystone::admin_workers: {get_input: keystone_workers}
+                keystone::public_workers: {get_input: keystone_workers}
+
                 # MongoDB
                 mongodb::server::bind_ip: {get_input: mongo_db_network}
                 mongodb::server::nojournal: {get_input: mongodb_no_journal}
@@ -1239,6 +1288,7 @@ resources:
                 neutron::server::auth_uri: {get_input: keystone_auth_uri}
                 neutron::server::identity_uri: {get_input: keystone_identity_uri}
                 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::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
                 neutron::agents::ml2::ovs::l2_population: {get_input: neutron_enable_l2pop}
@@ -1247,6 +1297,7 @@ resources:
                 neutron_flat_networks: {get_input: neutron_flat_networks}
                 neutron::agents::metadata::shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
                 neutron::agents::metadata::metadata_ip: {get_input: neutron_api_network}
+                neutron::agents::metadata::metadata_workers: {get_input: neutron_workers}
                 neutron_agent_mode: {get_input: neutron_agent_mode}
                 neutron_router_distributed: {get_input: neutron_router_distributed}
                 neutron::core_plugin: {get_input: neutron_core_plugin}
@@ -1317,6 +1368,9 @@ resources:
                 nova::api::api_bind_address: {get_input: nova_api_network}
                 nova::api::metadata_listen: {get_input: nova_metadata_network}
                 nova::api::admin_password: {get_input: nova_password}
+                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::database_connection: {get_input: nova_dsn}
                 nova::glance_api_servers: {get_input: glance_api_servers}
                 nova::api::neutron_metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}