Merge "Deploy Aodh services, replacing Ceilometer Alarm"
This commit is contained in:
commit
19e44d2a61
@ -5,6 +5,9 @@ parameter_defaults:
|
|||||||
SSLKey: |
|
SSLKey: |
|
||||||
The contents of the private key go here
|
The contents of the private key go here
|
||||||
EndpointMap:
|
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'}
|
CeilometerAdmin: {protocol: 'http', port: '8777', host: 'IP_ADDRESS'}
|
||||||
CeilometerInternal: {protocol: 'http', port: '8777', host: 'IP_ADDRESS'}
|
CeilometerInternal: {protocol: 'http', port: '8777', host: 'IP_ADDRESS'}
|
||||||
CeilometerPublic: {protocol: 'https', port: '13777', host: 'CLOUDNAME'}
|
CeilometerPublic: {protocol: 'https', port: '13777', host: 'CLOUDNAME'}
|
||||||
|
@ -12,3 +12,28 @@
|
|||||||
# The migration functions should be idempotent. If the migration has
|
# The migration functions should be idempotent. If the migration has
|
||||||
# been already applied, it should be possible to call the function
|
# been already applied, it should be possible to call the function
|
||||||
# again without damaging the deployment or failing the upgrade.
|
# 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-metadata-agent
|
||||||
neutron-openvswitch-agent
|
neutron-openvswitch-agent
|
||||||
neutron-server
|
neutron-server
|
||||||
openstack-ceilometer-alarm-evaluator
|
|
||||||
openstack-ceilometer-alarm-notifier
|
|
||||||
openstack-ceilometer-api
|
openstack-ceilometer-api
|
||||||
openstack-ceilometer-central
|
openstack-ceilometer-central
|
||||||
openstack-ceilometer-collector
|
openstack-ceilometer-collector
|
||||||
openstack-ceilometer-notification
|
openstack-ceilometer-notification
|
||||||
|
openstack-aodh-evaluator
|
||||||
|
openstack-aodh-notifier
|
||||||
|
openstack-aodh-listener
|
||||||
openstack-cinder-api
|
openstack-cinder-api
|
||||||
openstack-cinder-scheduler
|
openstack-cinder-scheduler
|
||||||
openstack-cinder-volume
|
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
|
pcs -f $pacemaker_dumpfile constraint order promote redis-master then start openstack-ceilometer-central-clone require-all=false
|
||||||
fi
|
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
|
# ensure neutron constraints https://review.openstack.org/#/c/229466
|
||||||
# remove ovs-cleanup after server and add openvswitch-agent instead
|
# 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
|
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.
|
# Data in this file is used to generate the endpoint_map.yaml template.
|
||||||
# Run the script build_endpoint_map.py to regenerate the file.
|
# 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:
|
Ceilometer:
|
||||||
Internal:
|
Internal:
|
||||||
vip_param: CeilometerApi
|
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
|
parameters come from net_ip_uri_map, which will include these brackets
|
||||||
in IPv6 addresses.
|
in IPv6 addresses.
|
||||||
parameters:
|
parameters:
|
||||||
|
AodhApiVirtualIP: {type: string, default: ''}
|
||||||
CeilometerApiVirtualIP: {type: string, default: ''}
|
CeilometerApiVirtualIP: {type: string, default: ''}
|
||||||
CinderApiVirtualIP: {type: string, default: ''}
|
CinderApiVirtualIP: {type: string, default: ''}
|
||||||
GlanceApiVirtualIP: {type: string, default: ''}
|
GlanceApiVirtualIP: {type: string, default: ''}
|
||||||
@ -23,6 +24,9 @@ parameters:
|
|||||||
EndpointMap:
|
EndpointMap:
|
||||||
type: json
|
type: json
|
||||||
default:
|
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}
|
CeilometerAdmin: {protocol: http, port: '8777', host: IP_ADDRESS}
|
||||||
CeilometerInternal: {protocol: http, port: '8777', host: IP_ADDRESS}
|
CeilometerInternal: {protocol: http, port: '8777', host: IP_ADDRESS}
|
||||||
CeilometerPublic: {protocol: http, port: '8777', host: IP_ADDRESS}
|
CeilometerPublic: {protocol: http, port: '8777', host: IP_ADDRESS}
|
||||||
@ -67,6 +71,120 @@ parameters:
|
|||||||
outputs:
|
outputs:
|
||||||
endpoint_map:
|
endpoint_map:
|
||||||
value:
|
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:
|
CeilometerAdmin:
|
||||||
host:
|
host:
|
||||||
str_replace:
|
str_replace:
|
||||||
|
@ -16,6 +16,11 @@ parameters:
|
|||||||
description: The password for the keystone admin account, used for monitoring, querying neutron etc.
|
description: The password for the keystone admin account, used for monitoring, querying neutron etc.
|
||||||
type: string
|
type: string
|
||||||
hidden: true
|
hidden: true
|
||||||
|
AodhPassword:
|
||||||
|
default: unset
|
||||||
|
description: The password for the aodh services.
|
||||||
|
type: string
|
||||||
|
hidden: true
|
||||||
CeilometerBackend:
|
CeilometerBackend:
|
||||||
default: 'mongodb'
|
default: 'mongodb'
|
||||||
description: The ceilometer backend type.
|
description: The ceilometer backend type.
|
||||||
@ -675,6 +680,7 @@ parameters:
|
|||||||
default:
|
default:
|
||||||
NeutronTenantNetwork: tenant
|
NeutronTenantNetwork: tenant
|
||||||
CeilometerApiNetwork: internal_api
|
CeilometerApiNetwork: internal_api
|
||||||
|
AodhApiNetwork: internal_api
|
||||||
MongoDbNetwork: internal_api
|
MongoDbNetwork: internal_api
|
||||||
CinderApiNetwork: internal_api
|
CinderApiNetwork: internal_api
|
||||||
CinderIscsiNetwork: storage
|
CinderIscsiNetwork: storage
|
||||||
@ -874,6 +880,7 @@ resources:
|
|||||||
properties:
|
properties:
|
||||||
CloudName: {get_param: CloudName}
|
CloudName: {get_param: CloudName}
|
||||||
CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
|
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]}]}
|
CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
|
||||||
GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
|
GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
|
||||||
HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
|
HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
|
||||||
@ -897,6 +904,7 @@ resources:
|
|||||||
properties:
|
properties:
|
||||||
AdminPassword: {get_param: AdminPassword}
|
AdminPassword: {get_param: AdminPassword}
|
||||||
AdminToken: {get_param: AdminToken}
|
AdminToken: {get_param: AdminToken}
|
||||||
|
AodhPassword: {get_param: AodhPassword}
|
||||||
CeilometerBackend: {get_param: CeilometerBackend}
|
CeilometerBackend: {get_param: CeilometerBackend}
|
||||||
CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
|
CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
|
||||||
CeilometerPassword: {get_param: CeilometerPassword}
|
CeilometerPassword: {get_param: CeilometerPassword}
|
||||||
@ -1012,6 +1020,7 @@ resources:
|
|||||||
ServiceNetMap: {get_param: ServiceNetMap}
|
ServiceNetMap: {get_param: ServiceNetMap}
|
||||||
EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
|
EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
|
||||||
CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
|
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]}]}
|
CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
|
||||||
HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
|
HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
|
||||||
HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_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]}]}
|
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]}]}
|
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]}]}
|
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_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]}]}
|
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]}]}
|
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_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]}]}
|
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]}]}
|
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]}]}
|
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]}]}
|
horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
|
||||||
redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
|
redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
|
||||||
@ -1652,6 +1663,9 @@ outputs:
|
|||||||
PublicVip:
|
PublicVip:
|
||||||
description: Controller VIP for public API endpoints
|
description: Controller VIP for public API endpoints
|
||||||
value: {get_attr: [VipMap, net_ip_map, external]}
|
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:
|
CeilometerInternalVip:
|
||||||
description: VIP for Ceilometer API internal endpoint
|
description: VIP for Ceilometer API internal endpoint
|
||||||
value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
|
value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
|
||||||
|
@ -34,6 +34,8 @@ parameters:
|
|||||||
type: comma_delimited_list
|
type: comma_delimited_list
|
||||||
ceilometer_api_node_ips:
|
ceilometer_api_node_ips:
|
||||||
type: comma_delimited_list
|
type: comma_delimited_list
|
||||||
|
aodh_api_node_ips:
|
||||||
|
type: comma_delimited_list
|
||||||
nova_api_node_ips:
|
nova_api_node_ips:
|
||||||
type: comma_delimited_list
|
type: comma_delimited_list
|
||||||
nova_metadata_node_ips:
|
nova_metadata_node_ips:
|
||||||
@ -187,6 +189,14 @@ resources:
|
|||||||
list_join:
|
list_join:
|
||||||
- "','"
|
- "','"
|
||||||
- {get_param: ceilometer_api_node_ips}
|
- {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:
|
nova_api_node_ips:
|
||||||
str_replace:
|
str_replace:
|
||||||
template: "['SERVERS_LIST']"
|
template: "['SERVERS_LIST']"
|
||||||
@ -272,6 +282,7 @@ resources:
|
|||||||
# NOTE(gfidente): interpolation with %{} in the
|
# NOTE(gfidente): interpolation with %{} in the
|
||||||
# hieradata file can't be used as it returns string
|
# hieradata file can't be used as it returns string
|
||||||
ceilometer::rabbit_hosts: *rabbit_nodes_array
|
ceilometer::rabbit_hosts: *rabbit_nodes_array
|
||||||
|
aodh::rabbit_hosts: *rabbit_nodes_array
|
||||||
cinder::rabbit_hosts: *rabbit_nodes_array
|
cinder::rabbit_hosts: *rabbit_nodes_array
|
||||||
glance::notify::rabbitmq::rabbit_hosts: *rabbit_nodes_array
|
glance::notify::rabbitmq::rabbit_hosts: *rabbit_nodes_array
|
||||||
heat::rabbit_hosts: *rabbit_nodes_array
|
heat::rabbit_hosts: *rabbit_nodes_array
|
||||||
|
@ -17,6 +17,14 @@ parameters:
|
|||||||
description: The keystone auth secret and db password.
|
description: The keystone auth secret and db password.
|
||||||
type: string
|
type: string
|
||||||
hidden: true
|
hidden: true
|
||||||
|
AodhApiVirtualIP:
|
||||||
|
type: string
|
||||||
|
default: ''
|
||||||
|
AodhPassword:
|
||||||
|
default: unset
|
||||||
|
description: The password for the aodh services.
|
||||||
|
type: string
|
||||||
|
hidden: true
|
||||||
CeilometerApiVirtualIP:
|
CeilometerApiVirtualIP:
|
||||||
type: string
|
type: string
|
||||||
default: ''
|
default: ''
|
||||||
@ -1164,6 +1172,7 @@ resources:
|
|||||||
ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
|
ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
|
||||||
ceilometer_password: {get_param: CeilometerPassword}
|
ceilometer_password: {get_param: CeilometerPassword}
|
||||||
ceilometer_store_events: {get_param: CeilometerStoreEvents}
|
ceilometer_store_events: {get_param: CeilometerStoreEvents}
|
||||||
|
aodh_password: {get_param: AodhPassword}
|
||||||
ceilometer_coordination_url:
|
ceilometer_coordination_url:
|
||||||
list_join:
|
list_join:
|
||||||
- ''
|
- ''
|
||||||
@ -1254,6 +1263,7 @@ resources:
|
|||||||
neutron_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
|
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]}]}
|
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]}]}
|
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_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]}]}
|
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]}]}
|
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_name: {get_input: snmpd_readonly_user_name}
|
||||||
snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
|
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
|
||||||
nova::rabbit_userid: {get_input: rabbit_username}
|
nova::rabbit_userid: {get_input: rabbit_username}
|
||||||
nova::rabbit_password: {get_input: rabbit_password}
|
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_region: 'regionOne'
|
||||||
ceilometer::agent::auth::auth_tenant_name: 'service'
|
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::api::admin_tenant_name: 'service'
|
||||||
nova::network::neutron::neutron_project_name: 'service'
|
nova::network::neutron::neutron_project_name: 'service'
|
||||||
nova::network::neutron::neutron_username: 'neutron'
|
nova::network::neutron::neutron_username: 'neutron'
|
||||||
|
@ -35,6 +35,7 @@ keystone::roles::admin::email: 'root@localhost'
|
|||||||
|
|
||||||
# service tenant
|
# service tenant
|
||||||
glance::api::keystone_tenant: 'service'
|
glance::api::keystone_tenant: 'service'
|
||||||
|
aodh::api::keystone_tenant: 'service'
|
||||||
glance::registry::keystone_tenant: 'service'
|
glance::registry::keystone_tenant: 'service'
|
||||||
neutron::server::auth_tenant: 'service'
|
neutron::server::auth_tenant: 'service'
|
||||||
neutron::agents::metadata::auth_tenant: 'service'
|
neutron::agents::metadata::auth_tenant: 'service'
|
||||||
@ -149,6 +150,7 @@ tripleo::loadbalancer::redis: true
|
|||||||
tripleo::loadbalancer::sahara: true
|
tripleo::loadbalancer::sahara: true
|
||||||
tripleo::loadbalancer::swift_proxy_server: true
|
tripleo::loadbalancer::swift_proxy_server: true
|
||||||
tripleo::loadbalancer::ceilometer: true
|
tripleo::loadbalancer::ceilometer: true
|
||||||
|
tripleo::loadbalancer::aodh: true
|
||||||
tripleo::loadbalancer::heat_api: true
|
tripleo::loadbalancer::heat_api: true
|
||||||
tripleo::loadbalancer::heat_cloudwatch: true
|
tripleo::loadbalancer::heat_cloudwatch: true
|
||||||
tripleo::loadbalancer::heat_cfn: true
|
tripleo::loadbalancer::heat_cfn: true
|
||||||
@ -261,3 +263,7 @@ tripleo::firewall::firewall_rules:
|
|||||||
'127 snmp':
|
'127 snmp':
|
||||||
port: 161
|
port: 161
|
||||||
proto: 'udp'
|
proto: 'udp'
|
||||||
|
'128 aodh':
|
||||||
|
port:
|
||||||
|
- 8042
|
||||||
|
- 13042
|
||||||
|
@ -123,6 +123,7 @@ if hiera('step') >= 2 {
|
|||||||
include ::sahara::db::mysql
|
include ::sahara::db::mysql
|
||||||
if downcase(hiera('ceilometer_backend')) == 'mysql' {
|
if downcase(hiera('ceilometer_backend')) == 'mysql' {
|
||||||
include ::ceilometer::db::mysql
|
include ::ceilometer::db::mysql
|
||||||
|
include ::aodh::db::mysql
|
||||||
}
|
}
|
||||||
|
|
||||||
$rabbit_nodes = hiera('rabbit_node_ips')
|
$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}" }
|
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
|
# Heat
|
||||||
class { '::heat' :
|
class { '::heat' :
|
||||||
notification_driver => 'messaging',
|
notification_driver => 'messaging',
|
||||||
|
@ -1131,6 +1131,32 @@ if hiera('step') >= 3 {
|
|||||||
neutron_options => $neutron_options,
|
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')
|
$snmpd_user = hiera('snmpd_readonly_user_name')
|
||||||
snmp::snmpv3_user { $snmpd_user:
|
snmp::snmpv3_user { $snmpd_user:
|
||||||
authtype => 'MD5',
|
authtype => 'MD5',
|
||||||
@ -1621,7 +1647,7 @@ if hiera('step') >= 4 {
|
|||||||
Pacemaker::Resource::Service[$::nova::params::conductor_service_name]],
|
Pacemaker::Resource::Service[$::nova::params::conductor_service_name]],
|
||||||
}
|
}
|
||||||
|
|
||||||
# Ceilometer
|
# Ceilometer and Aodh
|
||||||
case downcase(hiera('ceilometer_backend')) {
|
case downcase(hiera('ceilometer_backend')) {
|
||||||
/mysql/: {
|
/mysql/: {
|
||||||
pacemaker::resource::service { $::ceilometer::params::agent_central_service_name:
|
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
|
# Fedora doesn't know `require-all` parameter for constraints yet
|
||||||
if $::operatingsystem == 'Fedora' {
|
if $::operatingsystem == 'Fedora' {
|
||||||
$redis_ceilometer_constraint_params = undef
|
$redis_ceilometer_constraint_params = undef
|
||||||
|
$redis_aodh_constraint_params = undef
|
||||||
} else {
|
} else {
|
||||||
$redis_ceilometer_constraint_params = 'require-all=false'
|
$redis_ceilometer_constraint_params = 'require-all=false'
|
||||||
|
$redis_aodh_constraint_params = 'require-all=false'
|
||||||
}
|
}
|
||||||
pacemaker::constraint::base { 'redis-then-ceilometer-central-constraint':
|
pacemaker::constraint::base { 'redis-then-ceilometer-central-constraint':
|
||||||
constraint_type => 'order',
|
constraint_type => 'order',
|
||||||
@ -1667,6 +1695,16 @@ if hiera('step') >= 4 {
|
|||||||
require => [Pacemaker::Resource::Ocf['redis'],
|
require => [Pacemaker::Resource::Ocf['redis'],
|
||||||
Pacemaker::Resource::Service[$::ceilometer::params::agent_central_service_name]],
|
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':
|
pacemaker::constraint::base { 'keystone-then-ceilometer-central-constraint':
|
||||||
constraint_type => 'order',
|
constraint_type => 'order',
|
||||||
first_resource => 'openstack-core-clone',
|
first_resource => 'openstack-core-clone',
|
||||||
@ -1717,6 +1755,55 @@ if hiera('step') >= 4 {
|
|||||||
require => [Pacemaker::Resource::Service[$::ceilometer::params::api_service_name],
|
require => [Pacemaker::Resource::Service[$::ceilometer::params::api_service_name],
|
||||||
Pacemaker::Resource::Ocf['delay']],
|
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' {
|
if downcase(hiera('ceilometer_backend')) == 'mongodb' {
|
||||||
pacemaker::constraint::base { 'mongodb-then-ceilometer-central-constraint':
|
pacemaker::constraint::base { 'mongodb-then-ceilometer-central-constraint':
|
||||||
constraint_type => 'order',
|
constraint_type => 'order',
|
||||||
|
@ -26,6 +26,7 @@ resources:
|
|||||||
nova_api_vip: {get_input: nova_api_vip}
|
nova_api_vip: {get_input: nova_api_vip}
|
||||||
nova_metadata_vip: {get_input: nova_metadata_vip}
|
nova_metadata_vip: {get_input: nova_metadata_vip}
|
||||||
ceilometer_api_vip: {get_input: ceilometer_api_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}
|
heat_api_vip: {get_input: heat_api_vip}
|
||||||
horizon_vip: {get_input: horizon_vip}
|
horizon_vip: {get_input: horizon_vip}
|
||||||
redis_vip: {get_input: redis_vip}
|
redis_vip: {get_input: redis_vip}
|
||||||
|
Loading…
Reference in New Issue
Block a user