63 lines
2.2 KiB
YAML
63 lines
2.2 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}
|
|
|
|
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.subscriptions.where($ != null))
|
|
data: {subscriptions: {get_attr: [ServiceChain, role_data, monitoring_subscription]}}
|
|
config_settings: {map_merge: {get_attr: [ServiceChain, role_data, config_settings]}}
|
|
global_config_settings:
|
|
map_merge:
|
|
yaql:
|
|
expression: list($.data.configs.where($ != null))
|
|
data: {configs: {get_attr: [ServiceChain, role_data, global_config_settings]}}
|
|
step_config: {list_join: ["\n", {get_attr: [ServiceChain, role_data, step_config]}]}
|