tripleo-heat-templates/deployment/ironic/ironic-base-puppet.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

115 lines
3.6 KiB
YAML

heat_template_version: rocky
description: >
OpenStack Ironic services configured with Puppet
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
IronicDebug:
default: ''
description: Set to True to enable debugging Ironic 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
IronicDefaultResourceClass:
default: ''
description: Default resource class to use for new nodes.
type: string
IronicPassword:
description: The password for the Ironic service and db account, used by the Ironic services
type: string
hidden: true
IronicRpcTransport:
description: The remote procedure call transport between conductor and
API processes, such as a messaging broker or JSON RPC.
default: ''
type: string
constraints:
- allowed_values: [ '', 'oslo', 'json-rpc']
conditions:
service_debug_unset: {equals : [{get_param: IronicDebug}, '']}
default_rsc_unset: {equals : [{get_param: IronicDefaultResourceClass}, '']}
rpc_transport_unset: {equals : [{get_param: IronicRpcTransport}, '']}
enable_sqlalchemy_collectd: {equals : [{get_param: EnableSQLAlchemyCollectd}, true]}
outputs:
role_data:
description: Role data for the Ironic role.
value:
service_name: ironic_base
config_settings:
map_merge:
-
ironic::database_connection:
make_url:
scheme: {get_param: [EndpointMap, MysqlInternal, protocol]}
username: ironic
password: {get_param: IronicPassword}
host: {get_param: [EndpointMap, MysqlInternal, host]}
path: /ironic
query:
if:
- enable_sqlalchemy_collectd
-
read_default_file: /etc/my.cnf.d/tripleo.cnf
read_default_group: tripleo
plugin: collectd
collectd_program_name: ironic
collectd_host: localhost
-
read_default_file: /etc/my.cnf.d/tripleo.cnf
read_default_group: tripleo
ironic::logging::debug:
if:
- service_debug_unset
- {get_param: Debug }
- {get_param: IronicDebug }
-
if:
- default_rsc_unset
- {}
- ironic::default_resource_class: {get_param: IronicDefaultResourceClass}
-
if:
- rpc_transport_unset
- {}
- ironic::rpc_transport: {get_param: IronicRpcTransport}
step_config: |
include ::tripleo::profile::base::ironic