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]}} config_settings: {map_merge: {get_attr: [ServiceChain, role_data, config_settings]}} step_config: {list_join: ["\n", {get_attr: [ServiceChain, role_data, step_config]}]}