{ {% set all_enabled_services = (enabled_services + all_nodes_extra_map_data['enabled_services'] | default([])) | unique %} "enabled_services": {{ all_enabled_services | to_nice_json }}, {% for service in all_enabled_services %} {# _enabled: true #} {{ '"' ~ service ~ '_enabled": true,' }} {# _node_ips: #} {{ '"' ~ service ~ '_node_ips": ' ~ ((groups[service] | default ([]) | map('extract', hostvars, service_net_map[service ~ '_network'] | default('ctlplane') ~ '_ip') | list + all_nodes_extra_map_data[service ~ '_node_ips'] | default([])) | to_json) ~ ',' }} {% if nova_additional_cell %} {# _cell_node_names: #} {{ '"' ~ service ~ '_cell_node_names": ' ~ (groups[service] | default ([]) | map('extract', hostvars, service_net_map[service ~ '_network'] | default('ctlplane') ~ '_hostname') | list | to_json) ~ ',' }} {% else %} {# _node_names: #} {{ '"' ~ service ~ '_node_names": ' ~ ((groups[service] | default ([]) | map('extract', hostvars, service_net_map[service ~ '_network'] | default('ctlplane') ~ '_hostname') | list + all_nodes_extra_map_data[service ~ '_node_names'] | default([])) | to_json) ~ ',' }} {% endif %} {# _short_node_names: #} {{ '"' ~ service ~ '_short_node_names": ' ~ ((groups[service] | default ([]) | map('extract', hostvars, 'inventory_hostname') | list + all_nodes_extra_map_data[service ~ '_short_node_names'] | default([])) | to_json) ~ ',' }} {# _short_bootstrap_node_name: hostname #} {% set services = (groups[service] | default ([]) | map('extract', hostvars, 'inventory_hostname')) | list + [all_nodes_extra_map_data[service ~ '_short_bootstrap_node_name'] | default('') ] %} {% if (services | length) > 0 %} {{ '"' ~ service ~ '_short_bootstrap_node_name": ' ~ (services | first | to_json) ~ ',' }} {% endif %} {# _bootstrap_node_ip: ip #} {% set services = (groups[service] | default ([]) | map('extract', hostvars, service_net_map[service ~ '_network'] | default('ctlplane') ~ '_ip')) | list %} {% if (services | length) > 0 %} {{ '"' ~ service ~ '_bootstrap_node_ip": ' ~ ((services + [all_nodes_extra_map_data[service ~ '_bootstrap_node_ip'] | default('')]) | first | to_json) ~ ',' }} {% endif %} {% endfor %} {# _network: #} {% for service, network in service_net_map.items() %} {{ '"' ~ service ~ '": "' ~ network ~ '",' }} {% endfor %} {% if 'redis' in enabled_services %} "redis_vip": "{{ net_vip_map.redis }}", {% endif %} {{ '"deploy_identifier": "' ~ deploy_identifier ~ '"' }}, {{ '"stack_action": "' ~ stack_action ~ '"' }}, {{ '"stack_update_type": "' ~ stack_update_type ~ '"' }}, {{ '"container_cli": "' ~ container_cli ~ '"' }}, {{ '"controller_node_ips": "' ~ groups[primary_role_name] | default([]) | map('extract', hostvars, 'ctlplane_ip') | list | join(',') ~ '"' }}, {{ '"controller_node_names": "' ~ groups[primary_role_name] | default([]) | map('extract', hostvars, 'inventory_hostname') | list | join(',') ~ '"' }} }