Add j2 per-role MetricsQdrNetwork

Allow the MetricsQdrNetwork to vary by role. This is needed
as the CephStorage, BlockStorage, and ObjectStorage roles need
to use the storage network, while other roles need internal_api.

Change-Id: I37611d516495b2b82b56a08df8b6ac38e0687083
Signed-off-by: Ryan McCabe <rmccabe@redhat.com>
(cherry picked from commit 0b2441cdc9)
This commit is contained in:
Ryan McCabe 2020-02-27 23:06:11 -05:00 committed by Martin Magr
parent 9d57f09bf2
commit 058b3d3ecf
4 changed files with 29 additions and 4 deletions

View File

@ -153,7 +153,13 @@ outputs:
template:
"%{hiera('$NETWORK')}"
params:
$NETWORK: {get_param: [ServiceNetMap, MetricsQdrNetwork]}
$NETWORK:
get_param:
- ServiceNetMap
- str_replace:
template: "ROLENAMEMetricsQdrNetwork"
params:
ROLENAME: {get_param: RoleName}
tripleo::profile::base::metrics::qdr::listener_port: {get_param: MetricsQdrPort}
tripleo::profile::base::metrics::qdr::username: {get_param: MetricsQdrUsername}
tripleo::profile::base::metrics::qdr::password: {get_param: MetricsQdrPassword}

View File

@ -50,7 +50,6 @@ parameters:
KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
KeystonePublicApiNetwork: {{ _service_nets.get('internal_api', 'ctlplane') }}
ManilaApiNetwork: {{ _service_nets.get('internal_api', 'ctlplane') }}
MetricsQdrNetwork: {{ _service_nets.get('internal_api', 'ctlplane') }}
NeutronApiNetwork: {{ _service_nets.get('internal_api', 'ctlplane') }}
OctaviaApiNetwork: {{ _service_nets.get('internal_api', 'ctlplane') }}
HeatApiNetwork: {{ _service_nets.get('internal_api', 'ctlplane') }}
@ -96,6 +95,14 @@ parameters:
{%- for role in roles if not role.name.startswith('Ceph') %}
{{role.name}}HostnameResolveNetwork: {{ _service_nets.get('internal_api', 'ctlplane') }}
{%- endfor %}
# special-case for MetricsQdrNetwork, which will vary depending on role
{%- for role in roles if role.name == 'CephStorage' or role.name == 'BlockStorage' or role.name == 'ObjectStorage' %}
{{role.name}}MetricsQdrNetwork: {{ _service_nets.get('storage', 'ctlplane') }}
{%- endfor %}
{%- for role in roles if role.name != 'CephStorage' and role.name != 'BlockStorage' and role.name != 'ObjectStorage' %}
{{role.name}}MetricsQdrNetwork: {{ _service_nets.get('internal_api', 'ctlplane') }}
{%- endfor %}
description: Mapping of service_name -> network name. Typically set
via parameter_defaults in the resource registry.
type: json

View File

@ -130,7 +130,13 @@ outputs:
template:
"%{hiera('$NETWORK')}"
params:
$NETWORK: {get_param: [ServiceNetMap, MetricsQdrNetwork]}
$NETWORK:
get_param:
- ServiceNetMap
- str_replace:
template: "ROLENAMEMetricsQdrNetwork"
params:
ROLENAME: {get_param: RoleName}
tripleo::profile::base::ceilometer::agent::notification::notifier_host_port: {get_param: MetricsQdrPort}
- {}
service_config_settings:

View File

@ -338,7 +338,13 @@ outputs:
template:
"%{hiera('$NETWORK')}"
params:
$NETWORK: {get_param: [ServiceNetMap, MetricsQdrNetwork]}
$NETWORK:
get_param:
- ServiceNetMap
- str_replace:
template: "ROLENAMEMetricsQdrNetwork"
params:
ROLENAME: {get_param: RoleName}
tripleo::profile::base::metrics::collectd::amqp_port:
get_param: MetricsQdrPort
tripleo::profile::base::metrics::collectd::amqp_user: