summaryrefslogtreecommitdiffstats
path: root/puppet
diff options
context:
space:
mode:
authorEmilien Macchi <emilien@redhat.com>2016-06-01 16:39:20 -0400
committerSteven Hardy <shardy@redhat.com>2016-06-06 12:47:19 +0000
commit3d01f650f18b9e4f1892a6d9aa17f1bfc99b5091 (patch)
tree6954c9292212a4a83e7f8f610546f4cd9a191822 /puppet
parentdc507862061360e0d777cdcb96cfb46d8bac75fe (diff)
Enable nova-conductor as a composable service
Implement NovaConductor service using nova-base for common parameters. * Move rabbitmq parameters from controller.yaml to nova-base service, as an example. More parameters will move in the future. * Move nova-conductor bits from monolithic manifests to the new service using new profiles from puppet-tripleo. Depends-On: Iaaf3a3c2528d9747e41f360a1fe55f95ed37b2d1 Implements: blueprint composable-services-within-roles Change-Id: I178f092b74ae12f2cb6f006db7cb00e4d6bddfd8
Diffstat (limited to 'puppet')
-rw-r--r--puppet/controller.yaml5
-rw-r--r--puppet/hieradata/controller.yaml1
-rw-r--r--puppet/manifests/overcloud_controller.pp1
-rw-r--r--puppet/manifests/overcloud_controller_pacemaker.pp7
-rw-r--r--puppet/services/nova-base.yaml39
-rw-r--r--puppet/services/nova-conductor.yaml30
-rw-r--r--puppet/services/pacemaker/nova-conductor.yaml30
7 files changed, 99 insertions, 14 deletions
diff --git a/puppet/controller.yaml b/puppet/controller.yaml
index 80e6b458..074cb6f1 100644
--- a/puppet/controller.yaml
+++ b/puppet/controller.yaml
@@ -1272,12 +1272,7 @@ resources:
gnocchi::keystone::auth::region: {get_input: keystone_region}
# Nova
- nova::rabbit_userid: {get_input: rabbit_username}
- 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::use_ipv6: {get_input: nova_ipv6}
nova::api::auth_uri: {get_input: keystone_auth_uri}
nova::api::identity_uri: {get_input: keystone_identity_uri}
diff --git a/puppet/hieradata/controller.yaml b/puppet/hieradata/controller.yaml
index d57f9166..3ad0748e 100644
--- a/puppet/hieradata/controller.yaml
+++ b/puppet/hieradata/controller.yaml
@@ -1,7 +1,6 @@
# Hiera data here applies to all controller nodes
nova::api::enabled: true
-nova::conductor::enabled: true
nova::consoleauth::enabled: true
nova::vncproxy::enabled: true
nova::scheduler::enabled: true
diff --git a/puppet/manifests/overcloud_controller.pp b/puppet/manifests/overcloud_controller.pp
index 9b4e76cc..89569ae5 100644
--- a/puppet/manifests/overcloud_controller.pp
+++ b/puppet/manifests/overcloud_controller.pp
@@ -162,7 +162,6 @@ if hiera('step') >= 4 {
include ::nova::config
include ::nova::api
include ::nova::cert
- include ::nova::conductor
include ::nova::consoleauth
include ::nova::network::neutron
include ::nova::vncproxy
diff --git a/puppet/manifests/overcloud_controller_pacemaker.pp b/puppet/manifests/overcloud_controller_pacemaker.pp
index dc53d6d4..10f0398c 100644
--- a/puppet/manifests/overcloud_controller_pacemaker.pp
+++ b/puppet/manifests/overcloud_controller_pacemaker.pp
@@ -384,10 +384,6 @@ MYSQL_HOST=localhost\n",
manage_service => false,
enabled => false,
}
- class { '::nova::conductor' :
- manage_service => false,
- enabled => false,
- }
class { '::nova::consoleauth' :
manage_service => false,
enabled => false,
@@ -839,9 +835,6 @@ password=\"${mysql_root_password}\"",
pacemaker::resource::service { $::nova::params::api_service_name :
clone_params => 'interleave=true',
}
- pacemaker::resource::service { $::nova::params::conductor_service_name :
- clone_params => 'interleave=true',
- }
pacemaker::resource::service { $::nova::params::consoleauth_service_name :
clone_params => 'interleave=true',
require => Pacemaker::Resource::Ocf['openstack-core'],
diff --git a/puppet/services/nova-base.yaml b/puppet/services/nova-base.yaml
new file mode 100644
index 00000000..7de14f68
--- /dev/null
+++ b/puppet/services/nova-base.yaml
@@ -0,0 +1,39 @@
+heat_template_version: 2016-04-08
+
+description: >
+ OpenStack Nova base service. Shared for all Nova services.
+
+parameters:
+ RabbitPassword:
+ description: The password for RabbitMQ
+ type: string
+ hidden: true
+ RabbitUserName:
+ default: guest
+ description: The username for RabbitMQ
+ type: string
+ RabbitClientUseSSL:
+ default: false
+ description: >
+ Rabbit client subscriber parameter to specify
+ an SSL connection to the RabbitMQ host.
+ type: string
+ RabbitClientPort:
+ default: 5672
+ description: Set rabbit subscriber port, change this if using SSL
+ type: number
+ Debug:
+ type: string
+ default: ''
+ description: Set to True to enable debugging on all services.
+
+outputs:
+ role_data:
+ description: Role data for the Neutron base service.
+ value:
+ config_settings:
+ nova::rabbit_password: {get_param: RabbitPassword}
+ nova::rabbit_user: {get_param: RabbitUserName}
+ nova::rabbit_use_ssl: {get_param: RabbitClientUseSSL}
+ nova::rabbit_port: {get_param: RabbitClientPort}
+ nova::debug: {get_param: Debug}
diff --git a/puppet/services/nova-conductor.yaml b/puppet/services/nova-conductor.yaml
new file mode 100644
index 00000000..412dd275
--- /dev/null
+++ b/puppet/services/nova-conductor.yaml
@@ -0,0 +1,30 @@
+heat_template_version: 2016-04-08
+
+description: >
+ OpenStack Nova Conductor service configured with Puppet
+
+parameters:
+ EndpointMap:
+ default: {}
+ description: Mapping of service endpoint -> protocol. Typically set
+ via parameter_defaults in the resource registry.
+ type: json
+ NovaWorkers:
+ default: 0
+ description: Number of workers for Nova Conductor service.
+ type: number
+
+resources:
+ NovaBase:
+ type: ./nova-base.yaml
+
+outputs:
+ role_data:
+ description: Role data for the Nova Conductor service.
+ value:
+ config_settings:
+ map_merge:
+ - get_attr: [NovaBase, role_data, config_settings]
+ - nova::conductor::workers: {get_param: NovaWorkers}
+ step_config: |
+ include tripleo::profile::base::nova::conductor
diff --git a/puppet/services/pacemaker/nova-conductor.yaml b/puppet/services/pacemaker/nova-conductor.yaml
new file mode 100644
index 00000000..a484f0df
--- /dev/null
+++ b/puppet/services/pacemaker/nova-conductor.yaml
@@ -0,0 +1,30 @@
+heat_template_version: 2016-04-08
+
+description: >
+ OpenStack Nova Conductor 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:
+
+ NovaConductorBase:
+ type: ../nova-conductor.yaml
+ properties:
+ EndpointMap: {get_param: EndpointMap}
+
+outputs:
+ role_data:
+ description: Role data for the Nova Conductor role.
+ value:
+ config_settings:
+ map_merge:
+ - get_attr: [NovaConductorBase, role_data, config_settings]
+ - nova::conductor::manage_service: false
+ nova::conductor::enabled: false
+ step_config: |
+ include ::tripleo::profile::pacemaker::nova::conductor