aboutsummaryrefslogtreecommitdiffstats
path: root/manifests/profile/pacemaker
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/profile/pacemaker')
-rw-r--r--manifests/profile/pacemaker/ceilometer.pp16
-rw-r--r--manifests/profile/pacemaker/ceilometer/api.pp5
-rw-r--r--manifests/profile/pacemaker/cinder/backup.pp60
-rw-r--r--manifests/profile/pacemaker/cinder/volume.pp6
-rw-r--r--manifests/profile/pacemaker/database/mysql.pp25
-rw-r--r--manifests/profile/pacemaker/database/redis.pp8
-rw-r--r--manifests/profile/pacemaker/haproxy.pp6
-rw-r--r--manifests/profile/pacemaker/manila.pp61
-rw-r--r--manifests/profile/pacemaker/rabbitmq.pp6
9 files changed, 171 insertions, 22 deletions
diff --git a/manifests/profile/pacemaker/ceilometer.pp b/manifests/profile/pacemaker/ceilometer.pp
index 531b4bc..a31128d 100644
--- a/manifests/profile/pacemaker/ceilometer.pp
+++ b/manifests/profile/pacemaker/ceilometer.pp
@@ -87,22 +87,6 @@ class tripleo::profile::pacemaker::ceilometer (
require => [Pacemaker::Resource::Service[$::ceilometer::params::agent_central_service_name],
Pacemaker::Resource::Service[$::ceilometer::params::collector_service_name]],
}
- pacemaker::constraint::base { 'ceilometer-collector-then-ceilometer-api-constraint':
- constraint_type => 'order',
- first_resource => "${::ceilometer::params::collector_service_name}-clone",
- second_resource => "${::ceilometer::params::api_service_name}-clone",
- first_action => 'start',
- second_action => 'start',
- require => [Pacemaker::Resource::Service[$::ceilometer::params::collector_service_name],
- Pacemaker::Resource::Service[$::ceilometer::params::api_service_name]],
- }
- pacemaker::constraint::colocation { 'ceilometer-api-with-ceilometer-collector-colocation':
- source => "${::ceilometer::params::api_service_name}-clone",
- target => "${::ceilometer::params::collector_service_name}-clone",
- score => 'INFINITY',
- require => [Pacemaker::Resource::Service[$::ceilometer::params::api_service_name],
- Pacemaker::Resource::Service[$::ceilometer::params::collector_service_name]],
- }
}
}
diff --git a/manifests/profile/pacemaker/ceilometer/api.pp b/manifests/profile/pacemaker/ceilometer/api.pp
index 0eddaec..169121b 100644
--- a/manifests/profile/pacemaker/ceilometer/api.pp
+++ b/manifests/profile/pacemaker/ceilometer/api.pp
@@ -34,10 +34,11 @@ class tripleo::profile::pacemaker::ceilometer::api (
include ::ceilometer::params
include ::tripleo::profile::pacemaker::ceilometer
include ::tripleo::profile::base::ceilometer::api
+ include ::tripleo::profile::pacemaker::apache
if $step >= 5 and downcase($::hostname) == $pacemaker_master {
- pacemaker::resource::service { $::ceilometer::params::api_service_name :
- clone_params => 'interleave=true',
+ class { '::tripleo::profile::base::ceilometer::api':
+ step => $step,
}
}
diff --git a/manifests/profile/pacemaker/cinder/backup.pp b/manifests/profile/pacemaker/cinder/backup.pp
new file mode 100644
index 0000000..72ec456
--- /dev/null
+++ b/manifests/profile/pacemaker/cinder/backup.pp
@@ -0,0 +1,60 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::pacemaker::cinder::backup
+#
+# Cinder Backup Pacemaker HA profile for tripleo
+#
+# === Parameters
+#
+# [*bootstrap_node*]
+# (Optional) The hostname of the node responsible for bootstrapping tasks
+# Defaults to hiera('bootstrap_nodeid')
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::pacemaker::cinder::backup (
+ $bootstrap_node = hiera('bootstrap_nodeid'),
+ $step = hiera('step'),
+) {
+
+ Service <| tag == 'cinder::backup' |> {
+ hasrestart => true,
+ restart => '/bin/true',
+ start => '/bin/true',
+ stop => '/bin/true',
+ }
+
+ if $::hostname == downcase($bootstrap_node) {
+ $pacemaker_master = true
+ } else {
+ $pacemaker_master = false
+ }
+
+ include ::tripleo::profile::base::cinder::backup
+
+ if $step >= 3 and $pacemaker_master and hiera('stack_action') == 'UPDATE' {
+ Cinder_config<||>
+ ~>
+ tripleo::pacemaker::resource_restart_flag { "${::cinder::params::backup_service}": }
+ }
+
+ if $step >= 5 and $pacemaker_master {
+ pacemaker::resource::service { $::cinder::params::backup_service : }
+ }
+
+}
diff --git a/manifests/profile/pacemaker/cinder/volume.pp b/manifests/profile/pacemaker/cinder/volume.pp
index 5a581eb..82e2522 100644
--- a/manifests/profile/pacemaker/cinder/volume.pp
+++ b/manifests/profile/pacemaker/cinder/volume.pp
@@ -46,6 +46,12 @@ class tripleo::profile::pacemaker::cinder::volume (
include ::tripleo::profile::base::cinder::volume
+ if $step >= 3 and $pacemaker_master and hiera('stack_action') == 'UPDATE' {
+ Cinder_api_paste_ini<||> ~> Tripleo::Pacemaker::Resource_restart_flag["${::cinder::params::volume_service}"]
+ Cinder_config<||> ~> Tripleo::Pacemaker::Resource_restart_flag["${::cinder::params::volume_service}"]
+ tripleo::pacemaker::resource_restart_flag { "${::cinder::params::volume_service}": }
+ }
+
if $step >= 5 and $pacemaker_master {
pacemaker::resource::service { $::cinder::params::volume_service : }
}
diff --git a/manifests/profile/pacemaker/database/mysql.pp b/manifests/profile/pacemaker/database/mysql.pp
index 529aeac..4dc3770 100644
--- a/manifests/profile/pacemaker/database/mysql.pp
+++ b/manifests/profile/pacemaker/database/mysql.pp
@@ -32,8 +32,17 @@ class tripleo::profile::pacemaker::database::mysql (
$pacemaker_master = false
}
$mysql_bind_host = hiera('mysql_bind_host')
- $galera_nodes = downcase(hiera('galera_node_names', $::hostname))
+
+ # use only mysql_node_names when we land a patch in t-h-t that
+ # switches to autogenerating these values from composable services
+ $galera_node_names_lookup = hiera('mysql_node_names', hiera('galera_node_names', $::hostname))
+ if is_array($galera_node_names_lookup) {
+ $galera_nodes = downcase(join($galera_node_names_lookup, ','))
+ } else {
+ $galera_nodes = downcase($galera_node_names_lookup)
+ }
$galera_nodes_count = count(split($galera_nodes, ','))
+
$mysqld_options = {
'mysqld' => {
'skip-name-resolve' => '1',
@@ -71,7 +80,13 @@ class tripleo::profile::pacemaker::database::mysql (
mysql_server_options => $mysqld_options,
}
- if $step >= 2 and $pacemaker_master {
+ if $step >= 1 and $pacemaker_master and hiera('stack_action') == 'UPDATE' {
+ tripleo::pacemaker::resource_restart_flag { 'galera-master':
+ subscribe => File['mysql-config-file'],
+ }
+ }
+
+ if $step >= 2 {
if $pacemaker_master {
pacemaker::resource::ocf { 'galera' :
ocf_agent_name => 'heartbeat:galera',
@@ -150,8 +165,12 @@ MYSQL_HOST=localhost\n",
# with proper credentials. This step happens on every node because this sql
# statement does not automatically replicate across nodes.
$mysql_root_password = hiera('mysql::server::root_password')
+ $galera_set_pwd = "/bin/touch /root/.my.cnf && \
+ /bin/echo \"UPDATE mysql.user SET Password = PASSWORD('${mysql_root_password}') WHERE user = 'root'; \
+ flush privileges;\" | \
+ /bin/mysql --defaults-extra-file=/root/.my.cnf -u root"
exec { 'galera-set-root-password':
- command => "/bin/touch /root/.my.cnf && /bin/echo \"UPDATE mysql.user SET Password = PASSWORD('${mysql_root_password}') WHERE user = 'root'; flush privileges;\" | /bin/mysql --defaults-extra-file=/root/.my.cnf -u root",
+ command => $galera_set_pwd,
}
file { '/root/.my.cnf' :
ensure => file,
diff --git a/manifests/profile/pacemaker/database/redis.pp b/manifests/profile/pacemaker/database/redis.pp
index 8a37ce9..e081516 100644
--- a/manifests/profile/pacemaker/database/redis.pp
+++ b/manifests/profile/pacemaker/database/redis.pp
@@ -44,6 +44,14 @@ class tripleo::profile::pacemaker::database::redis (
if $step >= 1 {
include ::redis
+
+ if $pacemaker_master and hiera('stack_action') == 'UPDATE' {
+ tripleo::pacemaker::resource_restart_flag { 'redis-master':
+ # ouch, but trying to stay close how notification works in
+ # puppet-redis when pacemaker is not being used
+ subscribe => Exec["cp -p ${::redis::config_file_orig} ${::redis::config_file}"]
+ }
+ }
}
if $step >= 2 and $pacemaker_master {
diff --git a/manifests/profile/pacemaker/haproxy.pp b/manifests/profile/pacemaker/haproxy.pp
index 1b83d9b..b2e127b 100644
--- a/manifests/profile/pacemaker/haproxy.pp
+++ b/manifests/profile/pacemaker/haproxy.pp
@@ -44,6 +44,12 @@ class tripleo::profile::pacemaker::haproxy (
$pacemaker_master = false
}
+ if $step >= 1 and $pacemaker_master and hiera('stack_action') == 'UPDATE' {
+ tripleo::pacemaker::resource_restart_flag { 'haproxy-clone':
+ subscribe => Concat['/etc/haproxy/haproxy.cfg'],
+ }
+ }
+
if $step >= 2 and $pacemaker_master and $enable_load_balancer {
# FIXME: we should not have to access tripleo::haproxy class
# parameters here to configure pacemaker VIPs. The configuration
diff --git a/manifests/profile/pacemaker/manila.pp b/manifests/profile/pacemaker/manila.pp
index 43ae875..a7f91fc 100644
--- a/manifests/profile/pacemaker/manila.pp
+++ b/manifests/profile/pacemaker/manila.pp
@@ -83,6 +83,34 @@
# (Optional)
# Defaults to hiera('manila::backend::generic::volume_snapshot_name_template')
#
+# [*manila_cephfsnative_enable*]
+# (Optional) Enable the CephFS Native backend.
+# Defaults to hiera('manila_cephfsnative_enable_backend', 'false')
+#
+# [*cephfs_handles_share_servers*]
+# (Optional)
+# Defaults to hiera('manila::backend::cephfsnative::driver_handles_share_servers', false)
+#
+# [*cephfs_backend_name*]
+# (Optional)
+# Defaults to hiera('manila::backend::cephfsnative::cephfs_backend_name')
+#
+# [*cephfs_conf_path*]
+# (Optional)
+# Defaults to hiera('manila::backend::cephfsnative::cephfs_conf_path')
+#
+# [*cephfs_auth_id*]
+# (Optional)
+# Defaults to hiera('manila::backend::cephfsnative::cephfs_auth_id')
+#
+# [*cephfs_cluster_name*]
+# (Optional)
+# Defaults to hiera('manila::backend::cephfsnative::cephfs_cluster_name')
+#
+# [*cephfs_enable_snapshots*]
+# (Optional)
+# Defaults to hiera('manila::backend::cephfsnative::cephfs_enable_snapshots')
+#
class tripleo::profile::pacemaker::manila (
$bootstrap_node = hiera('bootstrap_nodeid'),
$cinder_volume_type = hiera('manila::backend::generic::cinder_volume_type', ''),
@@ -100,6 +128,13 @@ class tripleo::profile::pacemaker::manila (
$step = hiera('step'),
$volume_name_template = hiera('manila::backend::generic::volume_name_template'),
$volume_snapshot_name_template = hiera('manila::backend::generic::volume_snapshot_name_template'),
+ $manila_cephfsnative_enable = hiera('manila::backend::cephfsnative::enable_backend', false),
+ $cephfs_handles_share_servers = hiera('manila::backend::cephfsnative::driver_handles_share_servers'),
+ $cephfs_backend_name = hiera('manila::backend::cephfsnative::cephfs_backend_name'),
+ $cephfs_conf_path = hiera('manila::backend::cephfsnative::cephfs_conf_path'),
+ $cephfs_auth_id = hiera('manila::backend::cephfsnative::cephfs_auth_id'),
+ $cephfs_cluster_name = hiera('manila::backend::cephfsnative::cephfs_cluster_name'),
+ $cephfs_enable_snapshots = hiera('manila::backend::cephfsnative::cephfs_enable_snapshots'),
) {
if $::hostname == downcase($bootstrap_node) {
$pacemaker_master = true
@@ -145,10 +180,34 @@ class tripleo::profile::pacemaker::manila (
include ::manila::volume::cinder
}
- $manila_enabled_backends = delete_undef_values([$manila_generic_backend])
+ # manila cephfsnative:
+ if $manila_cephfsnative_enable {
+ $manila_cephfsnative_backend = hiera('manila::backend::cephfsnative::title')
+ manila::backend::cephfsnative { $manila_cephfsnative_backend :
+ driver_handles_share_servers => $cephfs_handles_share_servers,
+ cephfs_backend_name => $cephfs_backend_name,
+ cephfs_conf_path => $cephfs_conf_path,
+ cephfs_auth_id => $cephfs_auth_id,
+ cephfs_cluster_name => $cephfs_cluster_name,
+ cephfs_enable_snapshots => $cephfs_enable_snapshots,
+ }
+ }
+
+ $manila_enabled_backends = delete_undef_values(
+ [
+ $manila_generic_backend,
+ $manila_cephfsnative_backend
+ ]
+ )
class { '::manila::backends' :
enabled_share_backends => $manila_enabled_backends,
}
+
+ if $pacemaker_master and hiera('stack_action') == 'UPDATE' {
+ Manila_api_paste_ini<||> ~> Tripleo::Pacemaker::Resource_restart_flag["${::manila::params::share_service}"]
+ Manila_config<||> ~> Tripleo::Pacemaker::Resource_restart_flag["${::manila::params::share_service}"]
+ tripleo::pacemaker::resource_restart_flag { "${::manila::params::share_service}": }
+ }
}
if $step >= 5 and $pacemaker_master {
diff --git a/manifests/profile/pacemaker/rabbitmq.pp b/manifests/profile/pacemaker/rabbitmq.pp
index 93edec9..1f25e8b 100644
--- a/manifests/profile/pacemaker/rabbitmq.pp
+++ b/manifests/profile/pacemaker/rabbitmq.pp
@@ -54,6 +54,12 @@ class tripleo::profile::pacemaker::rabbitmq (
require => Class['::rabbitmq'],
}
+ if $step >= 1 and $pacemaker_master and hiera('stack_action') == 'UPDATE' {
+ tripleo::pacemaker::resource_restart_flag { 'rabbitmq-clone':
+ subscribe => Class['rabbitmq::service'],
+ }
+ }
+
if $step >= 2 and $pacemaker_master {
pacemaker::resource::ocf { 'rabbitmq':
ocf_agent_name => 'heartbeat:rabbitmq-cluster',