From 94bf2d5a0cfa2eacf93f5c7c9604f12064e6afd5 Mon Sep 17 00:00:00 2001 From: Emilien Macchi Date: Mon, 6 Jun 2016 14:56:43 -0400 Subject: Enable nova-scheduler as a composable service Implement NovaScheduler service using nova-base for common parameters. Depends-On: I5e1c90e3c6dc556f872ced73744c5c74caaa3635 Change-Id: Ie50716a09c53d656835b16991128c94b35cf1ed2 Implements: blueprint composable-services-within-roles --- environments/puppet-pacemaker.yaml | 1 + overcloud-resource-registry-puppet.yaml | 1 + overcloud.yaml | 1 + puppet/hieradata/controller.yaml | 2 -- puppet/manifests/overcloud_controller.pp | 2 -- puppet/manifests/overcloud_controller_pacemaker.pp | 8 ------ puppet/services/nova-scheduler.yaml | 26 +++++++++++++++++++ puppet/services/pacemaker/nova-scheduler.yaml | 30 ++++++++++++++++++++++ 8 files changed, 59 insertions(+), 12 deletions(-) create mode 100644 puppet/services/nova-scheduler.yaml create mode 100644 puppet/services/pacemaker/nova-scheduler.yaml diff --git a/environments/puppet-pacemaker.yaml b/environments/puppet-pacemaker.yaml index a919c3c5..131a8b89 100644 --- a/environments/puppet-pacemaker.yaml +++ b/environments/puppet-pacemaker.yaml @@ -32,3 +32,4 @@ resource_registry: OS::TripleO::Services::NovaConductor: ../puppet/services/pacemaker/nova-conductor.yaml OS::TripleO::Services::MongoDb: ../puppet/services/pacemaker/database/mongodb.yaml OS::TripleO::Services::NovaApi: ../puppet/services/pacemaker/nova-api.yaml + OS::TripleO::Services::NovaScheduler: ../puppet/services/pacemaker/nova-scheduler.yaml diff --git a/overcloud-resource-registry-puppet.yaml b/overcloud-resource-registry-puppet.yaml index 60be7ddd..9e662324 100644 --- a/overcloud-resource-registry-puppet.yaml +++ b/overcloud-resource-registry-puppet.yaml @@ -149,6 +149,7 @@ resource_registry: OS::TripleO::Services::NovaConductor: puppet/services/nova-conductor.yaml OS::TripleO::Services::MongoDb: puppet/services/database/mongodb.yaml OS::TripleO::Services::NovaApi: puppet/services/nova-api.yaml + OS::TripleO::Services::NovaScheduler: puppet/services/nova-scheduler.yaml parameter_defaults: EnablePackageInstall: false diff --git a/overcloud.yaml b/overcloud.yaml index 2117b305..45571b95 100644 --- a/overcloud.yaml +++ b/overcloud.yaml @@ -591,6 +591,7 @@ parameters: - OS::TripleO::Services::NovaConductor - OS::TripleO::Services::MongoDb - OS::TripleO::Services::NovaApi + - OS::TripleO::Services::NovaScheduler description: A list of service resources (configured in the Heat resource_registry) which represent nested stacks for each service that should get installed on the Controllers. diff --git a/puppet/hieradata/controller.yaml b/puppet/hieradata/controller.yaml index 3ad0748e..7724f17c 100644 --- a/puppet/hieradata/controller.yaml +++ b/puppet/hieradata/controller.yaml @@ -3,7 +3,6 @@ nova::api::enabled: true nova::consoleauth::enabled: true nova::vncproxy::enabled: true -nova::scheduler::enabled: true # gnocchi gnocchi::db::sync::extra_opts: '--skip-storage' @@ -115,7 +114,6 @@ nova::notify_on_state_change: 'vm_and_task_state' nova::api::default_floating_pool: 'public' nova::api::sync_db_api: true nova::api::enable_proxy_headers_parsing: true -nova::scheduler::filter::ram_allocation_ratio: '1.0' nova::cron::archive_deleted_rows::hour: '*/12' nova::cron::archive_deleted_rows::destination: '/dev/null' nova::notification_driver: messaging diff --git a/puppet/manifests/overcloud_controller.pp b/puppet/manifests/overcloud_controller.pp index 7bd94225..366f98cf 100644 --- a/puppet/manifests/overcloud_controller.pp +++ b/puppet/manifests/overcloud_controller.pp @@ -154,8 +154,6 @@ if hiera('step') >= 4 { include ::nova::consoleauth include ::nova::network::neutron include ::nova::vncproxy - include ::nova::scheduler - include ::nova::scheduler::filter if hiera('neutron::core_plugin') == 'midonet.neutron.plugin_v1.MidonetPluginV2' { diff --git a/puppet/manifests/overcloud_controller_pacemaker.pp b/puppet/manifests/overcloud_controller_pacemaker.pp index 5510b4fb..9162f937 100644 --- a/puppet/manifests/overcloud_controller_pacemaker.pp +++ b/puppet/manifests/overcloud_controller_pacemaker.pp @@ -358,11 +358,6 @@ MYSQL_HOST=localhost\n", manage_service => false, enabled => false, } - include ::nova::scheduler::filter - class { '::nova::scheduler' : - manage_service => false, - enabled => false, - } include ::nova::network::neutron if hiera('neutron::core_plugin') == 'midonet.neutron.plugin_v1.MidonetPluginV2' { @@ -716,9 +711,6 @@ password=\"${mysql_root_password}\"", pacemaker::resource::service { $::nova::params::vncproxy_service_name : clone_params => 'interleave=true', } - pacemaker::resource::service { $::nova::params::scheduler_service_name : - clone_params => 'interleave=true', - } pacemaker::constraint::base { 'keystone-then-nova-consoleauth-constraint': constraint_type => 'order', diff --git a/puppet/services/nova-scheduler.yaml b/puppet/services/nova-scheduler.yaml new file mode 100644 index 00000000..65ed6643 --- /dev/null +++ b/puppet/services/nova-scheduler.yaml @@ -0,0 +1,26 @@ +heat_template_version: 2016-04-08 + +description: > + OpenStack Nova Scheduler service configured with Puppet + +parameters: + EndpointMap: + default: {} + description: Mapping of service endpoint -> protocol. Typically set + via parameter_defaults in the resource registry. + type: json + +resources: + NovaBase: + type: ./nova-base.yaml + +outputs: + role_data: + description: Role data for the Nova Scheduler service. + value: + config_settings: + map_merge: + - get_attr: [NovaBase, role_data, config_settings] + - nova::scheduler::filter::ram_allocation_ratio: '1.0' + step_config: | + include tripleo::profile::base::nova::scheduler diff --git a/puppet/services/pacemaker/nova-scheduler.yaml b/puppet/services/pacemaker/nova-scheduler.yaml new file mode 100644 index 00000000..0032cbe6 --- /dev/null +++ b/puppet/services/pacemaker/nova-scheduler.yaml @@ -0,0 +1,30 @@ +heat_template_version: 2016-04-08 + +description: > + OpenStack Nova Scheduler service with Pacemaker configured with Puppet. + +parameters: + EndpointMap: + default: {} + description: Mapping of service endpoint -> protocol. Typically set + via parameter_defaults in the resource registry. + type: json + +resources: + + NovaSchedulerBase: + type: ../nova-scheduler.yaml + properties: + EndpointMap: {get_param: EndpointMap} + +outputs: + role_data: + description: Role data for the Nova Scheduler role. + value: + config_settings: + map_merge: + - get_attr: [NovaSchedulerBase, role_data, config_settings] + - nova::scheduler::manage_service: false + nova::scheduler::enabled: false + step_config: | + include ::tripleo::profile::pacemaker::nova::scheduler -- cgit 1.2.3-korg