OS::TripleO::Services::CeilometerCollector: ../puppet/services/pacemaker/ceilometer-collector.yaml
OS::TripleO::Services::CeilometerAgentCentral: ../puppet/services/pacemaker/ceilometer-agent-central.yaml
OS::TripleO::Services::CeilometerAgentNotification: ../puppet/services/pacemaker/ceilometer-agent-notification.yaml
+ #Gnocchi services
+ OS::TripleO::Services::GnocchiApi: ../puppet/services/pacemaker/gnocchi-api.yaml
+ OS::TripleO::Services::GnocchiMetricd: ../puppet/services/pacemaker/gnocchi-metricd.yaml
+ OS::TripleO::Services::GnocchiStatsd: ../puppet/services/pacemaker/gnocchi-statsd.yaml
OS::TripleO::Services::CeilometerAgentCentral: puppet/services/ceilometer-agent-central.yaml
OS::TripleO::Services::CeilometerAgentNotification: puppet/services/ceilometer-agent-notification.yaml
OS::TripleO::Services::Horizon: puppet/services/horizon.yaml
+ #Gnocchi services
+ OS::TripleO::Services::GnocchiApi: puppet/services/gnocchi-api.yaml
+ OS::TripleO::Services::GnocchiMetricd: puppet/services/gnocchi-metricd.yaml
+ OS::TripleO::Services::GnocchiStatsd: puppet/services/gnocchi-statsd.yaml
parameter_defaults:
EnablePackageInstall: false
]
}
type: json
- 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
InstanceNameTemplate:
- OS::TripleO::Services::CeilometerAgentCentral
- OS::TripleO::Services::CeilometerAgentNotification
- OS::TripleO::Services::Horizon
+ - OS::TripleO::Services::GnocchiApi
+ - OS::TripleO::Services::GnocchiMetricd
+ - OS::TripleO::Services::GnocchiStatsd
description: A list of service resources (configured in the Heat
resource_registry) which represent nested stacks
ExtraConfig: {get_param: ExtraConfig}
FencingConfig: {get_param: FencingConfig}
Flavor: {get_param: OvercloudControlFlavor}
- GnocchiPassword: {get_param: GnocchiPassword}
- GnocchiBackend: {get_param: GnocchiBackend}
- GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
HorizonSecret: {get_resource: HorizonSecret}
NovaRbdPoolName:
default: vms
type: string
- GnocchiRbdPoolName:
- default: metrics
- type: string
CephClientUserName:
default: openstack
type: string
ceph_cluster:
mapped_data:
nova::compute::rbd::libvirt_images_rbd_pool: {get_param: NovaRbdPoolName}
- 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}
nova::compute::rbd::rbd_keyring:
list_join:
- '.'
- - 'client'
- {get_param: CephClientUserName}
- gnocchi::storage::ceph::ceph_keyring:
- list_join:
- - '.'
- - - '/etc/ceph/ceph'
- - 'client'
- - {get_param: CephClientUserName}
- - 'keyring'
outputs:
config_id:
type: string
constraints:
- custom_constraint: nova.flavor
- 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 and db account.
- type: string
- hidden: true
HAProxyStatsPassword:
description: Password for HAProxy stats endpoint
type: string
aodh_internal_url: { get_param: [ EndpointMap, AodhInternal, uri ] }
aodh_public_url: { get_param: [ EndpointMap, AodhPublic, uri ] }
aodh_admin_url: { get_param: [ EndpointMap, AodhAdmin, uri ] }
- gnocchi_password: {get_param: GnocchiPassword}
- gnocchi_backend: {get_param: GnocchiBackend}
- gnocchi_indexer_backend: {get_param: GnocchiIndexerBackend}
ceilometer_coordination_url:
list_join:
- ''
- '@'
- {get_param: RedisVirtualIPUri}
- ':6379/'
- gnocchi_dsn:
- list_join:
- - ''
- - - {get_param: [EndpointMap, MysqlInternal, protocol]}
- - '://gnocchi:'
- - {get_param: GnocchiPassword}
- - '@'
- - {get_param: [EndpointMap, MysqlInternal, host]}
- - '/gnocchi'
aodh_dsn:
list_join:
- ''
aodh::keystone::auth::region: {get_input: keystone_region}
# 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}
gnocchi::keystone::auth::public_url: {get_input: gnocchi_public_url }
gnocchi::keystone::auth::internal_url: {get_input: gnocchi_internal_url }
gnocchi::keystone::auth::admin_url: {get_input: gnocchi_admin_url }
- gnocchi::keystone::auth::password: {get_input: gnocchi_password }
gnocchi::keystone::auth::region: {get_input: keystone_region}
# Nova
- '%'
- "%{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')}"
-
# Aodh
aodh::db::mysql::user: aodh
aodh::db::mysql::host: "%{hiera('mysql_virtual_ip')}"
# FIXME: this should only occur on the bootstrap host (ditto for db syncs)
# Create all the database schemas
- if downcase(hiera('gnocchi_indexer_backend')) == 'mysql' {
- include ::gnocchi::db::mysql
- }
include ::aodh::db::mysql
} #END STEP 2
include ::aodh::listener
include ::aodh::client
- # 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.') }
- }
-
hiera_include('controller_classes')
} #END STEP 4
user => 'clustercheck@localhost',
}
- if downcase(hiera('gnocchi_indexer_backend')) == 'mysql' {
- class { '::gnocchi::db::mysql':
- require => Exec['galera-ready'],
- }
- }
-
class { '::aodh::db::mysql':
require => Exec['galera-ready'],
}
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,
- }
-
hiera_include('controller_classes')
} #END STEP 4
Pacemaker::Resource::Service[$::aodh::params::listener_service_name]],
}
- # 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]],
- }
-
# Horizon and Keystone
pacemaker::resource::service { $::apache::params::service_name:
clone_params => 'interleave=true',
--- /dev/null
+heat_template_version: 2016-04-08
+
+description: >
+ Gnocchi service configured with Puppet
+
+parameters:
+ EndpointMap:
+ default: {}
+ description: Mapping of service endpoint -> protocol. Typically set
+ via parameter_defaults in the resource registry.
+ type: json
+
+resources:
+ GnocchiServiceBase:
+ type: ./gnocchi-base.yaml
+ properties:
+ EndpointMap: {get_param: EndpointMap}
+
+outputs:
+ role_data:
+ description: Role data for the Gnocchi role.
+ value:
+ config_settings:
+ map_merge:
+ - get_attr: [GnocchiServiceBase, role_data, config_settings]
+ step_config: |
+ include ::tripleo::profile::base::gnocchi::api
--- /dev/null
+heat_template_version: 2016-04-08
+
+description: >
+ Gnocchi service configured with Puppet
+
+parameters:
+ EndpointMap:
+ default: {}
+ description: Mapping of service endpoint -> protocol. Typically set
+ via parameter_defaults in the resource registry.
+ type: json
+ 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 and db account.
+ type: string
+ hidden: true
+ GnocchiRbdPoolName:
+ default: metrics
+ type: string
+ CephClientUserName:
+ default: openstack
+ type: string
+
+outputs:
+ aux_parameters:
+ description: Additional parameters referenced outside the base file
+ value:
+ gnocchi_indexer_backend: {get_param: GnocchiIndexerBackend}
+ role_data:
+ description: Shared role data for the Heat services.
+ value:
+ config_settings:
+ #Gnocchi engine
+ gnocchi::debug: {get_input: debug}
+ gnocchi::db::database_connection:
+ list_join:
+ - ''
+ - - {get_param: [EndpointMap, MysqlInternal, protocol]}
+ - '://gnocchi:'
+ - {get_param: GnocchiPassword}
+ - '@'
+ - {get_param: [EndpointMap, MysqlInternal, host]}
+ - '/gnocchi'
+ gnocchi::keystone::auth::region: 'regionOne'
+ gnocchi::keystone::auth::tenant: 'service'
+ gnocchi::keystone::auth::password: {get_param: GnocchiPassword}
+ gnocchi::db::mysql::password: {get_param: GnocchiPassword}
+ gnocchi::db::sync::extra_opts: '--skip-storage'
+ #Gnocchi API
+ tripleo::profile::base::gnocchi::api::gnocchi_backend: {get_param: GnocchiBackend}
+ gnocchi::api::manage_service: false
+ gnocchi::api::enabled: true
+ gnocchi::api::service_name: 'httpd'
+ gnocchi::api::keystone_tenant: 'service'
+ gnocchi::api::keystone_password: {get_param: GnocchiPassword}
+ gnocchi::wsgi::apache::ssl: false
+ gnocchi::storage::swift::swift_user: 'service:gnocchi'
+ gnocchi::storage::swift::swift_auth_version: 2
+ gnocchi::storage::swift::swift_key: {get_param: GnocchiPassword}
+ gnocchi::storage::ceph::ceph_pool: {get_param: GnocchiRbdPoolName}
+ gnocchi::storage::ceph::ceph_username: {get_param: CephClientUserName}
+ gnocchi::storage::ceph::ceph_keyring:
+ list_join:
+ - '.'
+ - - '/etc/ceph/ceph/'
+ - 'client/'
+ - {get_param: CephClientUserName}
+ - '/keyring'
+ #Gnocchi statsd
+ gnocchi::statsd::manage_service: false
+ 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'
+ gnocchi::db::mysql::user: gnocchi
+ gnocchi::db::mysql::host: {get_param: [EndpointMap, MysqlVirtual, host]}
+ gnocchi::db::mysql::dbname: gnocchi
+ gnocchi::db::mysql::allowed_hosts:
+ - '%'
+ - "%{hiera('mysql_bind_host')}"
--- /dev/null
+heat_template_version: 2016-04-08
+
+description: >
+ Gnocchi service configured with Puppet
+
+parameters:
+ EndpointMap:
+ default: {}
+ description: Mapping of service endpoint -> protocol. Typically set
+ via parameter_defaults in the resource registry.
+ type: json
+
+resources:
+ GnocchiServiceBase:
+ type: ./gnocchi-base.yaml
+ properties:
+ EndpointMap: {get_param: EndpointMap}
+
+outputs:
+ role_data:
+ description: Role data for the Gnocchi role.
+ value:
+ config_settings:
+ map_merge:
+ - get_attr: [GnocchiServiceBase, role_data, config_settings]
+ - gnocchi::metricd::manage_service: false
+ step_config: |
+ include ::tripleo::profile::base::gnocchi::metricd
--- /dev/null
+heat_template_version: 2016-04-08
+
+description: >
+ Gnocchi service configured with Puppet
+
+parameters:
+ EndpointMap:
+ default: {}
+ description: Mapping of service endpoint -> protocol. Typically set
+ via parameter_defaults in the resource registry.
+ type: json
+
+resources:
+ GnocchiServiceBase:
+ type: ./gnocchi-base.yaml
+ properties:
+ EndpointMap: {get_param: EndpointMap}
+
+outputs:
+ role_data:
+ description: Role data for the Gnocchi role.
+ value:
+ config_settings:
+ map_merge:
+ - get_attr: [GnocchiServiceBase, role_data, config_settings]
+ - gnocchi::statsd::manage_service: false
+ step_config: |
+ include ::tripleo::profile::base::gnocchi::statsd
--- /dev/null
+heat_template_version: 2016-04-08
+
+description: >
+ Gnocchi service configured with Puppet
+
+parameters:
+ EndpointMap:
+ default: {}
+ description: Mapping of service endpoint -> protocol. Typically set
+ via parameter_defaults in the resource registry.
+ type: json
+
+resources:
+ GnocchiServiceBase:
+ type: ../gnocchi-base.yaml
+ properties:
+ EndpointMap: {get_param: EndpointMap}
+
+outputs:
+ role_data:
+ description: Role data for the Gnocchi role.
+ value:
+ config_settings:
+ map_merge:
+ - get_attr: [GnocchiServiceBase, role_data, config_settings]
+ step_config: |
+ include ::tripleo::profile::pacemaker::gnocchi::api
--- /dev/null
+heat_template_version: 2016-04-08
+
+description: >
+ Gnocchi service configured with Puppet
+
+parameters:
+ EndpointMap:
+ default: {}
+ description: Mapping of service endpoint -> protocol. Typically set
+ via parameter_defaults in the resource registry.
+ type: json
+
+resources:
+ GnocchiServiceBase:
+ type: ../gnocchi-base.yaml
+ properties:
+ EndpointMap: {get_param: EndpointMap}
+
+outputs:
+ role_data:
+ description: Role data for the Gnocchi role.
+ value:
+ config_settings:
+ map_merge:
+ - get_attr: [GnocchiServiceBase, role_data, config_settings]
+ - gnocchi::metricd::manage_service: false
+ tripleo::profile::pacemaker::gnocchi::gnocchi_indexer_backend: {get_attr: [GnocchiServiceBase, aux_parameters, gnocchi_indexer_backend]}
+
+ step_config: |
+ include ::tripleo::profile::pacemaker::gnocchi::metricd
--- /dev/null
+heat_template_version: 2016-04-08
+
+description: >
+ Gnocchi service configured with Puppet
+
+parameters:
+ EndpointMap:
+ default: {}
+ description: Mapping of service endpoint -> protocol. Typically set
+ via parameter_defaults in the resource registry.
+ type: json
+
+resources:
+ GnocchiServiceBase:
+ type: ../gnocchi-base.yaml
+ properties:
+ EndpointMap: {get_param: EndpointMap}
+
+outputs:
+ role_data:
+ description: Role data for the Gnocchi role.
+ value:
+ config_settings:
+ map_merge:
+ - get_attr: [GnocchiServiceBase, role_data, config_settings]
+ - gnocchi::statsd::manage_service: false
+ tripleo::profile::pacemaker::gnocchi::gnocchi_indexer_backend: {get_attr: [GnocchiServiceBase, aux_parameters, gnocchi_indexer_backend]}
+ step_config: |
+ include ::tripleo::profile::pacemaker::gnocchi::statsd