tripleo-heat-templates/deployment/mistral/mistral-base.yaml
Mike Bayer 4bee12fea1 Add SQLAlchemy-collectd support
The SQLAlchemy-collectd plugin is now shipped in podman
containers under Kolla, this allows heat templates
to pull the plugin into the collectd configuration when
the collectd templates are being used.

A corresponding change in puppet-tripleo under the same change-id
adds support to enable the plugin on the puppet side.

The feature can be enabled for an overcloud by adding:

    EnableSQLAlchemyCollectd: true

to the heat configuration while also including one of the
collectd templates from environments/metrics.

The implementation requires that Openstack services which make
use of SQLAlchemy include directives for the plugin within
the SQLAlchemy URL, so this incurs a change in all templates
that include a MySQL database URL.

Change-Id: If598da717653a383a2d3b3373c56517f8bca832f
2019-10-11 10:16:30 -04:00

127 lines
4.7 KiB
YAML

heat_template_version: rocky
description: >
Openstack Mistral base service. Shared for all Mistral services.
parameters:
ServiceData:
default: {}
description: Dictionary packing service data
type: json
ServiceNetMap:
default: {}
description: Mapping of service_name -> network name. Typically set
via parameter_defaults in the resource registry. This
mapping overrides those in ServiceNetMapDefaults.
type: json
DefaultPasswords:
default: {}
type: json
RoleName:
default: ''
description: Role name on which the service is applied
type: string
RoleParameters:
default: {}
description: Parameters specific to the role
type: json
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
Debug:
default: false
description: Set to True to enable debugging on all services.
type: boolean
MistralDebug:
default: ''
description: Set to True to enable debugging Mistral services.
type: string
constraints:
- allowed_values: [ '', 'true', 'True', 'TRUE', 'false', 'False', 'FALSE']
EnableSQLAlchemyCollectd:
type: boolean
description: >
Set to true to enable the SQLAlchemy-collectd server plugin
default: false
MistralPassword:
description: The password for the Mistral service and db account, used by the Mistral services.
type: string
hidden: true
KeystoneRegion:
type: string
default: 'regionOne'
description: Keystone region for endpoint
NotificationDriver:
type: string
default: 'messagingv2'
description: Driver or drivers to handle sending notifications.
conditions:
service_debug_unset: {equals : [{get_param: MistralDebug}, '']}
enable_sqlalchemy_collectd: {equals : [{get_param: EnableSQLAlchemyCollectd}, true]}
outputs:
role_data:
description: Shared role data for the Mistral services.
value:
service_name: mistral_base
config_settings:
mistral::database_connection:
make_url:
scheme: {get_param: [EndpointMap, MysqlInternal, protocol]}
username: mistral
password: {get_param: MistralPassword}
host: {get_param: [EndpointMap, MysqlInternal, host]}
path: /mistral
query:
if:
- enable_sqlalchemy_collectd
-
read_default_file: /etc/my.cnf.d/tripleo.cnf
read_default_group: tripleo
plugin: collectd
collectd_program_name: mistral
collectd_host: localhost
-
read_default_file: /etc/my.cnf.d/tripleo.cnf
read_default_group: tripleo
mistral::notification_driver: {get_param: NotificationDriver}
mistral::debug:
if:
- service_debug_unset
- {get_param: Debug }
- {get_param: MistralDebug }
mistral::rpc_response_timeout: 120
mistral::keystone::authtoken::project_name: 'service'
mistral::keystone::authtoken::user_domain_name: 'Default'
mistral::keystone::authtoken::project_domain_name: 'Default'
mistral::keystone::authtoken::password: {get_param: MistralPassword}
mistral::keystone::authtoken::www_authenticate_uri: {get_param: [EndpointMap, KeystoneV3Internal, uri]}
mistral::keystone::authtoken::auth_uri: {get_param: [EndpointMap, KeystoneV3Internal, uri]}
mistral::keystone::authtoken::auth_url: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]}
mistral::keystone_ec2_uri:
list_join:
- ''
- - {get_param: [EndpointMap, KeystoneV3Internal, uri]}
- '/ec2tokens'
service_config_settings:
keystone:
mistral::keystone::auth::tenant: 'service'
mistral::keystone::auth::public_url: {get_param: [EndpointMap, MistralPublic, uri]}
mistral::keystone::auth::internal_url: {get_param: [EndpointMap, MistralInternal, uri]}
mistral::keystone::auth::admin_url: {get_param: [EndpointMap, MistralAdmin, uri]}
mistral::keystone::auth::password: {get_param: MistralPassword}
mistral::keystone::auth::region: {get_param: KeystoneRegion}
mysql:
mistral::db::mysql::user: mistral
mistral::db::mysql::host: {get_param: [EndpointMap, MysqlInternal, host_nobrackets]}
mistral::db::mysql::dbname: mistral
mistral::db::mysql::password: {get_param: MistralPassword}
mistral::db::mysql::allowed_hosts:
- '%'
- "%{hiera('mysql_bind_host')}"