summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build/aodh-puppet-tripleo.patch111
-rwxr-xr-xbuild/instack.sh5
-rw-r--r--build/opnfv-tripleo-heat-templates.patch158
3 files changed, 231 insertions, 43 deletions
diff --git a/build/aodh-puppet-tripleo.patch b/build/aodh-puppet-tripleo.patch
new file mode 100644
index 00000000..819b9061
--- /dev/null
+++ b/build/aodh-puppet-tripleo.patch
@@ -0,0 +1,111 @@
+From 784cd3f4e6481b9c802db25ab379fccdab4bd1c3 Mon Sep 17 00:00:00 2001
+From: Emilien Macchi <emilien@redhat.com>
+Date: Tue, 3 Nov 2015 17:43:01 -0500
+Subject: [PATCH] loadbalancer: add Aodh API support
+
+Add Aodh (Ceilometer Alarming) support in TripleO Loadbalancer config.
+
+Change-Id: I891985da9248a88c6ce2df1dd186881f582605ee
+---
+ manifests/loadbalancer.pp | 43 +++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 43 insertions(+)
+
+diff --git a/manifests/loadbalancer.pp b/manifests/loadbalancer.pp
+index 16a4f80..2fcfac6 100644
+--- a/manifests/loadbalancer.pp
++++ b/manifests/loadbalancer.pp
+@@ -130,6 +130,11 @@
+ # When set, enables SSL on the Ceilometer public API endpoint using the specified file.
+ # Defaults to undef
+ #
++# [*aodh_certificate*]
++# Filename of an HAProxy-compatible certificate and key file
++# When set, enables SSL on the Aodh public API endpoint using the specified file.
++# Defaults to undef
++#
+ # [*swift_certificate*]
+ # Filename of an HAProxy-compatible certificate and key file
+ # When set, enables SSL on the Swift public API endpoint using the specified file.
+@@ -198,6 +203,10 @@
+ # (optional) Enable or not Ceilometer API binding
+ # Defaults to false
+ #
++# [*aodh*]
++# (optional) Enable or not Aodh API binding
++# Defaults to false
++#
+ # [*swift_proxy_server*]
+ # (optional) Enable or not Swift API binding
+ # Defaults to false
+@@ -262,6 +271,7 @@ class tripleo::loadbalancer (
+ $glance_certificate = undef,
+ $nova_certificate = undef,
+ $ceilometer_certificate = undef,
++ $aodh_certificate = undef,
+ $swift_certificate = undef,
+ $heat_certificate = undef,
+ $horizon_certificate = undef,
+@@ -278,6 +288,7 @@ class tripleo::loadbalancer (
+ $nova_metadata = false,
+ $nova_novncproxy = false,
+ $ceilometer = false,
++ $aodh = false,
+ $swift_proxy_server = false,
+ $heat_api = false,
+ $heat_cloudwatch = false,
+@@ -421,6 +432,11 @@ class tripleo::loadbalancer (
+ } else {
+ $ceilometer_bind_certificate = $service_certificate
+ }
++ if $aodh_certificate {
++ $aodh_bind_certificate = $aodh_certificate
++ } else {
++ $aodh_bind_certificate = $service_certificate
++ }
+ if $swift_certificate {
+ $swift_bind_certificate = $swift_certificate
+ } else {
+@@ -558,6 +574,19 @@ class tripleo::loadbalancer (
+ }
+ }
+
++ $aodh_api_vip = hiera('aodh_api_vip', $controller_virtual_ip)
++ if $aodh_bind_certificate {
++ $aodh_bind_opts = {
++ "${aodh_api_vip}:8042" => [],
++ "${public_virtual_ip}:13042" => ['ssl', 'crt', $aodh_bind_certificate],
++ }
++ } else {
++ $aodh_bind_opts = {
++ "${aodh_api_vip}:8042" => [],
++ "${public_virtual_ip}:8042" => [],
++ }
++ }
++
+ $swift_proxy_vip = hiera('swift_proxy_vip', $controller_virtual_ip)
+ if $swift_bind_certificate {
+ $swift_bind_opts = {
+@@ -840,6 +869,20 @@ class tripleo::loadbalancer (
+ }
+ }
+
++ if $aodh {
++ haproxy::listen { 'aodh':
++ bind => $aodh_bind_opts,
++ collect_exported => false,
++ }
++ haproxy::balancermember { 'aodh':
++ listening_service => 'aodh',
++ ports => '8042',
++ ipaddresses => hiera('aodh_api_node_ips', $controller_hosts_real),
++ server_names => $controller_hosts_names_real,
++ options => ['check', 'inter 2000', 'rise 2', 'fall 5'],
++ }
++ }
++
+ if $swift_proxy_server {
+ haproxy::listen { 'swift_proxy_server':
+ bind => $swift_bind_opts,
+--
+1.8.3.1
+
diff --git a/build/instack.sh b/build/instack.sh
index a0f2d0f0..8b00bbe4 100755
--- a/build/instack.sh
+++ b/build/instack.sh
@@ -333,10 +333,15 @@ LIBGUESTFS_BACKEND=direct virt-customize --upload ../opnfv-tripleo-heat-template
LIBGUESTFS_BACKEND=direct virt-customize --upload ../puppet-neutron-force-metadata.patch:/tmp \
--run-command "cd /etc/puppet/modules/neutron && patch -Np1 < /tmp/puppet-neutron-force-metadata.patch" \
-a overcloud-full-opendaylight.qcow2
+
LIBGUESTFS_BACKEND=direct virt-customize --upload ../puppet-cinder-quota-fix.patch:/tmp \
--run-command "cd /etc/puppet/modules/cinder && patch -Np1 < /tmp/puppet-cinder-quota-fix.patch" \
-a overcloud-full-opendaylight.qcow2
+LIBGUESTFS_BACKEND=direct virt-customize --upload ../aodh-puppet-tripleo.patch:/tmp \
+ --run-command "cd /etc/puppet/modules/tripleo && patch -Np1 < /tmp/aodh-puppet-tripleo.patch" \
+ -a overcloud-full-opendaylight.qcow2
+
# adds tripleoclient aodh workaround
# for keystone
LIBGUESTFS_BACKEND=direct virt-customize --upload ../aodh-tripleoclient.patch:/tmp \
diff --git a/build/opnfv-tripleo-heat-templates.patch b/build/opnfv-tripleo-heat-templates.patch
index 04ba061e..c456a365 100644
--- a/build/opnfv-tripleo-heat-templates.patch
+++ b/build/opnfv-tripleo-heat-templates.patch
@@ -1,4 +1,4 @@
-From 38d7938ada285c980298ccee22bea3e4c4c9ff33 Mon Sep 17 00:00:00 2001
+From b4edc1dff23217add43d92cac3c2906dcd1c74d1 Mon Sep 17 00:00:00 2001
From: Tim Rozet <tdrozet@gmail.com>
Date: Tue, 12 Jan 2016 16:49:57 -0500
Subject: [PATCH] Adds current opnfv patch with ODL and ONOS support
@@ -11,17 +11,17 @@ Subject: [PATCH] Adds current opnfv patch with ODL and ONOS support
network/endpoints/endpoint_map.yaml | 31 ++
overcloud-resource-registry-puppet.yaml | 3 +
overcloud-without-mergepy.yaml | 87 +++++
- puppet/all-nodes-config.yaml | 16 +
+ puppet/all-nodes-config.yaml | 17 +
puppet/compute.yaml | 35 ++
puppet/controller.yaml | 87 ++++-
puppet/hieradata/common.yaml | 1 +
puppet/hieradata/controller.yaml | 3 +
puppet/manifests/overcloud_compute.pp | 33 +-
- puppet/manifests/overcloud_controller.pp | 104 +++++-
- puppet/manifests/overcloud_controller_pacemaker.pp | 394 +++++++++++++++------
+ puppet/manifests/overcloud_controller.pp | 104 ++++-
+ puppet/manifests/overcloud_controller_pacemaker.pp | 434 ++++++++++++++-------
puppet/manifests/overcloud_opendaylight.pp | 27 ++
- puppet/opendaylight-puppet.yaml | 217 ++++++++++++
- 17 files changed, 979 insertions(+), 126 deletions(-)
+ puppet/opendaylight-puppet.yaml | 217 +++++++++++
+ 17 files changed, 986 insertions(+), 160 deletions(-)
create mode 100644 environments/onos.yaml
create mode 100644 environments/opendaylight-external.yaml
create mode 100644 environments/opendaylight.yaml
@@ -408,7 +408,7 @@ index a532c2f..5206004 100644
description: VIP for Ceilometer API internal endpoint
value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
diff --git a/puppet/all-nodes-config.yaml b/puppet/all-nodes-config.yaml
-index 2bc519b..6342df3 100644
+index 2bc519b..d649ba0 100644
--- a/puppet/all-nodes-config.yaml
+++ b/puppet/all-nodes-config.yaml
@@ -8,6 +8,8 @@ parameters:
@@ -455,6 +455,14 @@ index 2bc519b..6342df3 100644
nova_api_node_ips:
str_replace:
template: "['SERVERS_LIST']"
+@@ -239,6 +255,7 @@ resources:
+ neutron::rabbit_hosts: *rabbit_nodes_array
+ nova::rabbit_hosts: *rabbit_nodes_array
+ keystone::rabbit_hosts: *rabbit_nodes_array
++ aodh::rabbit_hosts: *rabbit_nodes_array
+
+ outputs:
+ config_id:
diff --git a/puppet/compute.yaml b/puppet/compute.yaml
index 70c7403..13fd4f6 100644
--- a/puppet/compute.yaml
@@ -967,7 +975,7 @@ index 1f6c2be..474bb1d 100644
include ::heat
include ::heat::api
diff --git a/puppet/manifests/overcloud_controller_pacemaker.pp b/puppet/manifests/overcloud_controller_pacemaker.pp
-index 3fb92f3..4dc4f7f 100644
+index 3fb92f3..5992602 100644
--- a/puppet/manifests/overcloud_controller_pacemaker.pp
+++ b/puppet/manifests/overcloud_controller_pacemaker.pp
@@ -380,6 +380,21 @@ if hiera('step') >= 2 {
@@ -1042,7 +1050,7 @@ index 3fb92f3..4dc4f7f 100644
+ } else {
+ $opendaylight_controller_ip = hiera('opendaylight_controller_ip')
+ }
-
++
+ $opendaylight_port = hiera('opendaylight_port')
+ $private_ip = hiera('neutron::agents::ml2::ovs::local_ip')
+
@@ -1052,7 +1060,7 @@ index 3fb92f3..4dc4f7f 100644
+ odl_password => hiera('opendaylight_password'),
+ odl_port => hiera('opendaylight_port'),
+ }
-+
+
+ if str2bool(hiera('opendaylight_install', 'false')) {
+ class { 'neutron::plugins::ovs::opendaylight':
+ odl_controller_ip => $opendaylight_controller_ip,
@@ -1136,7 +1144,40 @@ index 3fb92f3..4dc4f7f 100644
# httpd/apache and horizon
# NOTE(gfidente): server-status can be consumed by the pacemaker resource agent
class { '::apache' :
-@@ -1055,62 +1147,21 @@ if hiera('step') >= 4 {
+@@ -914,6 +1006,32 @@ if hiera('step') >= 3 {
+ if hiera('step') >= 4 {
+ include ::keystone::cron::token_flush
+
++ $event_pipeline = "---
++sources:
++ - name: event_source
++ events:
++ - \"*\"
++ sinks:
++ - event_sink
++sinks:
++ - name: event_sink
++ transformers:
++ triggers:
++ publishers:
++ - notifier://?topic=alarm.all
++ - notifier://
++"
++
++ # aodh hacks
++ file { '/etc/ceilometer/event_pipeline':
++ ensure => present,
++ content => $event_pipeline
++ }
++
++ user { 'aodh':
++ groups => 'nobody'
++ }
++
+ if $pacemaker_master {
+
+ # Keystone
+@@ -1055,62 +1173,21 @@ if hiera('step') >= 4 {
clone_params => 'interleave=true',
require => Pacemaker::Resource::Service[$::keystone::params::service_name],
}
@@ -1203,7 +1244,7 @@ index 3fb92f3..4dc4f7f 100644
pacemaker::constraint::base { 'keystone-to-neutron-server-constraint':
constraint_type => 'order',
first_resource => "${::keystone::params::service_name}-clone",
-@@ -1120,65 +1171,110 @@ if hiera('step') >= 4 {
+@@ -1120,65 +1197,110 @@ if hiera('step') >= 4 {
require => [Pacemaker::Resource::Service[$::keystone::params::service_name],
Pacemaker::Resource::Service[$::neutron::params::server_service]],
}
@@ -1370,7 +1411,7 @@ index 3fb92f3..4dc4f7f 100644
# Nova
pacemaker::resource::service { $::nova::params::api_service_name :
clone_params => 'interleave=true',
-@@ -1276,7 +1372,7 @@ if hiera('step') >= 4 {
+@@ -1276,7 +1398,7 @@ if hiera('step') >= 4 {
Pacemaker::Resource::Service[$::nova::params::conductor_service_name]],
}
@@ -1379,13 +1420,15 @@ index 3fb92f3..4dc4f7f 100644
case downcase(hiera('ceilometer_backend')) {
/mysql/: {
pacemaker::resource::service { $::ceilometer::params::agent_central_service_name :
-@@ -1304,6 +1400,21 @@ if hiera('step') >= 4 {
- pacemaker::resource::service { $::ceilometer::params::alarm_notifier_service_name :
+@@ -1298,10 +1420,19 @@ if hiera('step') >= 4 {
+ pacemaker::resource::service { $::ceilometer::params::api_service_name :
clone_params => 'interleave=true',
}
+- pacemaker::resource::service { $::ceilometer::params::alarm_evaluator_service_name :
+ pacemaker::resource::service { $::aodh::params::notifier_service_name :
-+ clone_params => 'interleave=true',
-+ }
+ clone_params => 'interleave=true',
+ }
+- pacemaker::resource::service { $::ceilometer::params::alarm_notifier_service_name :
+ pacemaker::resource::service { $::aodh::params::expirer_package_serice :
+ clone_params => 'interleave=true',
+ }
@@ -1396,12 +1439,10 @@ index 3fb92f3..4dc4f7f 100644
+ clone_params => 'interleave=true',
+ }
+ pacemaker::resource::service { $::aodh::params::evaluator_service_name :
-+ clone_params => 'interleave=true',
-+ }
- pacemaker::resource::service { $::ceilometer::params::agent_notification_service_name :
clone_params => 'interleave=true',
}
-@@ -1315,8 +1426,19 @@ if hiera('step') >= 4 {
+ pacemaker::resource::service { $::ceilometer::params::agent_notification_service_name :
+@@ -1315,8 +1446,19 @@ if hiera('step') >= 4 {
# Fedora doesn't know `require-all` parameter for constraints yet
if $::operatingsystem == 'Fedora' {
$redis_ceilometer_constraint_params = undef
@@ -1421,7 +1462,7 @@ index 3fb92f3..4dc4f7f 100644
}
pacemaker::constraint::base { 'redis-then-ceilometer-central-constraint':
constraint_type => 'order',
-@@ -1328,6 +1450,16 @@ if hiera('step') >= 4 {
+@@ -1328,6 +1470,16 @@ if hiera('step') >= 4 {
require => [Pacemaker::Resource::Ocf['redis'],
Pacemaker::Resource::Service[$::ceilometer::params::agent_central_service_name]],
}
@@ -1438,45 +1479,76 @@ index 3fb92f3..4dc4f7f 100644
pacemaker::constraint::base { 'keystone-then-ceilometer-central-constraint':
constraint_type => 'order',
first_resource => "${::keystone::params::service_name}-clone",
-@@ -1426,6 +1558,38 @@ if hiera('step') >= 4 {
- require => [Pacemaker::Resource::Service[$::ceilometer::params::agent_notification_service_name],
- Pacemaker::Resource::Service[$::ceilometer::params::alarm_notifier_service_name]],
+@@ -1378,53 +1530,37 @@ if hiera('step') >= 4 {
+ require => [Pacemaker::Resource::Service[$::ceilometer::params::api_service_name],
+ Pacemaker::Resource::Ocf['delay']],
}
+- pacemaker::constraint::base { 'ceilometer-delay-then-ceilometer-alarm-evaluator-constraint':
+ pacemaker::constraint::base { 'aodh-delay-then-aodh-evaluator-constraint':
-+ constraint_type => 'order',
-+ first_resource => 'delay-clone',
+ constraint_type => 'order',
+ first_resource => 'delay-clone',
+- second_resource => "${::ceilometer::params::alarm_evaluator_service_name}-clone",
+ second_resource => "${::aodh::params::evaluator_service_name}-clone",
-+ first_action => 'start',
-+ second_action => 'start',
+ first_action => 'start',
+ second_action => 'start',
+- require => [Pacemaker::Resource::Service[$::ceilometer::params::alarm_evaluator_service_name],
+ require => [Pacemaker::Resource::Service[$::aodh::params::evaluator_service_name],
-+ Pacemaker::Resource::Ocf['delay']],
-+ }
+ Pacemaker::Resource::Ocf['delay']],
+ }
+- pacemaker::constraint::colocation { 'ceilometer-alarm-evaluator-with-ceilometer-delay-colocation':
+- source => "${::ceilometer::params::alarm_evaluator_service_name}-clone",
+ pacemaker::constraint::colocation { 'aodh-evaluator-with-aodh-delay-colocation':
+ source => "${::aodh::params::evaluator_service_name}-clone",
-+ target => 'delay-clone',
-+ score => 'INFINITY',
+ target => 'delay-clone',
+ score => 'INFINITY',
+- require => [Pacemaker::Resource::Service[$::ceilometer::params::api_service_name],
+ require => [Pacemaker::Resource::Service[$::horizon::params::http_service],
-+ Pacemaker::Resource::Ocf['delay']],
-+ }
+ Pacemaker::Resource::Ocf['delay']],
+ }
+- pacemaker::constraint::base { 'ceilometer-alarm-evaluator-then-ceilometer-alarm-notifier-constraint':
+- constraint_type => 'order',
+- first_resource => "${::ceilometer::params::alarm_evaluator_service_name}-clone",
+- second_resource => "${::ceilometer::params::alarm_notifier_service_name}-clone",
+- first_action => 'start',
+- second_action => 'start',
+- require => [Pacemaker::Resource::Service[$::ceilometer::params::alarm_evaluator_service_name],
+- Pacemaker::Resource::Service[$::ceilometer::params::alarm_notifier_service_name]],
+- }
+- pacemaker::constraint::colocation { 'ceilometer-alarm-notifier-with-ceilometer-alarm-evaluator-colocation':
+- source => "${::ceilometer::params::alarm_notifier_service_name}-clone",
+- target => "${::ceilometer::params::alarm_evaluator_service_name}-clone",
+- score => 'INFINITY',
+- require => [Pacemaker::Resource::Service[$::ceilometer::params::alarm_evaluator_service_name],
+- Pacemaker::Resource::Service[$::ceilometer::params::alarm_notifier_service_name]],
+- }
+- pacemaker::constraint::base { 'ceilometer-alarm-notifier-then-ceilometer-notification-constraint':
+ pacemaker::constraint::base { 'aodh-evaluator-then-aodh-notifier-constraint':
-+ constraint_type => 'order',
+ constraint_type => 'order',
+- first_resource => "${::ceilometer::params::alarm_notifier_service_name}-clone",
+- second_resource => "${::ceilometer::params::agent_notification_service_name}-clone",
+ first_resource => "${::aodh::params::evaluator_service_name}-clone",
+ second_resource => "${::aodh::params::notifier_service_name}-clone",
-+ first_action => 'start',
-+ second_action => 'start',
+ first_action => 'start',
+ second_action => 'start',
+- require => [Pacemaker::Resource::Service[$::ceilometer::params::agent_notification_service_name],
+- Pacemaker::Resource::Service[$::ceilometer::params::alarm_notifier_service_name]],
+ require => [Pacemaker::Resource::Service[$::aodh::params::evaluator_service_name],
+ Pacemaker::Resource::Service[$::aodh::params::notifier_service_name]],
-+ }
+ }
+- pacemaker::constraint::colocation { 'ceilometer-notification-with-ceilometer-alarm-notifier-colocation':
+- source => "${::ceilometer::params::agent_notification_service_name}-clone",
+- target => "${::ceilometer::params::alarm_notifier_service_name}-clone",
+ 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',
+ score => 'INFINITY',
+- require => [Pacemaker::Resource::Service[$::ceilometer::params::agent_notification_service_name],
+- Pacemaker::Resource::Service[$::ceilometer::params::alarm_notifier_service_name]],
+ require => [Pacemaker::Resource::Service[$::aodh::params::evaluator_service_name],
+ Pacemaker::Resource::Service[$::aodh::params::notifier_service_name]],
-+ }
+ }
if downcase(hiera('ceilometer_backend')) == 'mongodb' {
pacemaker::constraint::base { 'mongodb-then-ceilometer-central-constraint':
- constraint_type => 'order',
diff --git a/puppet/manifests/overcloud_opendaylight.pp b/puppet/manifests/overcloud_opendaylight.pp
new file mode 100644
index 0000000..33f609a
@@ -1734,5 +1806,5 @@ index 0000000..b876dc7
+ - - {get_attr: [OpenDaylightDeployment, deploy_stdout]}
+ - {get_param: UpdateIdentifier}
--
-2.5.0
+2.5.4 (Apple Git-61)