summaryrefslogtreecommitdiffstats
path: root/puppet
diff options
context:
space:
mode:
authorPradeep Kilambi <pkilambi@redhat.com>2016-05-18 22:26:22 -0400
committerCarlos Camacho <ccamacho@redhat.com>2016-07-12 14:14:24 +0200
commit0415a2a82bc1b72570a8e10a6384fc5a9f34b04f (patch)
tree5eab597ee24952efbefc32f607c0c41e662970a8 /puppet
parentc4f27255c50a8afc737346db549b701515494f79 (diff)
Gnocchi composable roles
Implements: blueprint composable-services-within-roles Co-Authored-By: Juan Antonio Osorio Robles <jaosorior@redhat.com> Co-Authored-By: Carlos Camacho <ccamacho@redhat.com> Depends-On: Id728aae79442c45ab48fe0914c065f1807e8890d Closes-Bug: #1601846 Change-Id: I40a3815923099d00a0f3fc1d88a942784e7c6fb9
Diffstat (limited to 'puppet')
-rw-r--r--puppet/ceph-cluster-config.yaml12
-rw-r--r--puppet/controller.yaml37
-rw-r--r--puppet/hieradata/database.yaml8
-rw-r--r--puppet/manifests/overcloud_controller.pp23
-rw-r--r--puppet/manifests/overcloud_controller_pacemaker.pp64
-rw-r--r--puppet/services/gnocchi-api.yaml27
-rw-r--r--puppet/services/gnocchi-base.yaml91
-rw-r--r--puppet/services/gnocchi-metricd.yaml28
-rw-r--r--puppet/services/gnocchi-statsd.yaml28
-rw-r--r--puppet/services/pacemaker/gnocchi-api.yaml27
-rw-r--r--puppet/services/pacemaker/gnocchi-metricd.yaml30
-rw-r--r--puppet/services/pacemaker/gnocchi-statsd.yaml29
12 files changed, 260 insertions, 144 deletions
diff --git a/puppet/ceph-cluster-config.yaml b/puppet/ceph-cluster-config.yaml
index 2e329989..db1fd09d 100644
--- a/puppet/ceph-cluster-config.yaml
+++ b/puppet/ceph-cluster-config.yaml
@@ -5,9 +5,6 @@ parameters:
NovaRbdPoolName:
default: vms
type: string
- GnocchiRbdPoolName:
- default: metrics
- type: string
CephClientUserName:
default: openstack
type: string
@@ -23,21 +20,12 @@ resources:
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:
diff --git a/puppet/controller.yaml b/puppet/controller.yaml
index 79b141db..d8bc95e3 100644
--- a/puppet/controller.yaml
+++ b/puppet/controller.yaml
@@ -98,21 +98,6 @@ parameters:
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
@@ -557,9 +542,6 @@ resources:
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:
- ''
@@ -568,15 +550,6 @@ resources:
- '@'
- {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:
- ''
@@ -840,24 +813,14 @@ resources:
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
diff --git a/puppet/hieradata/database.yaml b/puppet/hieradata/database.yaml
index 9b2ea4f4..c827702f 100644
--- a/puppet/hieradata/database.yaml
+++ b/puppet/hieradata/database.yaml
@@ -21,14 +21,6 @@ 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')}"
-
# Aodh
aodh::db::mysql::user: aodh
aodh::db::mysql::host: "%{hiera('mysql_virtual_ip')}"
diff --git a/puppet/manifests/overcloud_controller.pp b/puppet/manifests/overcloud_controller.pp
index 9cdbda0f..bc9a42a4 100644
--- a/puppet/manifests/overcloud_controller.pp
+++ b/puppet/manifests/overcloud_controller.pp
@@ -43,9 +43,6 @@ if hiera('step') >= 2 {
# 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
@@ -77,26 +74,6 @@ if hiera('step') >= 4 {
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
diff --git a/puppet/manifests/overcloud_controller_pacemaker.pp b/puppet/manifests/overcloud_controller_pacemaker.pp
index cfa693be..aae5a09f 100644
--- a/puppet/manifests/overcloud_controller_pacemaker.pp
+++ b/puppet/manifests/overcloud_controller_pacemaker.pp
@@ -208,12 +208,6 @@ if hiera('step') >= 2 {
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'],
}
@@ -295,40 +289,6 @@ MYSQL_HOST=localhost\n",
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
@@ -526,30 +486,6 @@ password=\"${mysql_root_password}\"",
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',
diff --git a/puppet/services/gnocchi-api.yaml b/puppet/services/gnocchi-api.yaml
new file mode 100644
index 00000000..a7b203b2
--- /dev/null
+++ b/puppet/services/gnocchi-api.yaml
@@ -0,0 +1,27 @@
+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
diff --git a/puppet/services/gnocchi-base.yaml b/puppet/services/gnocchi-base.yaml
new file mode 100644
index 00000000..d4201032
--- /dev/null
+++ b/puppet/services/gnocchi-base.yaml
@@ -0,0 +1,91 @@
+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')}"
diff --git a/puppet/services/gnocchi-metricd.yaml b/puppet/services/gnocchi-metricd.yaml
new file mode 100644
index 00000000..bafc8dd0
--- /dev/null
+++ b/puppet/services/gnocchi-metricd.yaml
@@ -0,0 +1,28 @@
+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
diff --git a/puppet/services/gnocchi-statsd.yaml b/puppet/services/gnocchi-statsd.yaml
new file mode 100644
index 00000000..25abf490
--- /dev/null
+++ b/puppet/services/gnocchi-statsd.yaml
@@ -0,0 +1,28 @@
+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
diff --git a/puppet/services/pacemaker/gnocchi-api.yaml b/puppet/services/pacemaker/gnocchi-api.yaml
new file mode 100644
index 00000000..ac5355d9
--- /dev/null
+++ b/puppet/services/pacemaker/gnocchi-api.yaml
@@ -0,0 +1,27 @@
+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
diff --git a/puppet/services/pacemaker/gnocchi-metricd.yaml b/puppet/services/pacemaker/gnocchi-metricd.yaml
new file mode 100644
index 00000000..8a5562e6
--- /dev/null
+++ b/puppet/services/pacemaker/gnocchi-metricd.yaml
@@ -0,0 +1,30 @@
+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
diff --git a/puppet/services/pacemaker/gnocchi-statsd.yaml b/puppet/services/pacemaker/gnocchi-statsd.yaml
new file mode 100644
index 00000000..8625b4e1
--- /dev/null
+++ b/puppet/services/pacemaker/gnocchi-statsd.yaml
@@ -0,0 +1,29 @@
+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