+ service_hostnames:
+ description: >
+ Map of enabled services to a list of hostnames where they're running
+ value:
+ yaql:
+ # If ServiceHostnameList is empty the role is deployed with zero nodes
+ # therefore we don't want to add any *_node_names to the map
+ expression: dict($.data.map.items().where(len($[1]) > 0))
+ data:
+ map:
+ map_merge:
+ repeat:
+ template:
+ SERVICE_node_names: {get_param: ServiceHostnameList}
+ for_each:
+ SERVICE: {get_param: EnabledServices}