Deploy Gnocchi as a Ceilometer metrics storage backend
* Deploy Gnocchi API. * Storage backends: swift, rbd and file. * Indexer backend default to mysql * Configure Ceilometer to send metrics datas to Gnocchi * Pacemaker config Depends-On: Ic8778a3104e0ed0460423e4bf857682220dc5802 Depends-On: I7d2eb9405e0171fc54fa0b616122f69db5f51ce2 Co-Authored-By: Pradeep Kilambi <pkilambi@redhat.com> Change-Id: Ifde17b1ab8fa2b30544633e455e1c7eb475705aa
This commit is contained in:
parent
2d4c27dac5
commit
0970068cbb
@ -17,6 +17,9 @@ parameter_defaults:
|
||||
GlanceAdmin: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'}
|
||||
GlanceInternal: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'}
|
||||
GlancePublic: {protocol: 'https', port: '13292', host: 'CLOUDNAME'}
|
||||
GnocchiAdmin: {protocol: 'http', port: '8041', host: 'IP_ADDRESS'}
|
||||
GnocchiInternal: {protocol: 'http', port: '8041', host: 'IP_ADDRESS'}
|
||||
GnocchiPublic: {protocol: 'https', port: '13041', host: 'CLOUDNAME'}
|
||||
HeatAdmin: {protocol: 'http', port: '8004', host: 'IP_ADDRESS'}
|
||||
HeatInternal: {protocol: 'http', port: '8004', host: 'IP_ADDRESS'}
|
||||
HeatPublic: {protocol: 'https', port: '13004', host: 'CLOUDNAME'}
|
||||
|
@ -1,6 +1,6 @@
|
||||
# A Heat environment file which can be used to enable a Ceph
|
||||
# storage cluster using the controller and ceph nodes.
|
||||
# Rbd backends are enabled for Cinder, Glance, and Nova.
|
||||
# Rbd backends are enabled for Cinder, Glance, Gnocchi and Nova.
|
||||
parameters:
|
||||
#NOTE: These ID's and keys should be regenerated for
|
||||
# a production deployment. What is here is suitable for
|
||||
@ -11,5 +11,6 @@ parameters:
|
||||
NovaEnableRbdBackend: true
|
||||
CinderEnableRbdBackend: true
|
||||
GlanceBackend: rbd
|
||||
GnocchiBackend: rbd
|
||||
CinderEnableIscsiBackend: false
|
||||
ControllerEnableCephStorage: true
|
||||
|
@ -9,16 +9,18 @@ parameter_defaults:
|
||||
#CephClientKey: 'AQDLOh1VgEp6FRAAFzT7Zw+Y9V6JJExQAsRnRQ=='
|
||||
#CephExternalMonHost: '172.16.1.7, 172.16.1.8'
|
||||
|
||||
# the following parameters enable Ceph backends for Cinder, Glance, and Nova
|
||||
# the following parameters enable Ceph backends for Cinder, Glance, Gnocchi and Nova
|
||||
NovaEnableRbdBackend: true
|
||||
CinderEnableRbdBackend: true
|
||||
GlanceBackend: rbd
|
||||
GnocchiBackend: rbd
|
||||
# If the Ceph pools which host VMs, Volumes and Images do not match these
|
||||
# names OR the client keyring to use is not named 'openstack', edit the
|
||||
# following as needed.
|
||||
NovaRbdPoolName: vms
|
||||
CinderRbdPoolName: volumes
|
||||
GlanceRbdPoolName: images
|
||||
GnocchiRbdPoolName: metrics
|
||||
CephClientUserName: openstack
|
||||
|
||||
# finally we disable the Cinder LVM backend
|
||||
|
@ -15,6 +15,8 @@ parameter_defaults:
|
||||
NovaEnableRbdBackend: true
|
||||
## Glance backend can be either 'rbd' (Ceph), 'swift' or 'file'.
|
||||
GlanceBackend: rbd
|
||||
## Gnocchi backend can be either 'rbd' (Ceph), 'swift' or 'file'.
|
||||
GnocchiBackend: rbd
|
||||
|
||||
|
||||
#### CINDER NFS SETTINGS ####
|
||||
|
@ -19,6 +19,15 @@ Ceilometer:
|
||||
vip_param: CeilometerApi
|
||||
port: 8777
|
||||
|
||||
Gnocchi:
|
||||
Internal:
|
||||
vip_param: GnocchiApi
|
||||
Public:
|
||||
vip_param: Public
|
||||
Admin:
|
||||
vip_param: GnocchiApi
|
||||
port: 8041
|
||||
|
||||
Cinder:
|
||||
Internal:
|
||||
vip_param: CinderApi
|
||||
|
@ -12,6 +12,7 @@ parameters:
|
||||
CeilometerApiVirtualIP: {type: string, default: ''}
|
||||
CinderApiVirtualIP: {type: string, default: ''}
|
||||
GlanceApiVirtualIP: {type: string, default: ''}
|
||||
GnocchiApiVirtualIP: {type: string, default: ''}
|
||||
HeatApiVirtualIP: {type: string, default: ''}
|
||||
KeystoneAdminApiVirtualIP: {type: string, default: ''}
|
||||
KeystonePublicApiVirtualIP: {type: string, default: ''}
|
||||
@ -36,6 +37,9 @@ parameters:
|
||||
GlanceAdmin: {protocol: http, port: '9292', host: IP_ADDRESS}
|
||||
GlanceInternal: {protocol: http, port: '9292', host: IP_ADDRESS}
|
||||
GlancePublic: {protocol: http, port: '9292', host: IP_ADDRESS}
|
||||
GnocchiAdmin: {protocol: http, port: '8041', host: IP_ADDRESS}
|
||||
GnocchiInternal: {protocol: http, port: '8041', host: IP_ADDRESS}
|
||||
GnocchiPublic: {protocol: http, port: '8041', host: IP_ADDRESS}
|
||||
HeatAdmin: {protocol: http, port: '8004', host: IP_ADDRESS}
|
||||
HeatInternal: {protocol: http, port: '8004', host: IP_ADDRESS}
|
||||
HeatPublic: {protocol: http, port: '8004', host: IP_ADDRESS}
|
||||
@ -644,6 +648,120 @@ outputs:
|
||||
IP_ADDRESS: {get_param: PublicVirtualIP}
|
||||
- ':'
|
||||
- get_param: [EndpointMap, GlancePublic, port]
|
||||
GnocchiAdmin:
|
||||
host:
|
||||
str_replace:
|
||||
template:
|
||||
get_param: [EndpointMap, GnocchiAdmin, host]
|
||||
params:
|
||||
CLOUDNAME: {get_param: CloudName}
|
||||
IP_ADDRESS: {get_param: GnocchiApiVirtualIP}
|
||||
port:
|
||||
get_param: [EndpointMap, GnocchiAdmin, port]
|
||||
protocol:
|
||||
get_param: [EndpointMap, GnocchiAdmin, protocol]
|
||||
uri:
|
||||
list_join:
|
||||
- ''
|
||||
- - get_param: [EndpointMap, GnocchiAdmin, protocol]
|
||||
- ://
|
||||
- str_replace:
|
||||
template:
|
||||
get_param: [EndpointMap, GnocchiAdmin, host]
|
||||
params:
|
||||
CLOUDNAME: {get_param: CloudName}
|
||||
IP_ADDRESS: {get_param: GnocchiApiVirtualIP}
|
||||
- ':'
|
||||
- get_param: [EndpointMap, GnocchiAdmin, port]
|
||||
uri_no_suffix:
|
||||
list_join:
|
||||
- ''
|
||||
- - get_param: [EndpointMap, GnocchiAdmin, protocol]
|
||||
- ://
|
||||
- str_replace:
|
||||
template:
|
||||
get_param: [EndpointMap, GnocchiAdmin, host]
|
||||
params:
|
||||
CLOUDNAME: {get_param: CloudName}
|
||||
IP_ADDRESS: {get_param: GnocchiApiVirtualIP}
|
||||
- ':'
|
||||
- get_param: [EndpointMap, GnocchiAdmin, port]
|
||||
GnocchiInternal:
|
||||
host:
|
||||
str_replace:
|
||||
template:
|
||||
get_param: [EndpointMap, GnocchiInternal, host]
|
||||
params:
|
||||
CLOUDNAME: {get_param: CloudName}
|
||||
IP_ADDRESS: {get_param: GnocchiApiVirtualIP}
|
||||
port:
|
||||
get_param: [EndpointMap, GnocchiInternal, port]
|
||||
protocol:
|
||||
get_param: [EndpointMap, GnocchiInternal, protocol]
|
||||
uri:
|
||||
list_join:
|
||||
- ''
|
||||
- - get_param: [EndpointMap, GnocchiInternal, protocol]
|
||||
- ://
|
||||
- str_replace:
|
||||
template:
|
||||
get_param: [EndpointMap, GnocchiInternal, host]
|
||||
params:
|
||||
CLOUDNAME: {get_param: CloudName}
|
||||
IP_ADDRESS: {get_param: GnocchiApiVirtualIP}
|
||||
- ':'
|
||||
- get_param: [EndpointMap, GnocchiInternal, port]
|
||||
uri_no_suffix:
|
||||
list_join:
|
||||
- ''
|
||||
- - get_param: [EndpointMap, GnocchiInternal, protocol]
|
||||
- ://
|
||||
- str_replace:
|
||||
template:
|
||||
get_param: [EndpointMap, GnocchiInternal, host]
|
||||
params:
|
||||
CLOUDNAME: {get_param: CloudName}
|
||||
IP_ADDRESS: {get_param: GnocchiApiVirtualIP}
|
||||
- ':'
|
||||
- get_param: [EndpointMap, GnocchiInternal, port]
|
||||
GnocchiPublic:
|
||||
host:
|
||||
str_replace:
|
||||
template:
|
||||
get_param: [EndpointMap, GnocchiPublic, host]
|
||||
params:
|
||||
CLOUDNAME: {get_param: CloudName}
|
||||
IP_ADDRESS: {get_param: PublicVirtualIP}
|
||||
port:
|
||||
get_param: [EndpointMap, GnocchiPublic, port]
|
||||
protocol:
|
||||
get_param: [EndpointMap, GnocchiPublic, protocol]
|
||||
uri:
|
||||
list_join:
|
||||
- ''
|
||||
- - get_param: [EndpointMap, GnocchiPublic, protocol]
|
||||
- ://
|
||||
- str_replace:
|
||||
template:
|
||||
get_param: [EndpointMap, GnocchiPublic, host]
|
||||
params:
|
||||
CLOUDNAME: {get_param: CloudName}
|
||||
IP_ADDRESS: {get_param: PublicVirtualIP}
|
||||
- ':'
|
||||
- get_param: [EndpointMap, GnocchiPublic, port]
|
||||
uri_no_suffix:
|
||||
list_join:
|
||||
- ''
|
||||
- - get_param: [EndpointMap, GnocchiPublic, protocol]
|
||||
- ://
|
||||
- str_replace:
|
||||
template:
|
||||
get_param: [EndpointMap, GnocchiPublic, host]
|
||||
params:
|
||||
CLOUDNAME: {get_param: CloudName}
|
||||
IP_ADDRESS: {get_param: PublicVirtualIP}
|
||||
- ':'
|
||||
- get_param: [EndpointMap, GnocchiPublic, port]
|
||||
HeatAdmin:
|
||||
host:
|
||||
str_replace:
|
||||
|
@ -32,6 +32,12 @@ parameters:
|
||||
description: The password for the ceilometer service account.
|
||||
type: string
|
||||
hidden: true
|
||||
CeilometerMeterDispatcher:
|
||||
default: 'database'
|
||||
description: Dispatcher to process meter data
|
||||
type: string
|
||||
constraints:
|
||||
- allowed_values: ['gnocchi', 'database']
|
||||
# This has to be an UUID so for now we generate it outside the template
|
||||
CephClusterFSID:
|
||||
default: ''
|
||||
@ -483,6 +489,21 @@ parameters:
|
||||
type: string
|
||||
constraints:
|
||||
- allowed_values: ['swift', 'file', 'rbd']
|
||||
GnocchiBackend:
|
||||
default: file
|
||||
description: The short name of the Gnocchi backend to use. Should be one
|
||||
of swift, rbd or file
|
||||
type: string
|
||||
constraints:
|
||||
- allowed_values: ['swift', 'file', 'rbd']
|
||||
GnocchiIndexerBackend:
|
||||
default: 'mysql'
|
||||
description: The short name of the Gnocchi indexer backend to use.
|
||||
type: string
|
||||
GnocchiPassword:
|
||||
description: The password for the gnocchi service account.
|
||||
type: string
|
||||
hidden: true
|
||||
HeatPassword:
|
||||
description: The password for the Heat service account, used by the Heat services.
|
||||
type: string
|
||||
@ -644,6 +665,7 @@ parameters:
|
||||
NeutronTenantNetwork: tenant
|
||||
CeilometerApiNetwork: internal_api
|
||||
AodhApiNetwork: internal_api
|
||||
GnocchiApiNetwork: internal_api
|
||||
MongoDbNetwork: internal_api
|
||||
CinderApiNetwork: internal_api
|
||||
CinderIscsiNetwork: storage
|
||||
@ -854,6 +876,7 @@ resources:
|
||||
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]}]}
|
||||
GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
|
||||
HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
|
||||
KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
|
||||
KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
|
||||
@ -885,6 +908,7 @@ resources:
|
||||
CeilometerBackend: {get_param: CeilometerBackend}
|
||||
CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
|
||||
CeilometerPassword: {get_param: CeilometerPassword}
|
||||
CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
|
||||
CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
|
||||
CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
|
||||
CinderNfsServers: {get_param: CinderNfsServers}
|
||||
@ -911,6 +935,9 @@ resources:
|
||||
GlanceBackend: {get_param: GlanceBackend}
|
||||
GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
|
||||
GlanceLogFile: {get_param: GlanceLogFile}
|
||||
GnocchiPassword: {get_param: GnocchiPassword}
|
||||
GnocchiBackend: {get_param: GnocchiBackend}
|
||||
GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
|
||||
HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
|
||||
HeatPassword: {get_param: HeatPassword}
|
||||
HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
|
||||
@ -991,6 +1018,7 @@ resources:
|
||||
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]}]}
|
||||
GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
|
||||
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]}]}
|
||||
@ -1229,6 +1257,7 @@ resources:
|
||||
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]}]}
|
||||
gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
|
||||
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]}]}
|
||||
@ -1350,6 +1379,7 @@ resources:
|
||||
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]}]}
|
||||
gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
|
||||
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]}
|
||||
@ -1645,6 +1675,9 @@ outputs:
|
||||
GlanceInternalVip:
|
||||
description: VIP for Glance API internal endpoint
|
||||
value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
|
||||
GnocchiInternalVip:
|
||||
description: VIP for Gnocchi API internal endpoint
|
||||
value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
|
||||
HeatInternalVip:
|
||||
description: VIP for Heat API internal endpoint
|
||||
value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
|
||||
|
@ -44,6 +44,8 @@ parameters:
|
||||
type: comma_delimited_list
|
||||
glance_registry_node_ips:
|
||||
type: comma_delimited_list
|
||||
gnocchi_api_node_ips:
|
||||
type: comma_delimited_list
|
||||
cinder_api_node_ips:
|
||||
type: comma_delimited_list
|
||||
neutron_api_node_ips:
|
||||
@ -197,6 +199,14 @@ resources:
|
||||
list_join:
|
||||
- "','"
|
||||
- {get_param: aodh_api_node_ips}
|
||||
gnocchi_api_node_ips:
|
||||
str_replace:
|
||||
template: "['SERVERS_LIST']"
|
||||
params:
|
||||
SERVERS_LIST:
|
||||
list_join:
|
||||
- "','"
|
||||
- {get_param: gnocchi_api_node_ips}
|
||||
nova_api_node_ips:
|
||||
str_replace:
|
||||
template: "['SERVERS_LIST']"
|
||||
|
@ -36,6 +36,9 @@ parameters:
|
||||
GlanceRbdPoolName:
|
||||
default: images
|
||||
type: string
|
||||
GnocchiRbdPoolName:
|
||||
default: metrics
|
||||
type: string
|
||||
CephClientUserName:
|
||||
default: openstack
|
||||
type: string
|
||||
@ -94,7 +97,7 @@ resources:
|
||||
secret: 'ADMIN_KEY',
|
||||
mode: '0644',
|
||||
cap_mon: 'allow r',
|
||||
cap_osd: 'allow class-read object_prefix rbd_children, allow rwx pool=CINDER_POOL, allow rwx pool=NOVA_POOL, allow rwx pool=GLANCE_POOL'
|
||||
cap_osd: 'allow class-read object_prefix rbd_children, allow rwx pool=CINDER_POOL, allow rwx pool=NOVA_POOL, allow rwx pool=GLANCE_POOL, allow rwx pool=GNOCCHI_POOL'
|
||||
}
|
||||
}"
|
||||
params:
|
||||
@ -103,9 +106,12 @@ resources:
|
||||
NOVA_POOL: {get_param: NovaRbdPoolName}
|
||||
CINDER_POOL: {get_param: CinderRbdPoolName}
|
||||
GLANCE_POOL: {get_param: GlanceRbdPoolName}
|
||||
GNOCCHI_POOL: {get_param: GnocchiRbdPoolName}
|
||||
nova::compute::rbd::libvirt_images_rbd_pool: {get_param: NovaRbdPoolName}
|
||||
cinder_rbd_pool_name: {get_param: CinderRbdPoolName}
|
||||
glance::backend::rbd::rbd_store_pool: {get_param: GlanceRbdPoolName}
|
||||
gnocchi::storage::ceph::ceph_pool: {get_param: GnocchiRbdPoolName}
|
||||
gnocchi::storage::ceph::ceph_username: {get_param: CephClientUserName}
|
||||
nova::compute::rbd::libvirt_rbd_user: {get_param: CephClientUserName}
|
||||
glance::backend::rbd::rbd_store_user: {get_param: CephClientUserName}
|
||||
nova::compute::rbd::rbd_keyring:
|
||||
@ -113,11 +119,17 @@ resources:
|
||||
- '.'
|
||||
- - 'client'
|
||||
- {get_param: CephClientUserName}
|
||||
gnocchi::storage::ceph::ceph_keyring:
|
||||
list_join:
|
||||
- '.'
|
||||
- - 'client'
|
||||
- {get_param: CephClientUserName}
|
||||
ceph_client_user_name: {get_param: CephClientUserName}
|
||||
ceph_pools:
|
||||
- {get_param: CinderRbdPoolName}
|
||||
- {get_param: NovaRbdPoolName}
|
||||
- {get_param: GlanceRbdPoolName}
|
||||
- {get_param: GnocchiRbdPoolName}
|
||||
|
||||
outputs:
|
||||
config_id:
|
||||
|
@ -34,6 +34,12 @@ parameters:
|
||||
default: false
|
||||
description: Whether to store events in ceilometer.
|
||||
type: boolean
|
||||
CeilometerMeterDispatcher:
|
||||
default: 'database'
|
||||
description: Dispatcher to process meter data
|
||||
type: string
|
||||
constraints:
|
||||
- allowed_values: ['gnocchi', 'database']
|
||||
CinderApiVirtualIP:
|
||||
type: string
|
||||
default: ''
|
||||
@ -223,6 +229,24 @@ parameters:
|
||||
Mount options for Pacemaker mount used as Glance storage.
|
||||
Effective when GlanceFilePcmkManage is true.
|
||||
type: string
|
||||
GnocchiBackend:
|
||||
default: file
|
||||
description: The short name of the Gnocchi backend to use. Should be one
|
||||
of swift, rbd, or file
|
||||
type: string
|
||||
constraints:
|
||||
- allowed_values: ['swift', 'file', 'rbd']
|
||||
GnocchiIndexerBackend:
|
||||
default: 'mysql'
|
||||
description: The short name of the Gnocchi indexer backend to use.
|
||||
type: string
|
||||
GnocchiApiVirtualIP:
|
||||
type: string
|
||||
default: ''
|
||||
GnocchiPassword:
|
||||
description: The password for the gnocchi service and db account.
|
||||
type: string
|
||||
hidden: true
|
||||
HAProxyStatsPassword:
|
||||
description: Password for HAProxy stats endpoint
|
||||
type: string
|
||||
@ -1098,6 +1122,10 @@ resources:
|
||||
ceilometer_password: {get_param: CeilometerPassword}
|
||||
ceilometer_store_events: {get_param: CeilometerStoreEvents}
|
||||
aodh_password: {get_param: AodhPassword}
|
||||
ceilometer_meter_dispatcher: {get_param: CeilometerMeterDispatcher}
|
||||
gnocchi_password: {get_param: GnocchiPassword}
|
||||
gnocchi_backend: {get_param: GnocchiBackend}
|
||||
gnocchi_indexer_backend: {get_param: GnocchiIndexerBackend}
|
||||
ceilometer_coordination_url:
|
||||
list_join:
|
||||
- ''
|
||||
@ -1114,6 +1142,15 @@ resources:
|
||||
- '@'
|
||||
- {get_param: MysqlVirtualIPUri}
|
||||
- '/ceilometer'
|
||||
gnocchi_dsn:
|
||||
list_join:
|
||||
- ''
|
||||
- - 'mysql+pymysql://gnocchi:'
|
||||
- {get_param: GnocchiPassword}
|
||||
- '@'
|
||||
- {get_param: MysqlVirtualIPUri}
|
||||
- '/gnocchi'
|
||||
gnocchi_internal_url: {get_param: [EndpointMap, GnocchiInternal, uri]}
|
||||
snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
|
||||
snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
|
||||
nova_enable_db_purge: {get_param: NovaEnableDBPurge}
|
||||
@ -1193,6 +1230,7 @@ resources:
|
||||
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]}]}
|
||||
gnocchi_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
|
||||
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]}]}
|
||||
@ -1471,6 +1509,11 @@ resources:
|
||||
ceilometer::agent::central::coordination_url: {get_input: ceilometer_coordination_url}
|
||||
ceilometer::agent::notification::store_events: {get_input: ceilometer_store_events}
|
||||
ceilometer::db::mysql::password: {get_input: ceilometer_password}
|
||||
ceilometer::collector::meter_dispatcher: {get_input: ceilometer_meter_dispatcher}
|
||||
ceilometer::dispatcher::gnocchi::url: {get_input: gnocchi_internal_url }
|
||||
ceilometer::dispatcher::gnocchi::filter_project: 'service'
|
||||
ceilometer::dispatcher::gnocchi::archive_policy: 'low'
|
||||
ceilometer::dispatcher::gnocchi::resources_definition_file: 'gnocchi_resources.yaml'
|
||||
snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
|
||||
snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
|
||||
|
||||
@ -1492,6 +1535,22 @@ resources:
|
||||
# for a migration path from ceilometer-alarm to aodh, we use the same database & coordination
|
||||
aodh::evaluator::coordination_url: {get_input: ceilometer_coordination_url}
|
||||
|
||||
# Gnocchi
|
||||
gnocchi_backend: {get_input: gnocchi_backend}
|
||||
gnocchi_indexer_backend: {get_input: gnocchi_indexer_backend}
|
||||
gnocchi_mysql_conn_string: {get_input: gnocchi_dsn}
|
||||
gnocchi::debug: {get_input: debug}
|
||||
gnocchi::wsgi::apache::ssl: false
|
||||
gnocchi::wsgi::apache::bind_host: {get_input: gnocchi_api_network}
|
||||
gnocchi::api::service_name: 'httpd'
|
||||
gnocchi::api::host: {get_input: gnocchi_api_network}
|
||||
gnocchi::api::keystone_password: {get_input: gnocchi_password}
|
||||
gnocchi::api::keystone_auth_uri: {get_input: keystone_auth_uri}
|
||||
gnocchi::api::keystone_identity_uri: {get_input: keystone_identity_uri}
|
||||
gnocchi::db::mysql::password: {get_input: gnocchi_password}
|
||||
gnocchi::storage::swift::swift_authurl: {get_input: keystone_auth_uri}
|
||||
gnocchi::storage::swift::swift_key: {get_input: gnocchi_password}
|
||||
|
||||
# Nova
|
||||
nova::rabbit_userid: {get_input: rabbit_username}
|
||||
nova::rabbit_password: {get_input: rabbit_password}
|
||||
|
@ -38,6 +38,9 @@ parameters:
|
||||
GlanceRbdPoolName:
|
||||
default: images
|
||||
type: string
|
||||
GnocchiRbdPoolName:
|
||||
default: metrics
|
||||
type: string
|
||||
CephClientUserName:
|
||||
default: openstack
|
||||
type: string
|
||||
@ -68,7 +71,7 @@ resources:
|
||||
secret: 'CLIENT_KEY',
|
||||
mode: '0644',
|
||||
cap_mon: 'allow r',
|
||||
cap_osd: 'allow class-read object_prefix rbd_children, allow rwx pool=CINDER_POOL, allow rwx pool=NOVA_POOL, allow rwx pool=GLANCE_POOL'
|
||||
cap_osd: 'allow class-read object_prefix rbd_children, allow rwx pool=CINDER_POOL, allow rwx pool=NOVA_POOL, allow rwx pool=GLANCE_POOL, allow rwx pool=GNOCCHI_POOL'
|
||||
}
|
||||
}"
|
||||
params:
|
||||
@ -77,10 +80,13 @@ resources:
|
||||
NOVA_POOL: {get_param: NovaRbdPoolName}
|
||||
CINDER_POOL: {get_param: CinderRbdPoolName}
|
||||
GLANCE_POOL: {get_param: GlanceRbdPoolName}
|
||||
GNOCCHI_POOL: {get_param: GnocchiRbdPoolName}
|
||||
ceph::profile::params::ms_bind_ipv6: {get_param: CephIPv6}
|
||||
nova::compute::rbd::libvirt_images_rbd_pool: {get_param: NovaRbdPoolName}
|
||||
cinder_rbd_pool_name: {get_param: CinderRbdPoolName}
|
||||
glance::backend::rbd::rbd_store_pool: {get_param: GlanceRbdPoolName}
|
||||
gnocchi::storage::ceph::ceph_pool: {get_param: GnocchiRbdPoolName}
|
||||
gnocchi::storage::ceph::ceph_username: {get_param: CephClientUserName}
|
||||
nova::compute::rbd::libvirt_rbd_user: {get_param: CephClientUserName}
|
||||
glance::backend::rbd::rbd_store_user: {get_param: CephClientUserName}
|
||||
nova::compute::rbd::rbd_keyring:
|
||||
@ -88,11 +94,17 @@ resources:
|
||||
- '.'
|
||||
- - 'client'
|
||||
- {get_param: CephClientUserName}
|
||||
gnocchi::storage::ceph::ceph_keyring:
|
||||
list_join:
|
||||
- '.'
|
||||
- - 'client'
|
||||
- {get_param: CephClientUserName}
|
||||
ceph_client_user_name: {get_param: CephClientUserName}
|
||||
ceph_pools:
|
||||
- {get_param: CinderRbdPoolName}
|
||||
- {get_param: NovaRbdPoolName}
|
||||
- {get_param: GlanceRbdPoolName}
|
||||
- {get_param: GnocchiRbdPoolName}
|
||||
|
||||
outputs:
|
||||
config_id:
|
||||
|
@ -8,6 +8,9 @@ ceilometer::agent::auth::auth_tenant_name: 'service'
|
||||
aodh::auth::auth_region: 'regionOne'
|
||||
aodh::auth::auth_tenant_name: 'service'
|
||||
|
||||
gnocchi::auth::auth_region: 'regionOne'
|
||||
gnocchi::auth::auth_tenant_name: 'service'
|
||||
|
||||
nova::api::admin_tenant_name: 'service'
|
||||
nova::network::neutron::neutron_project_name: 'service'
|
||||
nova::network::neutron::neutron_username: 'neutron'
|
||||
|
@ -6,6 +6,16 @@ nova::consoleauth::enabled: true
|
||||
nova::vncproxy::enabled: true
|
||||
nova::scheduler::enabled: true
|
||||
|
||||
# gnocchi
|
||||
gnocchi::db::sync::extra_opts: '--skip-storage'
|
||||
gnocchi::storage::swift::swift_user: 'service:gnocchi'
|
||||
gnocchi::storage::swift::swift_auth_version: 2
|
||||
gnocchi::statsd::resource_id: '0a8b55df-f90f-491c-8cb9-7cdecec6fc26'
|
||||
gnocchi::statsd::user_id: '27c0d3f8-e7ee-42f0-8317-72237d1c5ae3'
|
||||
gnocchi::statsd::project_id: '6c38cd8d-099a-4cb2-aecf-17be688e8616'
|
||||
gnocchi::statsd::flush_delay: 10
|
||||
gnocchi::statsd::archive_policy_name: 'low'
|
||||
|
||||
# rabbitmq
|
||||
rabbitmq::delete_guest_user: false
|
||||
rabbitmq::wipe_db_on_cookie_change: true
|
||||
@ -44,6 +54,7 @@ neutron::agents::dhcp::dhcp_delete_namespaces: True
|
||||
cinder::api::keystone_tenant: 'service'
|
||||
swift::proxy::authtoken::admin_tenant_name: 'service'
|
||||
ceilometer::api::keystone_tenant: 'service'
|
||||
gnocchi::api::keystone_tenant: 'service'
|
||||
heat::keystone_tenant: 'service'
|
||||
sahara::admin_tenant_name: 'service'
|
||||
|
||||
@ -151,6 +162,7 @@ tripleo::loadbalancer::sahara: true
|
||||
tripleo::loadbalancer::swift_proxy_server: true
|
||||
tripleo::loadbalancer::ceilometer: true
|
||||
tripleo::loadbalancer::aodh: true
|
||||
tripleo::loadbalancer::gnocchi: true
|
||||
tripleo::loadbalancer::heat_api: true
|
||||
tripleo::loadbalancer::heat_cloudwatch: true
|
||||
tripleo::loadbalancer::heat_cfn: true
|
||||
@ -267,3 +279,7 @@ tripleo::firewall::firewall_rules:
|
||||
port:
|
||||
- 8042
|
||||
- 13042
|
||||
'129 gnocchi-api':
|
||||
port:
|
||||
- 8041
|
||||
- 13041
|
||||
|
@ -61,6 +61,14 @@ ceilometer::db::mysql::allowed_hosts:
|
||||
- '%'
|
||||
- "%{hiera('mysql_bind_host')}"
|
||||
|
||||
# Gnocchi
|
||||
gnocchi::db::mysql::user: gnocchi
|
||||
gnocchi::db::mysql::host: "%{hiera('mysql_virtual_ip')}"
|
||||
gnocchi::db::mysql::dbname: gnocchi
|
||||
gnocchi::db::mysql::allowed_hosts:
|
||||
- '%'
|
||||
- "%{hiera('mysql_bind_host')}"
|
||||
|
||||
sahara::db::mysql::user: sahara
|
||||
sahara::db::mysql::host: "%{hiera('mysql_virtual_ip')}"
|
||||
sahara::db::mysql::dbname: sahara
|
||||
|
@ -121,6 +121,9 @@ if hiera('step') >= 2 {
|
||||
include ::cinder::db::mysql
|
||||
include ::heat::db::mysql
|
||||
include ::sahara::db::mysql
|
||||
if downcase(hiera('gnocchi_indexer_backend')) == 'mysql' {
|
||||
include ::gnocchi::db::mysql
|
||||
}
|
||||
if downcase(hiera('ceilometer_backend')) == 'mysql' {
|
||||
include ::ceilometer::db::mysql
|
||||
include ::aodh::db::mysql
|
||||
@ -577,6 +580,7 @@ if hiera('step') >= 4 {
|
||||
include ::ceilometer::expirer
|
||||
include ::ceilometer::collector
|
||||
include ::ceilometer::agent::auth
|
||||
include ::ceilometer::dispatcher::gnocchi
|
||||
class { '::ceilometer::db' :
|
||||
database_connection => $ceilometer_database_connection,
|
||||
}
|
||||
@ -633,6 +637,26 @@ if hiera('step') >= 4 {
|
||||
neutron_options => $neutron_options,
|
||||
}
|
||||
|
||||
# Gnocchi
|
||||
$gnocchi_database_connection = hiera('gnocchi_mysql_conn_string')
|
||||
class { '::gnocchi':
|
||||
database_connection => $gnocchi_database_connection,
|
||||
}
|
||||
include ::gnocchi::api
|
||||
include ::gnocchi::wsgi::apache
|
||||
include ::gnocchi::client
|
||||
include ::gnocchi::db::sync
|
||||
include ::gnocchi::storage
|
||||
include ::gnocchi::metricd
|
||||
include ::gnocchi::statsd
|
||||
$gnocchi_backend = downcase(hiera('gnocchi_backend', 'swift'))
|
||||
case $gnocchi_backend {
|
||||
'swift': { include ::gnocchi::storage::swift }
|
||||
'file': { include ::gnocchi::storage::file }
|
||||
'rbd': { include ::gnocchi::storage::ceph }
|
||||
default: { fail('Unrecognized gnocchi_backend parameter.') }
|
||||
}
|
||||
|
||||
$snmpd_user = hiera('snmpd_readonly_user_name')
|
||||
snmp::snmpv3_user { $snmpd_user:
|
||||
authtype => 'MD5',
|
||||
|
@ -24,6 +24,7 @@ Service <|
|
||||
tag == 'cinder-service' or
|
||||
tag == 'ceilometer-service' or
|
||||
tag == 'glance-service' or
|
||||
tag == 'gnocchi-service' or
|
||||
tag == 'heat-service' or
|
||||
tag == 'keystone-service' or
|
||||
tag == 'neutron-service' or
|
||||
@ -543,6 +544,11 @@ MYSQL_HOST=localhost\n",
|
||||
}
|
||||
}
|
||||
|
||||
if downcase(hiera('gnocchi_indexer_backend')) == 'mysql' {
|
||||
class { '::gnocchi::db::mysql':
|
||||
require => Exec['galera-ready'],
|
||||
}
|
||||
}
|
||||
class { '::sahara::db::mysql':
|
||||
require => Exec['galera-ready'],
|
||||
}
|
||||
@ -1057,6 +1063,7 @@ if hiera('step') >= 4 {
|
||||
sync_db => $sync_db,
|
||||
}
|
||||
include ::ceilometer::agent::auth
|
||||
include ::ceilometer::dispatcher::gnocchi
|
||||
|
||||
Cron <| title == 'ceilometer-expirer' |> { command => "sleep $((\$(od -A n -t d -N 3 /dev/urandom) % 86400)) && ${::ceilometer::params::expirer_command}" }
|
||||
|
||||
@ -1135,6 +1142,40 @@ if hiera('step') >= 4 {
|
||||
enabled => false,
|
||||
}
|
||||
|
||||
# Gnocchi
|
||||
$gnocchi_database_connection = hiera('gnocchi_mysql_conn_string')
|
||||
include ::gnocchi::client
|
||||
if $sync_db {
|
||||
include ::gnocchi::db::sync
|
||||
}
|
||||
include ::gnocchi::storage
|
||||
$gnocchi_backend = downcase(hiera('gnocchi_backend', 'swift'))
|
||||
case $gnocchi_backend {
|
||||
'swift': { include ::gnocchi::storage::swift }
|
||||
'file': { include ::gnocchi::storage::file }
|
||||
'rbd': { include ::gnocchi::storage::ceph }
|
||||
default: { fail('Unrecognized gnocchi_backend parameter.') }
|
||||
}
|
||||
class { '::gnocchi':
|
||||
database_connection => $gnocchi_database_connection,
|
||||
}
|
||||
class { '::gnocchi::api' :
|
||||
manage_service => false,
|
||||
enabled => false,
|
||||
service_name => 'httpd',
|
||||
}
|
||||
class { '::gnocchi::wsgi::apache' :
|
||||
ssl => false,
|
||||
}
|
||||
class { '::gnocchi::metricd' :
|
||||
manage_service => false,
|
||||
enabled => false,
|
||||
}
|
||||
class { '::gnocchi::statsd' :
|
||||
manage_service => false,
|
||||
enabled => false,
|
||||
}
|
||||
|
||||
$snmpd_user = hiera('snmpd_readonly_user_name')
|
||||
snmp::snmpv3_user { $snmpd_user:
|
||||
authtype => 'MD5',
|
||||
@ -1781,6 +1822,30 @@ if hiera('step') >= 5 {
|
||||
}
|
||||
}
|
||||
|
||||
# gnocchi
|
||||
pacemaker::resource::service { $::gnocchi::params::metricd_service_name :
|
||||
clone_params => 'interleave=true',
|
||||
}
|
||||
pacemaker::resource::service { $::gnocchi::params::statsd_service_name :
|
||||
clone_params => 'interleave=true',
|
||||
}
|
||||
pacemaker::constraint::base { 'gnocchi-metricd-then-gnocchi-statsd-constraint':
|
||||
constraint_type => 'order',
|
||||
first_resource => "${::gnocchi::params::metricd_service_name}-clone",
|
||||
second_resource => "${::gnocchi::params::statsd_service_name}-clone",
|
||||
first_action => 'start',
|
||||
second_action => 'start',
|
||||
require => [Pacemaker::Resource::Service[$::gnocchi::params::metricd_service_name],
|
||||
Pacemaker::Resource::Service[$::gnocchi::params::statsd_service_name]],
|
||||
}
|
||||
pacemaker::constraint::colocation { 'gnocchi-statsd-with-metricd-colocation':
|
||||
source => "${::gnocchi::params::statsd_service_name}-clone",
|
||||
target => "${::gnocchi::params::metricd_service_name}-clone",
|
||||
score => 'INFINITY',
|
||||
require => [Pacemaker::Resource::Service[$::gnocchi::params::metricd_service_name],
|
||||
Pacemaker::Resource::Service[$::gnocchi::params::statsd_service_name]],
|
||||
}
|
||||
|
||||
# Heat
|
||||
pacemaker::resource::service { $::heat::params::api_service_name :
|
||||
clone_params => 'interleave=true',
|
||||
|
@ -27,6 +27,7 @@ resources:
|
||||
nova_metadata_vip: {get_input: nova_metadata_vip}
|
||||
ceilometer_api_vip: {get_input: ceilometer_api_vip}
|
||||
aodh_api_vip: {get_input: aodh_api_vip}
|
||||
gnocchi_api_vip: {get_input: gnocchi_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