4bee12fea1
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
115 lines
3.6 KiB
YAML
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
|