tripleo-heat-templates/puppet/services/services.yaml
Lars Kellogg-Stedman e5cbfc0769 restore missing fluentd client functionality
in the great rebase following the JINJA ALL THE THINGS changes we lost
critical functionality in the fluentd client service.  This review
restores the missing features.

Change-Id: I7c23f16f81e75f3da6a24587b2eb8385b3e920a4
Closes-bug: 1630692
(cherry picked from commit dd162f42c7)
2016-10-06 13:12:50 +00:00

110 lines
4.3 KiB
YAML

heat_template_version: 2016-10-14
description: >
Utility stack to convert an array of services into a set of combined
role configs.
parameters:
Services:
default: []
description: |
List nested stack service templates.
type: comma_delimited_list
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
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
DefaultPasswords:
default: {}
description: Mapping of service -> default password. Used to help
pass top level passwords managed by Heat into services.
type: json
resources:
ServiceChain:
type: OS::Heat::ResourceChain
properties:
resources: {get_param: Services}
concurrent: true
resource_properties:
ServiceNetMap: {get_param: ServiceNetMap}
EndpointMap: {get_param: EndpointMap}
DefaultPasswords: {get_param: DefaultPasswords}
LoggingConfiguration:
type: OS::TripleO::LoggingConfiguration
outputs:
role_data:
description: Combined Role data for this set of services.
value:
service_names:
# Filter any null/None service_names which may be present due to mapping
# of services to OS::Heat::None
yaql:
expression: list($.data.s_names.where($ != null))
data: {s_names: {get_attr: [ServiceChain, role_data, service_name]}}
monitoring_subscriptions:
yaql:
expression: list($.data.where($ != null).select($.get('monitoring_subscription')).where($ != null))
data: {get_attr: [ServiceChain, role_data]}
logging_sources:
# Transform the individual logging_source configuration from
# each service in the chain into a global list, adding some
# default configuration at the same time.
yaql:
expression: >
let(
default_format => $.data.default_format,
pos_file_path => $.data.pos_file_path,
sources => $.data.sources.flatten()
) ->
$sources.where($ != null).select({
'type' => 'tail',
'tag' => $.tag,
'path' => $.path,
'format' => $.get('format', $default_format),
'pos_file' => $.get('pos_file', $pos_file_path + '/' + $.tag + '.pos')
})
data:
sources:
- {get_attr: [LoggingConfiguration, LoggingDefaultSources]}
- yaql:
expression: list($.data.where($ != null).select($.get('logging_source')).where($ != null))
data: {get_attr: [ServiceChain, role_data]}
- {get_attr: [LoggingConfiguration, LoggingExtraSources]}
default_format: {get_attr: [LoggingConfiguration, LoggingDefaultFormat]}
pos_file_path: {get_attr: [LoggingConfiguration, LoggingPosFilePath]}
logging_groups:
# Build a list of unique groups to which we should add the
# fluentd user.
yaql:
expression: >
set($.data.groups.flatten()).where($)
data:
groups:
- [{get_attr: [LoggingConfiguration, LoggingDefaultGroups]}]
- yaql:
expression: list($.data.where($ != null).select($.get('logging_groups')).where($ != null))
data: {get_attr: [ServiceChain, role_data]}
- [{get_attr: [LoggingConfiguration, LoggingExtraGroups]}]
config_settings: {map_merge: {get_attr: [ServiceChain, role_data, config_settings]}}
global_config_settings:
map_merge:
yaql:
expression: list($.data.where($ != null).select($.get('global_config_settings')).where($ != null))
data: {get_attr: [ServiceChain, role_data]}
service_config_settings:
yaql:
expression: $.data.where($ != null).select($.get('service_config_settings')).where($ != null).reduce($1.mergeWith($2), {})
data: {get_attr: [ServiceChain, role_data]}
step_config: {list_join: ["\n", {get_attr: [ServiceChain, role_data, step_config]}]}