Last active
May 24, 2016 08:15
-
-
Save pkilambi/f7de42bdfaa4cb7475f181f767377ddf to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
extraconfig/tasks/aodh_upgrade.yaml: | |
heat_template_version: 2014-10-16 | |
description: > | |
Software-config for performing aodh upgrades | |
parameters: | |
controller_servers: | |
type: json | |
resources: | |
AodhPreUpgradeConfig: | |
type: OS::Heat::SoftwareConfig | |
properties: | |
group: script | |
config: | |
get_file: major_upgrade_pacemaker_migrations.sh | |
list_join: | |
- '' | |
- - "#!/bin/bash\n\n" | |
- "remove_ceilometer_alarm\n\n" | |
AodhUpgradeConfig: | |
type: OS::Heat::SoftwareConfig | |
properties: | |
group: puppet | |
config: | |
get_file: aodh_upgrade.pp | |
AodhPreUpgradeDeployment: | |
type: OS::Heat::SoftwareDeployment | |
properties: | |
name: AodhPreUpgradeDeployment | |
server: {get_param: controller_servers} | |
config: {get_resource: AodhPreUpgradeConfig} | |
AodhUpgradeConfigDeployment: | |
type: OS::Heat::SoftwareDeployment | |
depends_on: AodhPreUpgradeDeployment | |
properties: | |
name: AodhUpgradeConfigDeployment | |
server: {get_param: controller_servers} | |
config: {get_resource: AodhUpgradeConfig} | |
extraconfig/tasks/aodh_upgrade.pp: | |
if $::hostname == downcase(hiera('bootstrap_nodeid')) { | |
$pacemaker_master = true | |
} else { | |
$pacemaker_master = false | |
} | |
if str2bool(hiera('mongodb::server::ipv6', false)) { | |
$mongo_node_ips_with_port_prefixed = prefix(hiera('mongo_node_ips'), '[') | |
$mongo_node_ips_with_port = suffix($mongo_node_ips_with_port_prefixed, ']:27017') | |
$mongo_node_ips_with_port_nobr = suffix(hiera('mongo_node_ips'), ':27017') | |
} else { | |
$mongo_node_ips_with_port = suffix(hiera('mongo_node_ips'), ':27017') | |
$mongo_node_ips_with_port_nobr = suffix(hiera('mongo_node_ips'), ':27017') | |
} | |
$mongodb_replset = hiera('mongodb::server::replset') | |
$mongo_node_string = join($mongo_node_ips_with_port, ',') | |
$database_connection = "mongodb://${mongo_node_string}/ceilometer?replicaSet=${mongodb_replset}" | |
class { '::aodh' : | |
database_connection => $database_connection, | |
} | |
include ::aodh::config | |
include ::aodh::auth | |
include ::aodh::client | |
include ::aodh::wsgi::apache | |
class { '::aodh::api': | |
manage_service => false, | |
enabled => false, | |
service_name => 'httpd', | |
} | |
class { '::aodh::evaluator': | |
manage_service => false, | |
enabled => false, | |
} | |
class { '::aodh::notifier': | |
manage_service => false, | |
enabled => false, | |
} | |
class { '::aodh::listener': | |
manage_service => false, | |
enabled => false, | |
} | |
if $pacemaker_master { | |
# Fedora doesn't know `require-all` parameter for constraints yet | |
if $::operatingsystem == 'Fedora' { | |
$redis_aodh_constraint_params = undef | |
} else { | |
$redis_aodh_constraint_params = 'require-all=false' | |
} | |
pacemaker::constraint::base { 'redis-then-aodh-evaluator-constraint': | |
constraint_type => 'order', | |
first_resource => 'redis-master', | |
second_resource => "${::aodh::params::evaluator_service_name}-clone", | |
first_action => 'promote', | |
second_action => 'start', | |
constraint_params => $redis_aodh_constraint_params, | |
require => [Pacemaker::Resource::Ocf['redis'], | |
Pacemaker::Resource::Service[$::aodh::params::evaluator_service_name]], | |
} | |
pacemaker::resource::service { $::aodh::params::evaluator_service_name : | |
clone_params => 'interleave=true', | |
} | |
pacemaker::resource::service { $::aodh::params::notifier_service_name : | |
clone_params => 'interleave=true', | |
} | |
pacemaker::resource::service { $::aodh::params::listener_service_name : | |
clone_params => 'interleave=true', | |
} | |
pacemaker::constraint::base { 'aodh-delay-then-aodh-evaluator-constraint': | |
constraint_type => 'order', | |
first_resource => 'delay-clone', | |
second_resource => "${::aodh::params::evaluator_service_name}-clone", | |
first_action => 'start', | |
second_action => 'start', | |
require => [Pacemaker::Resource::Service[$::aodh::params::evaluator_service_name], | |
Pacemaker::Resource::Ocf['delay']], | |
} | |
pacemaker::constraint::colocation { 'aodh-evaluator-with-aodh-delay-colocation': | |
source => "${::aodh::params::evaluator_service_name}-clone", | |
target => 'delay-clone', | |
score => 'INFINITY', | |
require => [Pacemaker::Resource::Service[$::aodh::params::evaluator_service_name], | |
Pacemaker::Resource::Ocf['delay']], | |
} | |
pacemaker::constraint::base { 'aodh-evaluator-then-aodh-notifier-constraint': | |
constraint_type => 'order', | |
first_resource => "${::aodh::params::evaluator_service_name}-clone", | |
second_resource => "${::aodh::params::notifier_service_name}-clone", | |
first_action => 'start', | |
second_action => 'start', | |
require => [Pacemaker::Resource::Service[$::aodh::params::evaluator_service_name], | |
Pacemaker::Resource::Service[$::aodh::params::notifier_service_name]], | |
} | |
pacemaker::constraint::colocation { 'aodh-notifier-with-aodh-evaluator-colocation': | |
source => "${::aodh::params::notifier_service_name}-clone", | |
target => "${::aodh::params::evaluator_service_name}-clone", | |
score => 'INFINITY', | |
require => [Pacemaker::Resource::Service[$::aodh::params::evaluator_service_name], | |
Pacemaker::Resource::Service[$::aodh::params::notifier_service_name]], | |
} | |
pacemaker::constraint::base { 'aodh-evaluator-then-aodh-listener-constraint': | |
constraint_type => 'order', | |
first_resource => "${::aodh::params::evaluator_service_name}-clone", | |
second_resource => "${::aodh::params::listener_service_name}-clone", | |
first_action => 'start', | |
second_action => 'start', | |
require => [Pacemaker::Resource::Service[$::aodh::params::evaluator_service_name], | |
Pacemaker::Resource::Service[$::aodh::params::listener_service_name]], | |
} | |
pacemaker::constraint::colocation { 'aodh-listener-with-aodh-evaluator-colocation': | |
source => "${::aodh::params::listener_service_name}-clone", | |
target => "${::aodh::params::evaluator_service_name}-clone", | |
score => 'INFINITY', | |
require => [Pacemaker::Resource::Service[$::aodh::params::evaluator_service_name], | |
Pacemaker::Resource::Service[$::aodh::params::listener_service_name]], | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The get_file should go within the list_join i think, to produce a single script.