Merge "Deploy Aodh services, replacing Ceilometer Alarm"
This commit is contained in:
commit
19e44d2a61
@ -5,6 +5,9 @@ parameter_defaults:
|
||||
SSLKey: |
|
||||
The contents of the private key go here
|
||||
EndpointMap:
|
||||
AodhAdmin: {protocol: 'http', port: '8042', host: 'IP_ADDRESS'}
|
||||
AodhInternal: {protocol: 'http', port: '8042', host: 'IP_ADDRESS'}
|
||||
AodhPublic: {protocol: 'https', port: '13042', host: 'CLOUDNAME'}
|
||||
CeilometerAdmin: {protocol: 'http', port: '8777', host: 'IP_ADDRESS'}
|
||||
CeilometerInternal: {protocol: 'http', port: '8777', host: 'IP_ADDRESS'}
|
||||
CeilometerPublic: {protocol: 'https', port: '13777', host: 'CLOUDNAME'}
|
||||
|
@ -12,3 +12,28 @@
|
||||
# The migration functions should be idempotent. If the migration has
|
||||
# been already applied, it should be possible to call the function
|
||||
# again without damaging the deployment or failing the upgrade.
|
||||
|
||||
function remove_ceilometer_alarm {
|
||||
if pcs status | grep openstack-ceilometer-alarm; then
|
||||
# Disable pacemaker resources for ceilometer-alarms
|
||||
pcs resource disable openstack-ceilometer-alarm-evaluator
|
||||
check_resource openstack-ceilometer-alarm-evaluator stopped 600
|
||||
pcs resource delete openstack-ceilometer-alarm-evaluator
|
||||
pcs resource disable openstack-ceilometer-alarm-notifier
|
||||
check_resource openstack-ceilometer-alarm-notifier stopped 600
|
||||
pcs resource delete openstack-ceilometer-alarm-notifier
|
||||
|
||||
# remove constraints
|
||||
pcs constraint remove ceilometer-delay-then-ceilometer-alarm-evaluator-constraint
|
||||
pcs constraint remove ceilometer-alarm-evaluator-with-ceilometer-delay-colocation
|
||||
pcs constraint remove ceilometer-alarm-evaluator-then-ceilometer-alarm-notifier-constraint
|
||||
pcs constraint remove ceilometer-alarm-notifier-with-ceilometer-alarm-evaluator-colocation
|
||||
pcs constraint remove ceilometer-alarm-notifier-then-ceilometer-notification-constraint
|
||||
pcs constraint remove ceilometer-notification-with-ceilometer-alarm-notifier-colocation
|
||||
|
||||
fi
|
||||
|
||||
# uninstall openstack-ceilometer-alarm package
|
||||
yum -y remove openstack-ceilometer-alarm
|
||||
|
||||
}
|
||||
|
@ -53,12 +53,13 @@ neutron-l3-agent
|
||||
neutron-metadata-agent
|
||||
neutron-openvswitch-agent
|
||||
neutron-server
|
||||
openstack-ceilometer-alarm-evaluator
|
||||
openstack-ceilometer-alarm-notifier
|
||||
openstack-ceilometer-api
|
||||
openstack-ceilometer-central
|
||||
openstack-ceilometer-collector
|
||||
openstack-ceilometer-notification
|
||||
openstack-aodh-evaluator
|
||||
openstack-aodh-notifier
|
||||
openstack-aodh-listener
|
||||
openstack-cinder-api
|
||||
openstack-cinder-scheduler
|
||||
openstack-cinder-volume
|
||||
@ -107,6 +108,9 @@ openstack-nova-scheduler"
|
||||
pcs -f $pacemaker_dumpfile constraint order promote redis-master then start openstack-ceilometer-central-clone require-all=false
|
||||
fi
|
||||
|
||||
if ! pcs constraint order show | grep "promote redis-master then start openstack-aodh-evaluator-clone"; then
|
||||
pcs -f $pacemaker_dumpfile constraint order promote redis-master then start openstack-aodh-evaluator-clone require-all=false
|
||||
fi
|
||||
# ensure neutron constraints https://review.openstack.org/#/c/229466
|
||||
# remove ovs-cleanup after server and add openvswitch-agent instead
|
||||
if pcs constraint order show | grep "start neutron-server-clone then start neutron-ovs-cleanup-clone"; then
|
||||
|
@ -1,6 +1,15 @@
|
||||
# Data in this file is used to generate the endpoint_map.yaml template.
|
||||
# Run the script build_endpoint_map.py to regenerate the file.
|
||||
|
||||
Aodh:
|
||||
Internal:
|
||||
vip_param: AodhApi
|
||||
Public:
|
||||
vip_param: Public
|
||||
Admin:
|
||||
vip_param: AodhApi
|
||||
port: 8042
|
||||
|
||||
Ceilometer:
|
||||
Internal:
|
||||
vip_param: CeilometerApi
|
||||
|
@ -8,6 +8,7 @@ description: A map of OpenStack endpoints. Since the endpoints are URLs,
|
||||
parameters come from net_ip_uri_map, which will include these brackets
|
||||
in IPv6 addresses.
|
||||
parameters:
|
||||
AodhApiVirtualIP: {type: string, default: ''}
|
||||
CeilometerApiVirtualIP: {type: string, default: ''}
|
||||
CinderApiVirtualIP: {type: string, default: ''}
|
||||
GlanceApiVirtualIP: {type: string, default: ''}
|
||||
@ -23,6 +24,9 @@ parameters:
|
||||
EndpointMap:
|
||||
type: json
|
||||
default:
|
||||
AodhAdmin: {protocol: http, port: '8042', host: IP_ADDRESS}
|
||||
AodhInternal: {protocol: http, port: '8042', host: IP_ADDRESS}
|
||||
AodhPublic: {protocol: http, port: '8042', host: IP_ADDRESS}
|
||||
CeilometerAdmin: {protocol: http, port: '8777', host: IP_ADDRESS}
|
||||
CeilometerInternal: {protocol: http, port: '8777', host: IP_ADDRESS}
|
||||
CeilometerPublic: {protocol: http, port: '8777', host: IP_ADDRESS}
|
||||
@ -67,6 +71,120 @@ parameters:
|
||||
outputs:
|
||||
endpoint_map:
|
||||
value:
|
||||
AodhAdmin:
|
||||
host:
|
||||
str_replace:
|
||||
template:
|
||||
get_param: [EndpointMap, AodhAdmin, host]
|
||||
params:
|
||||
CLOUDNAME: {get_param: CloudName}
|
||||
IP_ADDRESS: {get_param: AodhApiVirtualIP}
|
||||
port:
|
||||
get_param: [EndpointMap, AodhAdmin, port]
|
||||
protocol:
|
||||
get_param: [EndpointMap, AodhAdmin, protocol]
|
||||
uri:
|
||||
list_join:
|
||||
- ''
|
||||
- - get_param: [EndpointMap, AodhAdmin, protocol]
|
||||
- ://
|
||||
- str_replace:
|
||||
template:
|
||||
get_param: [EndpointMap, AodhAdmin, host]
|
||||
params:
|
||||
CLOUDNAME: {get_param: CloudName}
|
||||
IP_ADDRESS: {get_param: AodhApiVirtualIP}
|
||||
- ':'
|
||||
- get_param: [EndpointMap, AodhAdmin, port]
|
||||
uri_no_suffix:
|
||||
list_join:
|
||||
- ''
|
||||
- - get_param: [EndpointMap, AodhAdmin, protocol]
|
||||
- ://
|
||||
- str_replace:
|
||||
template:
|
||||
get_param: [EndpointMap, AodhAdmin, host]
|
||||
params:
|
||||
CLOUDNAME: {get_param: CloudName}
|
||||
IP_ADDRESS: {get_param: AodhApiVirtualIP}
|
||||
- ':'
|
||||
- get_param: [EndpointMap, AodhAdmin, port]
|
||||
AodhInternal:
|
||||
host:
|
||||
str_replace:
|
||||
template:
|
||||
get_param: [EndpointMap, AodhInternal, host]
|
||||
params:
|
||||
CLOUDNAME: {get_param: CloudName}
|
||||
IP_ADDRESS: {get_param: AodhApiVirtualIP}
|
||||
port:
|
||||
get_param: [EndpointMap, AodhInternal, port]
|
||||
protocol:
|
||||
get_param: [EndpointMap, AodhInternal, protocol]
|
||||
uri:
|
||||
list_join:
|
||||
- ''
|
||||
- - get_param: [EndpointMap, AodhInternal, protocol]
|
||||
- ://
|
||||
- str_replace:
|
||||
template:
|
||||
get_param: [EndpointMap, AodhInternal, host]
|
||||
params:
|
||||
CLOUDNAME: {get_param: CloudName}
|
||||
IP_ADDRESS: {get_param: AodhApiVirtualIP}
|
||||
- ':'
|
||||
- get_param: [EndpointMap, AodhInternal, port]
|
||||
uri_no_suffix:
|
||||
list_join:
|
||||
- ''
|
||||
- - get_param: [EndpointMap, AodhInternal, protocol]
|
||||
- ://
|
||||
- str_replace:
|
||||
template:
|
||||
get_param: [EndpointMap, AodhInternal, host]
|
||||
params:
|
||||
CLOUDNAME: {get_param: CloudName}
|
||||
IP_ADDRESS: {get_param: AodhApiVirtualIP}
|
||||
- ':'
|
||||
- get_param: [EndpointMap, AodhInternal, port]
|
||||
AodhPublic:
|
||||
host:
|
||||
str_replace:
|
||||
template:
|
||||
get_param: [EndpointMap, AodhPublic, host]
|
||||
params:
|
||||
CLOUDNAME: {get_param: CloudName}
|
||||
IP_ADDRESS: {get_param: PublicVirtualIP}
|
||||
port:
|
||||
get_param: [EndpointMap, AodhPublic, port]
|
||||
protocol:
|
||||
get_param: [EndpointMap, AodhPublic, protocol]
|
||||
uri:
|
||||
list_join:
|
||||
- ''
|
||||
- - get_param: [EndpointMap, AodhPublic, protocol]
|
||||
- ://
|
||||
- str_replace:
|
||||
template:
|
||||
get_param: [EndpointMap, AodhPublic, host]
|
||||
params:
|
||||
CLOUDNAME: {get_param: CloudName}
|
||||
IP_ADDRESS: {get_param: PublicVirtualIP}
|
||||
- ':'
|
||||
- get_param: [EndpointMap, AodhPublic, port]
|
||||
uri_no_suffix:
|
||||
list_join:
|
||||
- ''
|
||||
- - get_param: [EndpointMap, AodhPublic, protocol]
|
||||
- ://
|
||||
- str_replace:
|
||||
template:
|
||||
get_param: [EndpointMap, AodhPublic, host]
|
||||
params:
|
||||
CLOUDNAME: {get_param: CloudName}
|
||||
IP_ADDRESS: {get_param: PublicVirtualIP}
|
||||
- ':'
|
||||
- get_param: [EndpointMap, AodhPublic, port]
|
||||
CeilometerAdmin:
|
||||
host:
|
||||
str_replace:
|
||||
|
@ -16,6 +16,11 @@ parameters:
|
||||
description: The password for the keystone admin account, used for monitoring, querying neutron etc.
|
||||
type: string
|
||||
hidden: true
|
||||
AodhPassword:
|
||||
default: unset
|
||||
description: The password for the aodh services.
|
||||
type: string
|
||||
hidden: true
|
||||
CeilometerBackend:
|
||||
default: 'mongodb'
|
||||
description: The ceilometer backend type.
|
||||
@ -675,6 +680,7 @@ parameters:
|
||||
default:
|
||||
NeutronTenantNetwork: tenant
|
||||
CeilometerApiNetwork: internal_api
|
||||
AodhApiNetwork: internal_api
|
||||
MongoDbNetwork: internal_api
|
||||
CinderApiNetwork: internal_api
|
||||
CinderIscsiNetwork: storage
|
||||
@ -874,6 +880,7 @@ resources:
|
||||
properties:
|
||||
CloudName: {get_param: CloudName}
|
||||
CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
|
||||
AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
|
||||
CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
|
||||
GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
|
||||
HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
|
||||
@ -897,6 +904,7 @@ resources:
|
||||
properties:
|
||||
AdminPassword: {get_param: AdminPassword}
|
||||
AdminToken: {get_param: AdminToken}
|
||||
AodhPassword: {get_param: AodhPassword}
|
||||
CeilometerBackend: {get_param: CeilometerBackend}
|
||||
CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
|
||||
CeilometerPassword: {get_param: CeilometerPassword}
|
||||
@ -1012,6 +1020,7 @@ resources:
|
||||
ServiceNetMap: {get_param: ServiceNetMap}
|
||||
EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
|
||||
CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
|
||||
AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
|
||||
CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
|
||||
HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
|
||||
HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
|
||||
@ -1250,6 +1259,7 @@ resources:
|
||||
heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
|
||||
swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
|
||||
ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
|
||||
aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
|
||||
nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
|
||||
nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
|
||||
glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
|
||||
@ -1370,6 +1380,7 @@ resources:
|
||||
nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
|
||||
nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
|
||||
ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
|
||||
aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
|
||||
heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
|
||||
horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
|
||||
redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
|
||||
@ -1652,6 +1663,9 @@ outputs:
|
||||
PublicVip:
|
||||
description: Controller VIP for public API endpoints
|
||||
value: {get_attr: [VipMap, net_ip_map, external]}
|
||||
AodhInternalVip:
|
||||
description: VIP for Aodh API internal endpoint
|
||||
value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
|
||||
CeilometerInternalVip:
|
||||
description: VIP for Ceilometer API internal endpoint
|
||||
value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
|
||||
|
@ -34,6 +34,8 @@ parameters:
|
||||
type: comma_delimited_list
|
||||
ceilometer_api_node_ips:
|
||||
type: comma_delimited_list
|
||||
aodh_api_node_ips:
|
||||
type: comma_delimited_list
|
||||
nova_api_node_ips:
|
||||
type: comma_delimited_list
|
||||
nova_metadata_node_ips:
|
||||
@ -187,6 +189,14 @@ resources:
|
||||
list_join:
|
||||
- "','"
|
||||
- {get_param: ceilometer_api_node_ips}
|
||||
aodh_api_node_ips:
|
||||
str_replace:
|
||||
template: "['SERVERS_LIST']"
|
||||
params:
|
||||
SERVERS_LIST:
|
||||
list_join:
|
||||
- "','"
|
||||
- {get_param: aodh_api_node_ips}
|
||||
nova_api_node_ips:
|
||||
str_replace:
|
||||
template: "['SERVERS_LIST']"
|
||||
@ -272,6 +282,7 @@ resources:
|
||||
# NOTE(gfidente): interpolation with %{} in the
|
||||
# hieradata file can't be used as it returns string
|
||||
ceilometer::rabbit_hosts: *rabbit_nodes_array
|
||||
aodh::rabbit_hosts: *rabbit_nodes_array
|
||||
cinder::rabbit_hosts: *rabbit_nodes_array
|
||||
glance::notify::rabbitmq::rabbit_hosts: *rabbit_nodes_array
|
||||
heat::rabbit_hosts: *rabbit_nodes_array
|
||||
|
@ -17,6 +17,14 @@ parameters:
|
||||
description: The keystone auth secret and db password.
|
||||
type: string
|
||||
hidden: true
|
||||
AodhApiVirtualIP:
|
||||
type: string
|
||||
default: ''
|
||||
AodhPassword:
|
||||
default: unset
|
||||
description: The password for the aodh services.
|
||||
type: string
|
||||
hidden: true
|
||||
CeilometerApiVirtualIP:
|
||||
type: string
|
||||
default: ''
|
||||
@ -1164,6 +1172,7 @@ resources:
|
||||
ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
|
||||
ceilometer_password: {get_param: CeilometerPassword}
|
||||
ceilometer_store_events: {get_param: CeilometerStoreEvents}
|
||||
aodh_password: {get_param: AodhPassword}
|
||||
ceilometer_coordination_url:
|
||||
list_join:
|
||||
- ''
|
||||
@ -1254,6 +1263,7 @@ resources:
|
||||
neutron_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
|
||||
neutron_local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronTenantNetwork]}]}
|
||||
ceilometer_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
|
||||
aodh_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
|
||||
nova_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
|
||||
nova_metadata_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
|
||||
horizon_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
|
||||
@ -1558,6 +1568,24 @@ resources:
|
||||
snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
|
||||
snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
|
||||
|
||||
# Aodh
|
||||
aodh::rabbit_userid: {get_input: rabbit_username}
|
||||
aodh::rabbit_password: {get_input: rabbit_password}
|
||||
aodh::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
|
||||
aodh::rabbit_port: {get_input: rabbit_client_port}
|
||||
aodh::debug: {get_input: debug}
|
||||
aodh::wsgi::apache::ssl: false
|
||||
aodh::wsgi::apache::bind_host: {get_input: aodh_api_network}
|
||||
aodh::api::service_name: 'httpd'
|
||||
aodh::api::host: {get_input: aodh_api_network}
|
||||
aodh::api::keystone_password: {get_input: aodh_password}
|
||||
aodh::api::keystone_auth_uri: {get_input: keystone_auth_uri}
|
||||
aodh::api::keystone_identity_uri: {get_input: keystone_identity_uri}
|
||||
aodh::auth::auth_password: {get_input: aodh_password}
|
||||
aodh::db::mysql::password: {get_input: aodh_password}
|
||||
# for a migration path from ceilometer-alarm to aodh, we use the same database & coordination
|
||||
aodh::evaluator::coordination_url: {get_input: ceilometer_coordination_url}
|
||||
|
||||
# Nova
|
||||
nova::rabbit_userid: {get_input: rabbit_username}
|
||||
nova::rabbit_password: {get_input: rabbit_password}
|
||||
|
@ -5,6 +5,9 @@ ssh::server::storeconfigs_enabled: false
|
||||
ceilometer::agent::auth::auth_region: 'regionOne'
|
||||
ceilometer::agent::auth::auth_tenant_name: 'service'
|
||||
|
||||
aodh::auth::auth_region: 'regionOne'
|
||||
aodh::auth::auth_tenant_name: 'service'
|
||||
|
||||
nova::api::admin_tenant_name: 'service'
|
||||
nova::network::neutron::neutron_project_name: 'service'
|
||||
nova::network::neutron::neutron_username: 'neutron'
|
||||
|
@ -35,6 +35,7 @@ keystone::roles::admin::email: 'root@localhost'
|
||||
|
||||
# service tenant
|
||||
glance::api::keystone_tenant: 'service'
|
||||
aodh::api::keystone_tenant: 'service'
|
||||
glance::registry::keystone_tenant: 'service'
|
||||
neutron::server::auth_tenant: 'service'
|
||||
neutron::agents::metadata::auth_tenant: 'service'
|
||||
@ -149,6 +150,7 @@ tripleo::loadbalancer::redis: true
|
||||
tripleo::loadbalancer::sahara: true
|
||||
tripleo::loadbalancer::swift_proxy_server: true
|
||||
tripleo::loadbalancer::ceilometer: true
|
||||
tripleo::loadbalancer::aodh: true
|
||||
tripleo::loadbalancer::heat_api: true
|
||||
tripleo::loadbalancer::heat_cloudwatch: true
|
||||
tripleo::loadbalancer::heat_cfn: true
|
||||
@ -261,3 +263,7 @@ tripleo::firewall::firewall_rules:
|
||||
'127 snmp':
|
||||
port: 161
|
||||
proto: 'udp'
|
||||
'128 aodh':
|
||||
port:
|
||||
- 8042
|
||||
- 13042
|
||||
|
@ -123,6 +123,7 @@ if hiera('step') >= 2 {
|
||||
include ::sahara::db::mysql
|
||||
if downcase(hiera('ceilometer_backend')) == 'mysql' {
|
||||
include ::ceilometer::db::mysql
|
||||
include ::aodh::db::mysql
|
||||
}
|
||||
|
||||
$rabbit_nodes = hiera('rabbit_node_ips')
|
||||
@ -610,6 +611,21 @@ if hiera('step') >= 3 {
|
||||
|
||||
Cron <| title == 'ceilometer-expirer' |> { command => "sleep $((\$(od -A n -t d -N 3 /dev/urandom) % 86400)) && ${::ceilometer::params::expirer_command}" }
|
||||
|
||||
# Aodh
|
||||
class { '::aodh' :
|
||||
database_connection => $ceilometer_database_connection,
|
||||
}
|
||||
include ::aodh::db::sync
|
||||
# To manage the upgrade:
|
||||
Exec['ceilometer-dbsync'] -> Exec['aodh-db-sync']
|
||||
include ::aodh::auth
|
||||
include ::aodh::api
|
||||
include ::aodh::wsgi::apache
|
||||
include ::aodh::evaluator
|
||||
include ::aodh::notifier
|
||||
include ::aodh::listener
|
||||
include ::aodh::client
|
||||
|
||||
# Heat
|
||||
class { '::heat' :
|
||||
notification_driver => 'messaging',
|
||||
|
@ -1131,6 +1131,32 @@ if hiera('step') >= 3 {
|
||||
neutron_options => $neutron_options,
|
||||
}
|
||||
|
||||
# Aodh
|
||||
class { '::aodh' :
|
||||
database_connection => $ceilometer_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,
|
||||
}
|
||||
|
||||
$snmpd_user = hiera('snmpd_readonly_user_name')
|
||||
snmp::snmpv3_user { $snmpd_user:
|
||||
authtype => 'MD5',
|
||||
@ -1621,7 +1647,7 @@ if hiera('step') >= 4 {
|
||||
Pacemaker::Resource::Service[$::nova::params::conductor_service_name]],
|
||||
}
|
||||
|
||||
# Ceilometer
|
||||
# Ceilometer and Aodh
|
||||
case downcase(hiera('ceilometer_backend')) {
|
||||
/mysql/: {
|
||||
pacemaker::resource::service { $::ceilometer::params::agent_central_service_name:
|
||||
@ -1654,8 +1680,10 @@ if hiera('step') >= 4 {
|
||||
# Fedora doesn't know `require-all` parameter for constraints yet
|
||||
if $::operatingsystem == 'Fedora' {
|
||||
$redis_ceilometer_constraint_params = undef
|
||||
$redis_aodh_constraint_params = undef
|
||||
} else {
|
||||
$redis_ceilometer_constraint_params = 'require-all=false'
|
||||
$redis_aodh_constraint_params = 'require-all=false'
|
||||
}
|
||||
pacemaker::constraint::base { 'redis-then-ceilometer-central-constraint':
|
||||
constraint_type => 'order',
|
||||
@ -1667,6 +1695,16 @@ if hiera('step') >= 4 {
|
||||
require => [Pacemaker::Resource::Ocf['redis'],
|
||||
Pacemaker::Resource::Service[$::ceilometer::params::agent_central_service_name]],
|
||||
}
|
||||
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::constraint::base { 'keystone-then-ceilometer-central-constraint':
|
||||
constraint_type => 'order',
|
||||
first_resource => 'openstack-core-clone',
|
||||
@ -1717,6 +1755,55 @@ if hiera('step') >= 4 {
|
||||
require => [Pacemaker::Resource::Service[$::ceilometer::params::api_service_name],
|
||||
Pacemaker::Resource::Ocf['delay']],
|
||||
}
|
||||
# Aodh
|
||||
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::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]],
|
||||
}
|
||||
if downcase(hiera('ceilometer_backend')) == 'mongodb' {
|
||||
pacemaker::constraint::base { 'mongodb-then-ceilometer-central-constraint':
|
||||
constraint_type => 'order',
|
||||
|
@ -26,6 +26,7 @@ resources:
|
||||
nova_api_vip: {get_input: nova_api_vip}
|
||||
nova_metadata_vip: {get_input: nova_metadata_vip}
|
||||
ceilometer_api_vip: {get_input: ceilometer_api_vip}
|
||||
aodh_api_vip: {get_input: aodh_api_vip}
|
||||
heat_api_vip: {get_input: heat_api_vip}
|
||||
horizon_vip: {get_input: horizon_vip}
|
||||
redis_vip: {get_input: redis_vip}
|
||||
|
Loading…
Reference in New Issue
Block a user