aboutsummaryrefslogtreecommitdiffstats
path: root/puppet
diff options
context:
space:
mode:
authorJiri Stransky <jistr@redhat.com>2015-05-20 10:26:08 +0200
committerJiri Stransky <jistr@redhat.com>2015-05-20 14:55:50 +0200
commit43d4eee72884c23de2aef76436ba2044afdb80e8 (patch)
treee942113f287edc4c0e72e5e5f05fd29849abb1ee /puppet
parent37ba7cd30acc86769bfc114cce62ae48a73406b1 (diff)
Prepare for adding OpenStack services to Pacemaker
We need to write config for OpenStack services on all nodes in step 3 so that we can then create pacemaker resources in step 4. (If we wrote config on non-bootstrap nodes in step 4 as it is currently, services on those nodes might be started unconfigured. This is an inter-node ordering issue that cannot be easily solved from within Puppet manifests, hence the use of steps to enforce this ordering.) Change-Id: Ia78ec38520bd1295872ea2690e8d3f8d6b01c46c
Diffstat (limited to 'puppet')
-rw-r--r--puppet/manifests/overcloud_controller_pacemaker.pp148
1 files changed, 124 insertions, 24 deletions
diff --git a/puppet/manifests/overcloud_controller_pacemaker.pp b/puppet/manifests/overcloud_controller_pacemaker.pp
index af3c9875..ecd5db5f 100644
--- a/puppet/manifests/overcloud_controller_pacemaker.pp
+++ b/puppet/manifests/overcloud_controller_pacemaker.pp
@@ -37,6 +37,14 @@ if $::hostname == downcase(hiera('bootstrap_nodeid')) {
$sync_db = false
}
+# When to start and enable services which haven't been Pacemakerized
+# FIXME: change to only step 4 after this patch is merged:
+# https://review.openstack.org/#/c/180565/
+# $non_pcmk_start = hiera('step') >= 4
+# FIXME: remove when we start all OpenStack services using Pacemaker
+# (occurences of this variable will be gradually replaced with false)
+$non_pcmk_start = hiera('step') >= 4 or (hiera('step') >= 3 and $pacemaker_master)
+
if hiera('step') >= 1 {
if count(hiera('ntp::servers')) > 0 {
@@ -354,10 +362,12 @@ MYSQL_HOST=localhost\n",
} #END STEP 2
-if (hiera('step') >= 3 and $pacemaker_master) or hiera('step') >= 4 {
+if hiera('step') >= 3 {
class { '::keystone':
sync_db => $sync_db,
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
}
#TODO: need a cleanup-keystone-tokens.sh solution here
@@ -403,10 +413,14 @@ if (hiera('step') >= 3 and $pacemaker_master) or hiera('step') >= 4 {
# TODO: notifications, scrubber, etc.
include ::glance
class { 'glance::api':
- known_stores => [$glance_store]
+ known_stores => [$glance_store],
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
}
class { '::glance::registry' :
sync_db => $sync_db,
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
}
include join(['::glance::backend::', $glance_backend])
@@ -416,20 +430,45 @@ if (hiera('step') >= 3 and $pacemaker_master) or hiera('step') >= 4 {
class { '::nova::api' :
sync_db => $sync_db,
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
+ }
+ class { '::nova::cert' :
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
+ }
+ class { '::nova::conductor' :
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
+ }
+ class { '::nova::consoleauth' :
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
+ }
+ class { '::nova::vncproxy' :
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
+ }
+ class { '::nova::scheduler' :
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
}
- include ::nova::cert
- include ::nova::conductor
- include ::nova::consoleauth
include ::nova::network::neutron
- include ::nova::vncproxy
- include ::nova::scheduler
include ::neutron
class { '::neutron::server' :
sync_db => $sync_db,
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
+ }
+ class { '::neutron::agents::dhcp' :
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
+ }
+ class { '::neutron::agents::l3' :
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
}
- include ::neutron::agents::dhcp
- include ::neutron::agents::l3
file { '/etc/neutron/dnsmasq-neutron.conf':
content => hiera('neutron_dnsmasq_options'),
@@ -446,11 +485,15 @@ if (hiera('step') >= 3 and $pacemaker_master) or hiera('step') >= 4 {
}
class { 'neutron::agents::ml2::ovs':
+ # manage_service => $non_pcmk_start, -- not implemented
+ enabled => $non_pcmk_start,
bridge_mappings => split(hiera('neutron_bridge_mappings'), ','),
tunnel_types => split(hiera('neutron_tunnel_types'), ','),
}
class { 'neutron::agents::metadata':
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
auth_url => join(['http://', hiera('controller_virtual_ip'), ':35357/v2.0']),
}
@@ -462,10 +505,18 @@ if (hiera('step') >= 3 and $pacemaker_master) or hiera('step') >= 4 {
include ::cinder
class { '::cinder::api':
sync_db => $sync_db,
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
+ }
+ class { '::cinder::scheduler' :
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
+ }
+ class { '::cinder::volume' :
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
}
include ::cinder::glance
- include ::cinder::scheduler
- include ::cinder::volume
class {'cinder::setup_test_volume':
size => join([hiera('cinder_lvm_loop_device_size'), 'M']),
}
@@ -513,7 +564,10 @@ if (hiera('step') >= 3 and $pacemaker_master) or hiera('step') >= 4 {
}
# swift proxy
- include ::swift::proxy
+ class { '::swift::proxy' :
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
+ }
include ::swift::proxy::proxy_logging
include ::swift::proxy::healthcheck
include ::swift::proxy::cache
@@ -528,9 +582,21 @@ if (hiera('step') >= 3 and $pacemaker_master) or hiera('step') >= 4 {
# swift storage
if str2bool(hiera('enable_swift_storage', 'true')) {
- class {'swift::storage::all':
+ class {'::swift::storage::all':
mount_check => str2bool(hiera('swift_mount_check'))
}
+ class {'::swift::storage::account':
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
+ }
+ class {'::swift::storage::container':
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
+ }
+ class {'::swift::storage::object':
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
+ }
if(!defined(File['/srv/node'])) {
file { '/srv/node':
ensure => directory,
@@ -555,13 +621,31 @@ if (hiera('step') >= 3 and $pacemaker_master) or hiera('step') >= 4 {
}
}
include ::ceilometer
- include ::ceilometer::api
- include ::ceilometer::agent::notification
- include ::ceilometer::agent::central
- include ::ceilometer::alarm::notifier
- include ::ceilometer::alarm::evaluator
+ class { '::ceilometer::api' :
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
+ }
+ class { '::ceilometer::agent::notification' :
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
+ }
+ class { '::ceilometer::agent::central' :
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
+ }
+ class { '::ceilometer::alarm::notifier' :
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
+ }
+ class { '::ceilometer::alarm::evaluator' :
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
+ }
+ class { '::ceilometer::collector' :
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
+ }
include ::ceilometer::expirer
- include ::ceilometer::collector
class { '::ceilometer::db' :
database_connection => $ceilometer_database_connection,
sync_db => $sync_db,
@@ -576,10 +660,22 @@ if (hiera('step') >= 3 and $pacemaker_master) or hiera('step') >= 4 {
class { '::heat' :
sync_db => $sync_db,
}
- include ::heat::api
- include ::heat::api_cfn
- include ::heat::api_cloudwatch
- include ::heat::engine
+ class { '::heat::api' :
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
+ }
+ class { '::heat::api_cfn' :
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
+ }
+ class { '::heat::api_cloudwatch' :
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
+ }
+ class { '::heat::engine' :
+ manage_service => $non_pcmk_start,
+ enabled => $non_pcmk_start,
+ }
# Horizon
$vhost_params = { add_listen => false }
@@ -598,4 +694,8 @@ if (hiera('step') >= 3 and $pacemaker_master) or hiera('step') >= 4 {
snmpd_config => [ join(['rouser ', hiera('snmpd_readonly_user_name')]), 'proc cron', 'includeAllDisks 10%', 'master agentx', 'trapsink localhost public', 'iquerySecName internalUser', 'rouser internalUser', 'defaultMonitors yes', 'linkUpDownNotifications yes' ],
}
-} #END STEP 3/4
+} #END STEP 3
+
+if hiera('step') >= 4 {
+ # TODO: pacemaker::resource::service for OpenStack services go here
+} #END STEP 4